OrderSendService.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. namespace bizGhs\order\services;
  3. use biz\shop\models\Shop;
  4. use bizGhs\base\services\BaseService;
  5. use bizGhs\order\classes\OrderClass;
  6. use bizGhs\order\classes\OrderExpressClass;
  7. use bizGhs\order\classes\OrderSendClass;
  8. use common\components\util;
  9. class OrderSendService extends BaseService
  10. {
  11. public static $baseFile = '\bizGhs\order\classes\OrderSendClass';
  12. //
  13. //
  14. // //制单 ssh 2019.12.17
  15. // public static function printOrder($data)
  16. // {
  17. // $id = $data['id'];
  18. // $orderSn = $data['orderSn'];
  19. // $option = $data['option'];
  20. // $actionRelation = OrderSendClass::ACTION_RELATION;
  21. // $printOrderId = $actionRelation['printOrder'];
  22. // $currentId = OrderSendClass::toDoActionId($orderSn);
  23. // if ($printOrderId != $currentId) {
  24. // util::fail('当前流程无法操作');
  25. // }
  26. // //1有配送单 2 填单制单
  27. // if (in_array($option, [1, 2]) == false) {
  28. // util::fail('操作无效');
  29. // }
  30. // $time = time();
  31. // OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $printOrderId], ['option' => $option, 'finishTime' => $time]);
  32. // $hasDeliver = 0;
  33. // if ($option == 1) {
  34. // //有纸质配送单
  35. // $hasDeliver = 1;
  36. // }
  37. // if ($option == 2) {
  38. // //填单制单
  39. // $hasDeliver = 2;
  40. // }
  41. // OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_UN_SEND, 'currentFlow' => 2, 'printStatus' => 1, 'hasDeliver' => $hasDeliver]);
  42. //
  43. // //显示发货流程
  44. // $deliverId = $actionRelation['deliver'];
  45. // $data = ['actionId' => $deliverId, 'orderId' => $id, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $deliverId, 'orderSn' => $orderSn];
  46. // OrderSendClass::add($data);
  47. // $actionList = OrderSendClass::ACTION_LIST;
  48. // $data['actionSign'] = isset($actionList[$deliverId]['sign']) ? $actionList[$deliverId]['sign'] : '';
  49. // util::success(['nextAction' => $data]);
  50. // }
  51. //
  52. // //发货 ssh 2019.12.17
  53. // public static function deliver($data)
  54. // {
  55. // $id = $data['id'];
  56. // $orderSn = $data['orderSn'];
  57. // $option = $data['option'];
  58. // $actionRelation = OrderSendClass::ACTION_RELATION;
  59. // $deliverId = $actionRelation['deliver'];
  60. // $currentId = OrderSendClass::toDoActionId($orderSn);
  61. // if ($deliverId != $currentId) {
  62. // util::fail('当前流程无法操作');
  63. // }
  64. // $time = time();
  65. // $sendType = isset($data['sendType']) ? $data['sendType'] : OrderClass::SEND_TYPE_UNKNOWN;
  66. // $sendInfo = [];
  67. // if ($sendType == OrderClass::SEND_TYPE_THIRD) {
  68. // util::fail('即将开通...');
  69. // $side = $data['expressId'];
  70. // $sendTime = strtotime(date("Y-m-d") . ' ' . $data['sendTime']);
  71. // if ($sendTime < ($time + 20 * 60)) {
  72. // util::fail('请选择20分钟之后的时间');
  73. // }
  74. // $sendInfo = [
  75. // 'sideId' => $side,
  76. // 'sendTime' => $sendTime,
  77. // 'addTime' => $time,
  78. // 'sendTip' => 0,
  79. // 'sjId' => $data['sjId'],
  80. // 'orderId' => $id,
  81. // 'cost' => 6,
  82. // 'tip' => 0,
  83. // 'distance' => 7,
  84. // 'sendTime' => $sendTime,
  85. // 'side' => $side,
  86. // ];
  87. // OrderExpressClass::add($sendInfo);
  88. // }
  89. //
  90. // OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $deliverId], ['option' => $option, 'finishTime' => $time]);
  91. // OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_SENDING, 'currentFlow' => 3, 'sendType' => $sendType]);
  92. //
  93. // //待发货订单-1,配送中订单+1
  94. // $shopId = $data['shopId'];
  95. // $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
  96. // if (empty($shop)) {
  97. // util::fail('没有找到门店74');
  98. // }
  99. // $shop->unSendOrder -= 1;
  100. // $shop->sendingOrder += 1;
  101. // $shop->save();
  102. //
  103. // //显示送达流程
  104. // $reachId = $actionRelation['reach'];
  105. // $data = ['actionId' => $reachId, 'orderId' => $id, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $reachId, 'orderSn' => $orderSn];
  106. // OrderSendClass::add($data);
  107. // $actionList = OrderSendClass::ACTION_LIST;
  108. // $data['actionSign'] = isset($actionList[$reachId]['sign']) ? $actionList[$reachId]['sign'] : '';
  109. // util::success(['nextAction' => $data, 'sendInfo' => $sendInfo]);
  110. // }
  111. //
  112. // //送达 ssh 2019.12.17
  113. // public static function reach($order)
  114. // {
  115. // $orderSn = $order['orderSn'];
  116. // $actionRelation = OrderSendClass::ACTION_RELATION;
  117. // $reachId = $actionRelation['reach'];
  118. // $currentId = OrderSendClass::toDoActionId($orderSn);
  119. // if ($reachId != $currentId) {
  120. // util::fail('当前流程无法操作');
  121. // }
  122. // OrderSendClass::reach($order);
  123. //
  124. // //送达,订单完成。【现在有三个地方有订单完成操作】
  125. // $id = $order['id'];
  126. // $currentOrder = self::getById($id, true);
  127. // $shopId = $order['shopId'] ?? 0;
  128. // $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
  129. // if (empty($shop)) {
  130. // util::fail('没有找到门店75');
  131. // }
  132. // OrderClass::complete($currentOrder, $shop, OrderClass::TOTAL_FLOW);
  133. // }
  134. //发货详情 ssh 2019.12.15
  135. public static function sendList($order)
  136. {
  137. $orderId = $order['id'];
  138. $orderSn = $order['orderSn'];
  139. $list = OrderSendClass::getAllByCondition(['orderSn' => $orderSn], 'inTurn DESC', '*');
  140. if (empty($list)) {
  141. return [];
  142. }
  143. $actionList = OrderSendClass::ACTION_LIST;
  144. $actionRelation = OrderSendClass::ACTION_RELATION;
  145. foreach ($list as $key => $val) {
  146. $currentId = $val['actionId'];
  147. $list[$key]['actionName'] = $actionList[$currentId]['name'] ?? '';
  148. $list[$key]['actionSign'] = $actionList[$currentId]['sign'] ?? '';
  149. //发货需要显示的信息
  150. if ($currentId == $actionRelation['deliver']) {
  151. $list[$key]['sendInfo'] = [];
  152. if ($order['sendType'] == OrderClass::SEND_TYPE_THIRD) {
  153. $list[$key]['sendInfo'] = OrderExpressClass::getExpress($orderId);
  154. }
  155. }
  156. //送达需要显示的信息
  157. if ($currentId == $actionRelation['reach']) {
  158. }
  159. }
  160. return $list;
  161. }
  162. }