shish пре 5 година
родитељ
комит
98c218b9f9

+ 56 - 4
app/ghs/controllers/OrderController.php

@@ -5,6 +5,7 @@ namespace ghs\controllers;
 use biz\merchant\services\MerchantExtendService;
 use bizGhs\admin\classes\AdminClass;
 use bizGhs\custom\classes\CustomClass;
+use bizGhs\merchant\classes\ShopClass;
 use bizGhs\merchant\services\ShopService;
 use bizGhs\order\classes\OrderClass;
 use bizGhs\order\services\OrderItemService;
@@ -56,16 +57,24 @@ class OrderController extends BaseController
             $post['customId'] = $post['customId'] ?? 0;
             $post['adminId'] = $adminId;
             $post['userId'] = 0;
+            $post['shopId'] = $shopId;
         } else {
             //供货商端 客户 开单
             $post['userId'] = $adminId;
             $post['adminId'] = 0;
-            $post['customId'] = CustomClass::addCustom();
+            $shopId = $post['shopId'] ?? 0;
+            if (empty($shopId)) {
+                util::fail('请选择供货商');
+            }
+            $post['shopId'] = $shopId;
+            $shop = ShopClass::getById($shopId);
+            if (empty($shop)) {
+                util::fail('没有找到供货商');
+            }
         }
 
         $post['payWay'] = $this->isWx == true ? 0 : 1;
         $post['merchantId'] = $this->merchantId;
-        $post['shopId'] = 0;
         $post['fromType'] = 1;//商城
         $post['prePrice'] = 0.01;
         $post['actPrice'] = 0.01;
@@ -221,11 +230,54 @@ class OrderController extends BaseController
         util::complete();
     }
 
-    //自取 shish 2021.1.22
-    public function actionSelfGet()
+    //自取和免发货流程处理 shish 2021.1.22
+    public function actionWithoutSend()
     {
         $get = Yii::$app->request->get();
         $id = $get['id'] ?? 0;
+        $info = OrderClass::getOrderInfo($id);
+        OrderClass::valid($info, $this->shopId);
+        OrderClass::withoutSend($info);
+        util::complete();
+    }
+
+    //本店送 shish 2021.1.24
+    public function actionSelfSend()
+    {
+        $get = Yii::$app->request->get();
+        $id = isset($get['id']) ? $get['id'] : 0;
+        $info = OrderClass::getOrderInfo($id);
+        OrderClass::valid($info, $this->shopId);
+        OrderClass::selfSend($info);
+        util::complete();
+    }
+
+    //运费计算 shish 2021.1.24
+    public function actionFreight()
+    {
+        util::success(['sndCost' => 20]);
+    }
+
+    //发快递和第三方配送 shish 2021.1.24
+    public function actionThirdSend()
+    {
+        $respond = [
+            'sendSide' => '达达',
+            'distance' => 5.5,
+            'sendCost' => 20,
+            'status' => 1,
+            'tip' => 5,
+        ];
+        util::success($respond);
+    }
+
+    //确认送达 shish 2021.1.24
+    public function actionReach()
+    {
+        $get = Yii::$app->request->get();
+        $id = isset($get['id']) ? $get['id'] : 0;
+        $info = OrderClass::getOrderInfo($id);
+        OrderClass::valid($info, $this->shopId);
         util::complete();
     }
 

+ 2 - 11
app/ghs/controllers/OrderSendController.php

@@ -2,6 +2,8 @@
 
 namespace ghs\controllers;
 
+use bizGhs\order\classes\OrderClass;
+use bizGhs\order\classes\OrderSendClass;
 use bizGhs\order\services\OrderSendService;
 use bizGhs\order\services\OrderService;
 use Yii;
@@ -21,17 +23,6 @@ class OrderSendController extends BaseController
         util::success($list);
     }
 
-    //制单 免填单 填单 shish 2019.12.16
-    public function actionPrintOrder()
-    {
-        $post = Yii::$app->request->post();
-        $id = isset($post['id']) ? $post['id'] : 0;
-        $option = isset($post['option']) ? $post['option'] : 0;
-        $order = OrderService::getById($id);
-        OrderService::valid($order, $this->merchantId);
-        OrderSendService::printOrder(['id' => $id, 'option' => $option]);
-    }
-
     //发货 shish 2019.12.17
     public function actionDeliver()
     {

+ 69 - 2
biz-ghs/order/classes/OrderClass.php

@@ -17,6 +17,7 @@ class OrderClass extends BaseClass
 
     public static $baseFile = '\bizGhs\order\models\Order';
 
+
     //已完成
     const ORDER_STATUS_COMPLETE = 6;
     //已取消
@@ -30,15 +31,34 @@ class OrderClass extends BaseClass
     //待付款,待确认
     const ORDER_STATUS_UN_PAY = 1;
 
+
     //未确认
     const SEND_TYPE_UNKNOWN = 1;
-    //自取,免配送
+    //自取
     const SEND_TYPE_NO = 2;
     //自己送
     const SEND_TYPE_MYSELF = 3;
     //快递送,第三方配送
     const SEND_TYPE_THIRD = 4;
 
+
+    //待付款,待确认
+    const PAY_STATUS_UN_PAY = 1;
+    //已付款
+    const PAY_STATUS_HAS_PAY = 2;
+
+
+    //待配送
+    const SEND_STATUS_UN_SEND = 1;
+    //配送中
+    const SEND_STATUS_SENDING = 2;
+    //配送完成
+    const SEND_STATUS_COMPLETE = 3;
+
+
+    //订单总流程数
+    const TOTAL_FLOW = 3;
+
     //添加订单 shish 2019.12.5
     public static function addOrder($data)
     {
@@ -46,7 +66,7 @@ class OrderClass extends BaseClass
         $month = date("Ym");
         $orderSn = orderSn::getGhsOrderSn();
         $data['orderSn'] = $orderSn;
-        $data['payStatus'] = 0;
+        $data['payStatus'] = self::PAY_STATUS_UN_PAY;
 
         //花材列表
         $product = $data['product'];
@@ -171,4 +191,51 @@ class OrderClass extends BaseClass
         }
     }
 
+    //本店送 shish 2021.1.24
+    public static function selfSend($info)
+    {
+        if (isset($info['status']) == false || $info['status'] != self::ORDER_STATUS_UN_PAY) {
+            util::fail('订单不是待配送状态!');
+        }
+        if (isset($info['status']) == false || $info['status'] != self::ORDER_STATUS_UN_SEND) {
+            util::fail('订单不是待配送状态');
+        }
+        $id = $info['id'];
+        self::updateById($id, [
+            'status' => self::ORDER_STATUS_SENDING,
+            'sendType' => self::SEND_TYPE_MYSELF,
+        ]);
+    }
+
+    //自取和免发货流程的处理 shish 2021.1.24
+    public static function withoutSend($order)
+    {
+        $id = $order['id'];
+        if ($order['status'] == self::ORDER_STATUS_COMPLETE) {
+            util::fail('订单已完成');
+        }
+
+        //订单状态变更
+        self::updateById($id, ['sendType' => self::SEND_TYPE_NO, 'totalFlow' => OrderClass::TOTAL_FLOW, 'currentFlow' => OrderClass::TOTAL_FLOW]);
+        self::complete($order, self::TOTAL_FLOW);
+
+        OrderSendClass::withoutSend($order);
+
+        //待发货订单-1,完成订单+1
+        $merchantId = $order['merchantId'];
+        $asset = MerchantAssetClass::getByMerchantId($merchantId, true);
+        $asset->finishOrder += 1;
+        $asset->unSendOrder -= 1;
+        $asset->save();
+
+        return self::TOTAL_FLOW;
+    }
+
+    //订单完成 shish 2020.3.12
+    public static function complete($order, $currentFlow)
+    {
+        $id = $order['id'];
+        self::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => $currentFlow]);
+    }
+
 }

+ 6 - 22
biz-ghs/order/classes/OrderSendClass.php

@@ -58,28 +58,6 @@ class OrderSendClass extends BaseClass
         return $actionId;
     }
 
-    //免发货流程的处理 shish 2020.3.12
-    public static function withoutSend($order)
-    {
-        $id = $order['id'];
-        if ($order['status'] == OrderClass::ORDER_STATUS_COMPLETE) {
-            util::fail('订单已完成');
-        }
-        self::deleteByCondition(['orderId' => $id]);
-        //订单状态变更
-        OrderClass::updateById($id, ['sendType' => 1, 'totalFlow' => OrderClass::ORDER_TOTAL_FLOW, 'currentFlow' => OrderClass::ORDER_TOTAL_FLOW]);
-        OrderClass::complete($order, OrderClass::ORDER_TOTAL_FLOW);
-
-        //待发货订单-1,完成订单+1
-        $merchantId = $order['merchantId'];
-        $asset = MerchantAssetClass::getByMerchantId($merchantId, true);
-        $asset->finishOrder += 1;
-        $asset->unSendOrder -= 1;
-        $asset->save();
-
-        return OrderClass::ORDER_TOTAL_FLOW;
-    }
-
     //送达 shish 2020.6.1
     public static function reach($order)
     {
@@ -101,5 +79,11 @@ class OrderSendClass extends BaseClass
         //InformAdminClass::sendComplete($order);
     }
 
+    //免发货和自取流程处理 shish 2021.1.24
+    public static function withoutSend($info)
+    {
+        $orderSn = $info['orderSn'];
+        self::deleteByCondition(['orderSn' => $orderSn]);
+    }
 
 }