shish 5 роки тому
батько
коміт
01c8cf08e5

+ 4 - 4
app-hd/controllers/OrderController.php

@@ -65,9 +65,8 @@ class OrderController extends BaseController
 
         $couponId = isset($post['couponId']) && !empty($post['couponId']) ? $post['couponId'] : 0;
 
-        //$orderType = 1 成品订单
         if ($orderType == 1) {
-
+            //$orderType = 1 成品订单
             $goodsInfo = $post['goodsInfo'] ?? '';
             $goodsInfoArr = json_decode($goodsInfo, true);
             if (empty($goodsInfoArr)) {
@@ -159,7 +158,6 @@ class OrderController extends BaseController
             }
         } else {
             //$orderType = 2 花材订单 组合开单
-
             $productData = $post['product'] ?? '';
             $product = json_decode($productData, true);
             if (empty($product)) {
@@ -190,8 +188,10 @@ class OrderController extends BaseController
                 $val['orderSn'] = $orderSn;
                 OrderItemClass::add($val);
             }
-
         }
+        $payWay = $post['payWay'] ?? dict::getDict('payWay', 'wxPay');
+        OrderClass::staffKdPay($payWay, $orderSn);
+
         util::success(['orderSn' => $orderSn, 'totalPrice' => $actPrice, 'couponId' => $couponId, 'orderId' => $orderId]);
     }
 

+ 9 - 11
app-mall/controllers/OrderController.php

@@ -7,7 +7,6 @@ use bizMall\goods\services\GoodsService;
 use bizMall\merchant\services\ExpressService;
 use bizMall\merchant\services\MerchantExtendService;
 use bizMall\merchant\services\MerchantService;
-use bizMall\merchant\services\ShopService;
 use bizMall\order\classes\OrderClass;
 use bizMall\order\services\OrderGoodsService;
 use bizMall\order\services\OrderService;
@@ -92,8 +91,7 @@ class OrderController extends BaseController
             $goodsPrice = $unitPrice * $goodsNum;
             $prePrice = stringUtil::calcAdd($sendCost, $goodsPrice);
             //非门店订单
-            $store = 0;
-            $post['store'] = $store;
+            $post['store'] = 0;
             //来源 0微信 1支付宝 2小程序 3朋友圈 4美团
             $sourceType = $this->isWx ? 0 : 1;
             if (httpUtil::isMiniProgram()) {
@@ -170,7 +168,7 @@ class OrderController extends BaseController
         UserService::validPayPassword($payPassword, $user);
         //支付前验证订单有效性
         OrderService::checkBeforePay($order, $this->userId);
-        $capitalType = dict::getDict('capitalType','xhOrder','id');
+        $capitalType = dict::getDict('capitalType', 'xhOrder', 'id');
         $totalFee = $order['prePrice'];
         $sourceType = 0;
         $discountData = OrderService::getDiscountPrice(['price' => $totalFee, 'sourceType' => $sourceType, 'couponId' => $couponId, 'userId' => $this->userId]);
@@ -204,7 +202,7 @@ class OrderController extends BaseController
 
         //小程序使用miniOpenId
         $openId = $this->user['miniOpenId'];
-        $capitalType = dict::getDict('capitalType','xhOrder','id');
+        $capitalType = dict::getDict('capitalType', 'xhOrder', 'id');
         //流水类型、优惠卷、微信支付(h5还是小程序支付)类型 带到回调
         $wxPayType = 0;
         if (httpUtil::isMiniProgram()) {
@@ -367,9 +365,9 @@ class OrderController extends BaseController
 
             Yii::info(json_encode($config) . ' aplipay config');
 
-            $alipayWap = Yii::getAlias("@vendor/alipayWap");
-            require_once($alipayWap . '/wappay/service/AlipayTradeService.php');
-            require_once($alipayWap . '/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php');
+            $aliWap = Yii::getAlias("@vendor/alipayWap");
+            require_once($aliWap . '/wappay/service/AlipayTradeService.php');
+            require_once($aliWap . '/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php');
 
             $totalFee = $order['actPrice'];
             $out_trade_no = $orderSn;//商户订单号,商户网站订单系统中唯一订单号,必填
@@ -379,8 +377,8 @@ class OrderController extends BaseController
             $timeout_express = "1m";//超时时间
 
             $capitalType = dict::getDict('capitalType', 'xhOrder', 'id');
-            $passbackParams = 'capitalType=' . $capitalType . '&couponId=' . $couponId . '&merchantId=' . $sjId;//将流水类型、优惠卷传过去
-            $passbackParams = urlencode($passbackParams);
+            $passBackParams = 'capitalType=' . $capitalType . '&couponId=' . $couponId . '&merchantId=' . $sjId;//将流水类型、优惠卷传过去
+            $passBackParams = urlencode($passBackParams);
 
             $payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
             $payRequestBuilder->setBody($body);
@@ -389,7 +387,7 @@ class OrderController extends BaseController
             $payRequestBuilder->setTotalAmount($total_amount);
             $payRequestBuilder->setTimeExpress($timeout_express);
             //在异步通知时将该参数原样返回
-            $payRequestBuilder->setPassbackParams($passbackParams);
+            $payRequestBuilder->setPassbackParams($passBackParams);
             //同步通知
             $returnUrl = Yii::$app->params['mallDomain'] . "/#/pages/callback/success?account={$sjId}&shopId={$shopId}&orderSn={$orderSn}&totalPrice={$totalFee}&pageStatus=3&payDiscountPrice=0&payDiscountType=0";
             //异步通知

+ 4 - 4
biz-ghs/order/classes/OrderClass.php

@@ -134,10 +134,10 @@ class OrderClass extends BaseClass
             $debt = $data['debt'] ?? 0;
             if ($debt == 1) {
                 //欠款
-                self::payOk($return, 1, $shop);
+                self::staffKdPay($return, 1, $shop);
             } else {
                 //已收款
-                self::payOk($return, 2, $shop);
+                self::staffKdPay($return, 2, $shop);
             }
             //扣库存 2021.2.23 linqh
             foreach ($product as $key => $val) {
@@ -489,9 +489,9 @@ class OrderClass extends BaseClass
         self::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => $currentFlow]);
     }
 
-    //支付成功,包括微信支付,支付宝支付,余额支付,欠款支付的后续操作 ssh 2021.3.15
+    //员工开单选择付款方式 ssh 2021.3.15
     // $type 1 商家点欠款 2商家点已付款 3客户微信支付
-    public static function payOk($order, $type, $shop)
+    public static function staffKdPay($order, $type, $shop)
     {
         //不是待付款和待确认订单
         if ($order['status'] != self::ORDER_STATUS_UN_PAY) {

+ 67 - 52
biz-hd/order/classes/OrderClass.php

@@ -6,7 +6,6 @@ use biz\shop\classes\ShopAdminClass;
 use biz\shop\models\Shop;
 use biz\stat\classes\StatOrderCountClass;
 use bizGhs\stat\classes\StatYjClass;
-use bizHd\stat\classes\StatOrderClass;
 use bizHd\user\classes\UserClass;
 use common\components\miniUtil;
 use common\components\orderSn;
@@ -63,10 +62,13 @@ class OrderClass extends BaseClass
         $data['orderSn'] = orderSn::getOrderSn();
         $data['payStatus'] = 0;
         $shopId = $data['shopId'] ?? 0;
+        //累计订单增加
         $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
-        $riseNum = StatOrderCountClass::addOrder($shop);
-
+        $shop->unPayOrder += 1;
+        $shop->totalOrder += 1;
+        $shop->save();
         //将花店每月的总订单数作为编号
+        $riseNum = StatOrderCountClass::addOrder($shop);
         $data['sendNum'] = $riseNum;
         $data['totalFlow'] = OrderClass::ORDER_TOTAL_FLOW;
         $return = self::add($data);
@@ -138,15 +140,39 @@ class OrderClass extends BaseClass
         return $rand / 10;
     }
 
-    //订单完成 ssh 2020.3.12
-    public static function complete($order, $currentFlow)
+    //第三方支付后回调处理流程 shish 2021.4.30
+    public static function thirdPay($payWay, $orderSn, $totalFee, $attach)
     {
-        $id = $order['id'];
-        self::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => $currentFlow]);
+        $order = self::getByCondition(['orderSn' => $orderSn], true);
+        if (empty($order)) {
+            $msg = "没有找到零售订单 orderSn:{$orderSn}";
+            Yii::info($msg);
+            util::fail($msg);
+        }
+        if ($order->actPrice != $totalFee) {
+            $msg = "零售订单金额与回调通知金额不一致 orderSn:{$orderSn} {$order->actPrice} {$totalFee}";
+            Yii::info($msg);
+            util::fail($msg);
+        }
+        $date = date("Y-m-d H:i:s");
+        $order->payTime = $date;
+        self::complete($order, $payWay);
     }
 
-    //订单完成(这个方法要跟上面的组合一起) shish 2021.4.20
-    public static function finish($order, $payWay)
+    //员工开单选择付款方式 shish 2021.5.4
+    public static function staffKdPay($payWay, $orderSn)
+    {
+        $order = self::getByCondition(['orderSn' => $orderSn], true);
+        if (empty($order)) {
+            $msg = "没有找到零售订单 orderSn:{$orderSn}";
+            Yii::info($msg);
+            util::fail($msg);
+        }
+        self::complete($order, $payWay);
+    }
+
+    //订单完成 shish 2021.4.20
+    public static function complete($order, $payWay)
     {
         if (empty($order)) {
             util::fail('没有找到订单');
@@ -154,10 +180,40 @@ class OrderClass extends BaseClass
         if (isset($order->status) == false || $order->status != self::ORDER_STATUS_UN_PAY) {
             util::fail('订单不是待付款状态');
         }
-        $order->status = self::ORDER_STATUS_COMPLETE;
-        $order->currentFlow = self::ORDER_TOTAL_FLOW;
+        $order->status = self::ORDER_STATUS_UN_SEND;
+        $order->currentFlow = 2;
         $order->payWay = $payWay;
         $order->save();
+
+        //下单完成,开始制单
+        $current = time();
+        $orderId = $order->id;
+        $orderSn = $order->orderSn;
+        OrderSendClass::placeOrder(['orderId' => $orderId, 'payTime' => $current, 'orderSn' => $orderSn]);
+
+        $shopId = $order->shopId;
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+        $shop->finishOrder += 1;
+        $shop->unSendOrder += 1;
+        $shop->unPayOrder -= 1;
+        $shop->save();
+
+        if (isset($order->shopAdminId) && !empty($order->shopAdminId)) {
+            //员工开单,自取订单,直接完成
+            if ($order->sendType == self::SEND_TYPE_NO) {
+                OrderSendClass::withoutSend($order);
+            }
+        } else {
+            //门店和朋友圈订单并且没有填写收花人的直接将订单置为自取并且是完成状态
+            if (isset($order->fromType) && in_array($order->fromType, [0, 2])) {
+                if (isset($order->receiveMobile) && isset($order->address)) {
+                    if (empty($order->receiveMobile) && empty($order->address)) {
+                        OrderSendClass::withoutSend($order);
+                    }
+                }
+            }
+        }
+
     }
 
     //转化出送到时间 ssh 2020.3.15
@@ -206,45 +262,4 @@ class OrderClass extends BaseClass
         }
     }
 
-    //支付成功需要处理的流程 ssh 2020.5.25
-    public static function payAfter($order, $updateData)
-    {
-        $orderId = $order['id'];
-        $orderSn = $order['orderSn'];
-        $now = time();
-        self::updateById($orderId, $updateData);
-        //发货流程的完成下单
-        OrderSendClass::placeOrder(['orderId' => $orderId, 'payTime' => $now, 'orderSn' => $orderSn]);
-
-        //增加订单数
-        $shopId = $order['shopId'];
-        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
-        StatOrderClass::updateOrInsert($shop);
-        //如果门店和朋友圈订单并且没有填写收花人的直接将订单置为自取并且是完成状态
-        if (isset($order['fromType']) && in_array($order['fromType'], [0, 2])) {
-            if (isset($order['receiveMobile']) && isset($order['address'])) {
-                if (empty($order['receiveMobile']) && empty($order['address'])) {
-                    OrderSendClass::withoutSend($order);
-                }
-            }
-        }
-    }
-
-    //第三方支付后回调处理流程 shish 2021.4.30
-    public static function thirdPay($payWay, $orderSn, $totalFee, $attach)
-    {
-        $info = self::getByCondition(['orderSn' => $orderSn], true);
-        if (empty($info)) {
-            $msg = "没有找到零售订单 orderSn:{$orderSn}";
-            Yii::info($msg);
-            util::fail($msg);
-        }
-        if ($info->actPrice != $totalFee) {
-            $msg = "零售订单金额与回调通知金额不一致 orderSn:{$orderSn} {$info->actPrice} {$totalFee}";
-            Yii::info($msg);
-            util::fail($msg);
-        }
-        self::finish($info, $payWay);
-    }
-
 }

+ 3 - 4
biz-hd/order/classes/OrderSendClass.php

@@ -24,7 +24,7 @@ class OrderSendClass extends BaseClass
         40 => ['name' => '送达', 'sign' => 'reach']
     ];
 
-    //下单操作完成 ssh 2019.12.13
+    //下单完成,开始制单 ssh 2019.12.13
     public static function placeOrder($data)
     {
         //下单完成
@@ -39,7 +39,7 @@ class OrderSendClass extends BaseClass
 
         OrderClass::updateById($orderId, ['currentFlow' => 1]);
 
-        //制单开始
+        //制单开始
         $printOrderId = $actionId['printOrder'];
         $data = ['actionId' => $printOrderId, 'orderId' => $orderId, 'orderSn' => $orderSn, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $printOrderId];
         self::add($data);
@@ -68,8 +68,7 @@ class OrderSendClass extends BaseClass
         }
         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);
+        OrderClass::updateById($id, ['sendType' => 1, 'status' => OrderClass::ORDER_STATUS_COMPLETE, 'totalFlow' => OrderClass::ORDER_TOTAL_FLOW, 'currentFlow' => OrderClass::ORDER_TOTAL_FLOW]);
 
         //待发货订单-1,完成订单+1
         $shopId = $order['shopId'];

+ 4 - 1
biz-hd/order/services/OrderSendService.php

@@ -128,7 +128,10 @@ class OrderSendService extends BaseService
             util::fail('当前流程无法操作');
         }
         OrderSendClass::reach($order);
-        OrderClass::complete($order, OrderClass::ORDER_TOTAL_FLOW);
+
+        $id = $order['id'] ?? 0;
+        OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => OrderClass::ORDER_TOTAL_FLOW]);
+
         //配送中订单-1,完成订单+1
         $merchantId = $order['merchantId'];
         $asset = MerchantAssetClass::getByMerchantId($merchantId, true);

+ 1 - 1
biz/stat/classes/StatOrderCountClass.php

@@ -22,7 +22,7 @@ class StatOrderCountClass extends BaseClass
         ];
         $model = self::getByCondition($where, true);
         if (empty($model)) {
-            $model = self::add(['merchantId' => $sjId, 'shopId' => $shopId, 'time' => $time, 'riseNum' => 0, 'totalNum' => $shop->totalOrderNum], true);
+            $model = self::add(['merchantId' => $sjId, 'shopId' => $shopId, 'time' => $time, 'riseNum' => 0, 'totalNum' => $shop->totalOrder], true);
         }
         $id = $model->id;
 

+ 1 - 1
common/services/xhPayToolService.php

@@ -318,7 +318,7 @@ class xhPayToolService
             $updateData['wxPayType'] = $wxPayType;
             switch ($capitalType) {
                 case $capitalTypeList['xhOrder']['id']:
-                    OrderClass::payAfter($order, $updateData);
+                    //OrderClass::payAfter($order, $updateData);
                     break;
                 case $capitalTypeList['xhActiveOrder']['id']://活动报名
                     xhActiveOrderService::updateById($orderId, $updateData);