OrderSendClass.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace biz\order\classes;
  3. use common\components\stringUtil;
  4. use common\components\util;
  5. use common\services\xhOrderDayNumService;
  6. use common\services\xhOrderMonthNumService;
  7. use Yii;
  8. use biz\base\classes\BaseClass;
  9. class OrderSendClass extends BaseClass
  10. {
  11. public static $baseFile = '\biz\order\models\OrderSend';
  12. //流程id与名称
  13. public static $actionId = ['placeOrder' => 10, 'printOrder' => 20, 'deliver' => 30, 'reach' => 40, 'finish' => 50];
  14. public static $action = [
  15. 10 => ['name' => '下单', 'sign' => 'placeOrder'],
  16. 20 => ['name' => '打单', 'sign' => 'printOrder',],
  17. 30 => ['name' => '发货', 'sign' => 'deliver'],
  18. 40 => ['name' => '送达', 'sign' => 'reach'],
  19. 50 => ['name' => '完成', 'sign' => 'finish'],
  20. ];
  21. //下单操作完成 shish 2019.12.13
  22. public static function placeOrder($data)
  23. {
  24. //下单完成
  25. $orderId = $data['orderId'];
  26. $payTime = $data['payTime'];
  27. $actionId = self::$actionId;
  28. $placeOrderId = $actionId['placeOrder'];
  29. $time = time();
  30. $data = ['actionId' => $placeOrderId, 'orderId' => $orderId, 'finishTime' => $payTime, 'addTime' => $time, 'inTurn' => $placeOrderId];
  31. self::add($data);
  32. //打单未开始
  33. $printOrderId = $actionId['printOrder'];
  34. $data = ['actionId' => $printOrderId, 'orderId' => $orderId, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $printOrderId];
  35. self::add($data);
  36. }
  37. //当前待执行的动作 shish 2019.12.16
  38. public static function toDoActionId($id)
  39. {
  40. $action = self::getByCondition(['orderId' => $id], false, 'inTurn DESC');
  41. $actionId = 0;
  42. if (empty($action['finishTime'])) {
  43. $actionId = $action['actionId'];
  44. }
  45. return $actionId;
  46. }
  47. //免发货流程的处理 shish 2020.3.12
  48. /**
  49. * @param $id
  50. * @author shish <shish@zhhinc.com>
  51. * @time ${DATE} ${TIME}
  52. */
  53. public static function withoutSend($order)
  54. {
  55. $id = $order['id'];
  56. if ($order['status'] == OrderClass::ORDER_STATUS_COMPLETE) {
  57. util::fail('已完成订单');
  58. }
  59. self::deleteByCondition(['orderId' => $id]);
  60. //订单状态变更
  61. OrderClass::updateById($id, ['sendType' => 0, 'totalFlow' => OrderClass::ORDER_TOTAL_FLOW, 'currentFlow' => OrderClass::ORDER_TOTAL_FLOW]);
  62. OrderClass::complete($id);
  63. // foreach ($actionList as $actionId => $action) {
  64. // if (isset($hasAction[$actionId])) {
  65. // //动作已经执行完成的不再执行
  66. // if (isset($hasAction[$actionId]['finishTime']) && !empty($hasAction[$actionId]['finishTime'])) {
  67. // continue;
  68. // }
  69. // //动作还未完成的操作完成
  70. // self::updateByCondition(['orderId' => $id, 'actionId' => $actionId], ['finishTime' => $time]);
  71. // continue;
  72. // }
  73. // //增加未完成的动作
  74. // $inTurn = $action['inTurn'];
  75. // $data = ['actionId' => $actionId, 'orderId' => $id, 'finishTime' => $time, 'addTime' => $time, 'inTurn' => $actionId];
  76. // self::add($data);
  77. // }
  78. return OrderClass::ORDER_TOTAL_FLOW;
  79. }
  80. }