Order.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace Cash\Lib;
  3. use Dever;
  4. class Order
  5. {
  6. # 更新结算单
  7. public function up($order, $jstype = 1, $audit = 1, $refund = false)
  8. {
  9. if (!$order) {
  10. return false;
  11. }
  12. if ($audit == 2) {
  13. $status = 2;
  14. } else {
  15. $status = 1;
  16. }
  17. if ($jstype == 1) {
  18. $audit_type = 1;
  19. } else {
  20. $audit_type = 2;
  21. }
  22. $where['source_order_id'] = $order['id'];
  23. $where['jstype'] = $jstype;
  24. if (!$refund) {
  25. $where['refund_id'] = -1;
  26. } else {
  27. $where['refund_id'] = $refund['id'];
  28. }
  29. $info = Dever::db('cash/order')->find($where);
  30. $update = $where;
  31. $update['type'] = $order['type'];
  32. $update['type_id'] = $order['type_id'];
  33. if ($order['source_type']) {
  34. $update['source_type'] = $order['source_type'];
  35. $update['source_id'] = $order['source_id'];
  36. }
  37. $update['status'] = $status;
  38. $update['audit'] = $audit;
  39. $update['audit_type'] = $audit_type;
  40. if ($update['status'] == 2) {
  41. $update['operdate'] = time();
  42. $update['fdate'] = $update['operdate'];
  43. if (isset($order['fdate']) && $order['fdate'] && ($order['status'] == 5 || $order['status'] == 6)) {
  44. $update['fdate'] = $order['fdate'];
  45. }
  46. }
  47. if ($info) {
  48. $update['where_id'] = $info['id'];
  49. Dever::db('cash/order')->update($update);
  50. } else {
  51. $update['source_order_num'] = $order['order_num'];
  52. $update['num'] = $order['num'];
  53. if ($refund) {
  54. $update['cash'] = $refund['cash'];
  55. $update['p_cash'] = isset($refund['p_cash']) ? $refund['p_cash'] : 0;
  56. } else {
  57. $update['cash'] = $order['price'];
  58. $update['p_cash'] = $order['p_price'];
  59. }
  60. if ($jstype == 2) {
  61. $update['cash'] = -1*$update['cash'];
  62. $update['p_cash'] = -1*$update['p_cash'];
  63. }
  64. $update['order_num'] = $this->getOrderId();
  65. Dever::db('cash/order')->insert($update);
  66. }
  67. }
  68. # 生成订单号
  69. public function getOrderId()
  70. {
  71. $where['order_num'] = Dever::order('JS');
  72. $state = Dever::db('cash/order')->one($where);
  73. if (!$state) {
  74. return $where['order_num'];
  75. } else {
  76. return $this->getOrderId();
  77. }
  78. }
  79. }