|
|
@@ -2,11 +2,169 @@
|
|
|
|
|
|
namespace bizGhs\order\services;
|
|
|
|
|
|
+use biz\shop\models\Shop;
|
|
|
use bizGhs\base\services\BaseService;
|
|
|
+use bizGhs\order\classes\OrderClass;
|
|
|
+use bizGhs\order\classes\OrderExpressClass;
|
|
|
+use bizGhs\order\classes\OrderSendClass;
|
|
|
+use common\components\util;
|
|
|
|
|
|
class OrderSendService extends BaseService
|
|
|
{
|
|
|
|
|
|
public static $baseFile = '\bizGhs\order\classes\OrderSendClass';
|
|
|
+//
|
|
|
+//
|
|
|
+// //制单 ssh 2019.12.17
|
|
|
+// public static function printOrder($data)
|
|
|
+// {
|
|
|
+// $id = $data['id'];
|
|
|
+// $orderSn = $data['orderSn'];
|
|
|
+// $option = $data['option'];
|
|
|
+// $actionRelation = OrderSendClass::ACTION_RELATION;
|
|
|
+// $printOrderId = $actionRelation['printOrder'];
|
|
|
+// $currentId = OrderSendClass::toDoActionId($orderSn);
|
|
|
+// if ($printOrderId != $currentId) {
|
|
|
+// util::fail('当前流程无法操作');
|
|
|
+// }
|
|
|
+// //1有配送单 2 填单制单
|
|
|
+// if (in_array($option, [1, 2]) == false) {
|
|
|
+// util::fail('操作无效');
|
|
|
+// }
|
|
|
+// $time = time();
|
|
|
+// OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $printOrderId], ['option' => $option, 'finishTime' => $time]);
|
|
|
+// $hasDeliver = 0;
|
|
|
+// if ($option == 1) {
|
|
|
+// //有纸质配送单
|
|
|
+// $hasDeliver = 1;
|
|
|
+// }
|
|
|
+// if ($option == 2) {
|
|
|
+// //填单制单
|
|
|
+// $hasDeliver = 2;
|
|
|
+// }
|
|
|
+// OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_UN_SEND, 'currentFlow' => 2, 'printStatus' => 1, 'hasDeliver' => $hasDeliver]);
|
|
|
+//
|
|
|
+// //显示发货流程
|
|
|
+// $deliverId = $actionRelation['deliver'];
|
|
|
+// $data = ['actionId' => $deliverId, 'orderId' => $id, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $deliverId, 'orderSn' => $orderSn];
|
|
|
+// OrderSendClass::add($data);
|
|
|
+// $actionList = OrderSendClass::ACTION_LIST;
|
|
|
+// $data['actionSign'] = isset($actionList[$deliverId]['sign']) ? $actionList[$deliverId]['sign'] : '';
|
|
|
+// util::success(['nextAction' => $data]);
|
|
|
+// }
|
|
|
+//
|
|
|
+// //发货 ssh 2019.12.17
|
|
|
+// public static function deliver($data)
|
|
|
+// {
|
|
|
+// $id = $data['id'];
|
|
|
+// $orderSn = $data['orderSn'];
|
|
|
+// $option = $data['option'];
|
|
|
+// $actionRelation = OrderSendClass::ACTION_RELATION;
|
|
|
+// $deliverId = $actionRelation['deliver'];
|
|
|
+// $currentId = OrderSendClass::toDoActionId($orderSn);
|
|
|
+// if ($deliverId != $currentId) {
|
|
|
+// util::fail('当前流程无法操作');
|
|
|
+// }
|
|
|
+// $time = time();
|
|
|
+// $sendType = isset($data['sendType']) ? $data['sendType'] : OrderClass::SEND_TYPE_UNKNOWN;
|
|
|
+// $sendInfo = [];
|
|
|
+// if ($sendType == OrderClass::SEND_TYPE_THIRD) {
|
|
|
+// util::fail('即将开通...');
|
|
|
+// $side = $data['expressId'];
|
|
|
+// $sendTime = strtotime(date("Y-m-d") . ' ' . $data['sendTime']);
|
|
|
+// if ($sendTime < ($time + 20 * 60)) {
|
|
|
+// util::fail('请选择20分钟之后的时间');
|
|
|
+// }
|
|
|
+// $sendInfo = [
|
|
|
+// 'sideId' => $side,
|
|
|
+// 'sendTime' => $sendTime,
|
|
|
+// 'addTime' => $time,
|
|
|
+// 'sendTip' => 0,
|
|
|
+// 'merchantId' => $data['merchantId'],
|
|
|
+// 'orderId' => $id,
|
|
|
+// 'cost' => 6,
|
|
|
+// 'tip' => 0,
|
|
|
+// 'distance' => 7,
|
|
|
+// 'sendTime' => $sendTime,
|
|
|
+// 'side' => $side,
|
|
|
+// ];
|
|
|
+// OrderExpressClass::add($sendInfo);
|
|
|
+// }
|
|
|
+//
|
|
|
+// OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $deliverId], ['option' => $option, 'finishTime' => $time]);
|
|
|
+// OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_SENDING, 'currentFlow' => 3, 'sendType' => $sendType]);
|
|
|
+//
|
|
|
+// //待发货订单-1,配送中订单+1
|
|
|
+// $shopId = $data['shopId'];
|
|
|
+// $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
|
|
|
+// if (empty($shop)) {
|
|
|
+// util::fail('没有找到门店');
|
|
|
+// }
|
|
|
+// $shop->unSendOrder -= 1;
|
|
|
+// $shop->sendingOrder += 1;
|
|
|
+// $shop->save();
|
|
|
+//
|
|
|
+// //显示送达流程
|
|
|
+// $reachId = $actionRelation['reach'];
|
|
|
+// $data = ['actionId' => $reachId, 'orderId' => $id, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $reachId, 'orderSn' => $orderSn];
|
|
|
+// OrderSendClass::add($data);
|
|
|
+// $actionList = OrderSendClass::ACTION_LIST;
|
|
|
+// $data['actionSign'] = isset($actionList[$reachId]['sign']) ? $actionList[$reachId]['sign'] : '';
|
|
|
+// util::success(['nextAction' => $data, 'sendInfo' => $sendInfo]);
|
|
|
+// }
|
|
|
+//
|
|
|
+// //送达 ssh 2019.12.17
|
|
|
+// public static function reach($order)
|
|
|
+// {
|
|
|
+// $orderSn = $order['orderSn'];
|
|
|
+// $actionRelation = OrderSendClass::ACTION_RELATION;
|
|
|
+// $reachId = $actionRelation['reach'];
|
|
|
+// $currentId = OrderSendClass::toDoActionId($orderSn);
|
|
|
+// if ($reachId != $currentId) {
|
|
|
+// util::fail('当前流程无法操作');
|
|
|
+// }
|
|
|
+// OrderSendClass::reach($order);
|
|
|
+//
|
|
|
+// //送达,订单完成。【现在有三个地方有订单完成操作】
|
|
|
+// $id = $order['id'];
|
|
|
+// $currentOrder = self::getById($id, true);
|
|
|
+// $shopId = $order['shopId'] ?? 0;
|
|
|
+// $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
|
|
|
+// if (empty($shop)) {
|
|
|
+// util::fail('没有找到门店');
|
|
|
+// }
|
|
|
+// OrderClass::complete($currentOrder, $shop, OrderClass::TOTAL_FLOW);
|
|
|
+// }
|
|
|
+
|
|
|
+ //发货详情 ssh 2019.12.15
|
|
|
+ public static function sendList($order)
|
|
|
+ {
|
|
|
+ $orderId = $order['id'];
|
|
|
+ $orderSn = $order['orderSn'];
|
|
|
+ $list = OrderSendClass::getAllByCondition(['orderSn' => $orderSn], 'inTurn DESC', '*');
|
|
|
+ if (empty($list)) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ $actionList = OrderSendClass::ACTION_LIST;
|
|
|
+ $actionRelation = OrderSendClass::ACTION_RELATION;
|
|
|
+ foreach ($list as $key => $val) {
|
|
|
+ $currentId = $val['actionId'];
|
|
|
+ $list[$key]['actionName'] = $actionList[$currentId]['name'] ?? '';
|
|
|
+ $list[$key]['actionSign'] = $actionList[$currentId]['sign'] ?? '';
|
|
|
+
|
|
|
+ //发货需要显示的信息
|
|
|
+ if ($currentId == $actionRelation['deliver']) {
|
|
|
+ $list[$key]['sendInfo'] = [];
|
|
|
+ if ($order['sendType'] == OrderClass::SEND_TYPE_THIRD) {
|
|
|
+ $list[$key]['sendInfo'] = OrderExpressClass::getExpress($orderId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //送达需要显示的信息
|
|
|
+ if ($currentId == $actionRelation['reach']) {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $list;
|
|
|
+ }
|
|
|
|
|
|
}
|