shish hace 5 años
padre
commit
1d45296ca4

+ 33 - 0
app-ghs/controllers/OrderSendController.php

@@ -12,4 +12,37 @@ use common\components\util;
 class OrderSendController extends BaseController
 {
 
+    //·¢»õ ssh 2019.12.16
+    public function actionDetail()
+    {
+        $id = Yii::$app->request->get('id', 0);
+        $order = OrderService::getById($id);
+        OrderService::valid($order, $this->shopId);
+        //·¢»õÁбí
+        $list = OrderSendService::sendList($order);
+        util::success($list);
+    }
+
+    //·¢»õ ssh 2019.12.17
+    public function actionDeliver()
+    {
+        $post = Yii::$app->request->post();
+        $id = isset($post['id']) ? $post['id'] : 0;
+        $order = OrderService::getById($id);
+        OrderService::valid($order, $this->shopId);
+        $post['merchantId'] = $this->sjId;
+        $post['orderSn'] = $order['orderSn'];
+        OrderSendService::deliver($post);
+    }
+
+    //ËÍ´ï ssh 2019.12.17
+    public function actionReach()
+    {
+        $post = Yii::$app->request->post();
+        $id = isset($post['id']) ? $post['id'] : 0;
+        $order = OrderService::getById($id);
+        OrderService::valid($order, $this->shopId);
+        OrderSendService::reach($order);
+    }
+
 }

+ 158 - 0
biz-ghs/order/services/OrderSendService.php

@@ -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;
+    }
 
 }