Order.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace Cash\Lib;
  3. use Dever;
  4. class Order
  5. {
  6. # 更新结算单
  7. public function up($order, $jstype = 1, $audit = 1, $refund_id = -1)
  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. $where['refund_id'] = $refund_id;
  25. $info = Dever::db('cash/order')->find($where);
  26. $update = $where;
  27. $update['type'] = $order['type'];
  28. $update['type_id'] = $order['type_id'];
  29. if ($order['source_type']) {
  30. $update['source_type'] = $order['source_type'];
  31. $update['source_id'] = $order['source_id'];
  32. }
  33. $update['status'] = $status;
  34. $update['audit'] = $audit;
  35. $update['audit_type'] = $audit_type;
  36. if ($update['status'] == 2) {
  37. $update['operdate'] = time();
  38. }
  39. if ($info) {
  40. $update['where_id'] = $info['id'];
  41. Dever::db('cash/order')->update($update);
  42. } else {
  43. $update['source_order_num'] = $order['order_num'];
  44. $update['num'] = $order['num'];
  45. if ($audit == 2) {
  46. $order['price'] -= $order['refund_cash'];
  47. $order['p_price'] -= $order['refund_p_cash'];
  48. }
  49. $update['cash'] = $order['price'];
  50. $update['p_cash'] = $order['p_price'];
  51. if ($jstype == 2) {
  52. $update['cash'] = -1*$update['cash'];
  53. $update['p_cash'] = -1*$update['p_cash'];
  54. }
  55. $update['order_num'] = $this->getOrderId();
  56. Dever::db('cash/order')->insert($update);
  57. }
  58. }
  59. # 生成订单号
  60. public function getOrderId()
  61. {
  62. $where['order_num'] = Dever::order('JS');
  63. $state = Dever::db('cash/order')->one($where);
  64. if (!$state) {
  65. return $where['order_num'];
  66. } else {
  67. return $this->getOrderId();
  68. }
  69. }
  70. }