Ver Fonte

Merge branch 'master' of git.huaml.com:zhh/huahuibao

shizhongqi há 11 meses atrás
pai
commit
3cf21beee3

+ 35 - 32
app-ghs/controllers/IntraCityController.php

@@ -6,10 +6,10 @@ use biz\wx\classes\WxMessageClass;
 use biz\wx\classes\WxOpenClass;
 use bizGhs\admin\classes\AdminClass;
 use bizGhs\express\classes\GhsExpressOrderClass;
+use bizGhs\shop\classes\ShopAdminClass;
 use bizHd\order\classes\OrderGoodsClass;
 use bizGhs\order\classes\OrderItemClass;
 use bizHd\purchase\classes\PurchaseClass;
-use bizHd\saas\classes\StaffClass;
 use common\components\dict;
 use common\components\imgUtil;
 use common\components\orderSn;
@@ -414,10 +414,10 @@ class IntraCityController extends BaseController
         if ($order->status != 2) {
             util::fail('待发货订单才能发跑腿,请刷新页面');
         }
-        // 不能创建配送的几种配送状态
-        $notCanCreateSendStatus = [-1, 3];
+        //如果不是没鹛跑腿和取消了,则不能再叫跑腿,有多处,关键词no_call_express
+        $notCanCreateSendStatus = [-2, 3];
         if (!in_array($order->sendStatus, $notCanCreateSendStatus)) {
-            util::fail('不能叫跑腿,请刷新页面');
+            util::fail('不能叫跑腿,请刷新页面,编号800');
         }
         $cgId = $order->purchaseId ?? 0;
         $cgInfo = PurchaseClass::getById($cgId, true);
@@ -447,7 +447,7 @@ class IntraCityController extends BaseController
         $miniOpenId = '';
         $customShopAdminId = $order->customShopAdminId ?? 0;
         if (!empty($customShopAdminId)) {
-            $customStaff = StaffClass::getById($customShopAdminId, true);
+            $customStaff = ShopAdminClass::getById($customShopAdminId, true);
             $customStaffAdminId = $customStaff->adminId ?? '';
             if (!empty($customStaffAdminId)) {
                 $customAdmin = AdminClass::getById($customStaffAdminId, true);
@@ -507,7 +507,7 @@ class IntraCityController extends BaseController
             'user_phone' => $customMobile,
             'order_seq' => $sendNum, // 用于配送员快速寻找到匹配的商品(非必传) -- 对应 xhOrder 表的 sendNum
             'verify_code_type' => 0,
-            'order_detail_path' => '/admin/order/detail?id=' . $cgId,
+            'order_detail_path' => '/pagesPurchase/purDetails?id=' . $cgId,
             'callback_url' => $callbackUrl, // 订单状态回调地址(非必传)
             'use_sandbox' => 0,
             'cargo' => $cargo
@@ -530,20 +530,38 @@ class IntraCityController extends BaseController
                 'distance' => $result['distance'] ?? 0,
                 'fee' => $result['fee'] ?? 0,
                 'fetchCode' => $result['fetch_code'] ?? '',
-                'orderSeq' => $result['order_seq'] ?? ''
+                'orderSeq' => $result['order_seq'] ?? '',
+                'status' => 1,//有订单可以取消
+                'orderStatus' => 0,//已提交申请,待确认
             ];
             GhsExpressOrderClass::add($data);
             $sendDistance = $data['distance'] ?? 0;
             $deliveryId = $data['deliveryId'] ?? '';
-            //更新订单配送状态
+            //更新订单
             $order->sendDistance = $sendDistance;
-            $order->sendStatus = 0;
+            $order->sendStatus = -1;//已提交申请,待确认
             $order->deliveryId = $deliveryId;
+            $order->sendType = 2;
             $order->save();
             $cgInfo->sendDistance = $sendDistance;
-            $cgInfo->sendStatus = 0;
+            $cgInfo->sendStatus = -1;//已提交申请,待确认
             $cgInfo->deliveryId = $deliveryId;
+            $cgInfo->sendType = 2;
             $cgInfo->save();
+
+            $params = [
+                'fhType' => 0,
+                'fhWl' => '',
+                'fhWlNo' => '',
+                'staffId' => 0,
+                'staffName' => '',
+            ];
+            //确认发货,花店会增加路上库存
+            OrderClass::orderSend($order, $params);
+            $totalFee = $result['fee'] ?? 0;
+            $ghsName = $cgInfo->ghsName ?? '';
+            noticeUtil::push("批发订单,发跑跑腿,获取运费:{$totalFee} 重量:{$weight} 距离:{$sendDistance} 订单号:{$orderId} 供货商:{$ghsName} 客户:{$customName} 客户手机:{$customMobile}", '15280215347');
+
             util::success(['fee' => $data['fee']], '订单创建成功');
         } else {
             noticeUtil::push("批发 -- " . $this->mainId . ",订单创建失败:" . json_encode($result));
@@ -628,9 +646,9 @@ class IntraCityController extends BaseController
             if ($order->status != 3) {
                 util::fail('不能取消');
             }
-            if (in_array($order->sendStatus, [-1, 2, 3])) {
+            if (in_array($order->sendStatus, [-2, 2, 3])) {
                 //订单 没叫跑腿、已送达、已取消
-                util::fail('不能取消哈');
+                util::fail('不能取消哈,编号666');
             }
             $cgId = $order->purchaseId ?? 0;
             $cg = PurchaseClass::getById($cgId, true);
@@ -667,14 +685,8 @@ class IntraCityController extends BaseController
 
                 util::success($result, "订单取消成功");
             } else {
-                if ($result['errcode'] == 934018) { // 93401 -- 订单已取消,请勿重复操作
-                    // 更新订单状态
-                    OrderClass::updateById($orderId, ['sendStatus' => 3]);//设置为取消状态
-                    util::success($result, "订单取消成功");
-                }
-
                 Yii::error("订单取消失败:" . ($result['errmsg'] ?? '未知错误'), 'intracity');
-                util::fail('订单取消失败: ' . $result['errcode']);
+                util::fail('取消失败,编号6693');
             }
         } catch (\Exception $e) {
             Yii::error("订单取消异常:" . $e->getMessage(), 'intraCity');
@@ -751,22 +763,13 @@ class IntraCityController extends BaseController
             switch ($orderStatus) {
                 // 订单创建成功,已叫跑腿,等跑腿接单
                 case IntraCityExpress::ORDER_STATUS_CREATED:
-                    if ($order->status == 2) {
+                    if ($order->status == 3) {
                         $eo->orderStatus = 1;//已叫跑腿,等跑腿接单
                         $eo->save();
                         $order->sendStatus = 0;//已叫跑腿,等跑腿接单
                         $order->save();
                         $cg->sendStatus = 0;//已叫跑腿,等跑腿接单
                         $cg->save();
-                        $params = [
-                            'fhType' => 0,
-                            'fhWl' => '',
-                            'fhWlNo' => '',
-                            'staffId' => 0,
-                            'staffName' => '',
-                        ];
-                        //花店会增加路上库存
-                        OrderClass::orderSend($order, $params);
                     }
                     break;
                 // 配送员接单
@@ -827,8 +830,8 @@ class IntraCityController extends BaseController
                         $cg->save();
                         $params = ['staffId' => 0, 'staffName' => ''];
                         OrderClass::cancelOrderSend($order, $params);
+                        $msg = '取消配送,订单编号 ';
                     }
-                    $msg = '取消配送,订单编号 ';
                     break;
                 // 配送方取消订单
                 case IntraCityExpress::ORDER_STATUS_CANCELED_BY_DELIVERY:
@@ -843,8 +846,8 @@ class IntraCityController extends BaseController
                         $cg->save();
                         $params = ['staffId' => 0, 'staffName' => ''];
                         OrderClass::cancelOrderSend($order, $params);
+                        $msg = '配送方取消配送,订单编号 ';
                     }
-                    $msg = '配送方取消配送,订单编号 ';
                     break;
                 // 配送员撤单
                 case IntraCityExpress::ORDER_STATUS_WITHDRAWN:
@@ -864,8 +867,8 @@ class IntraCityController extends BaseController
                         $cg->save();
                         $params = ['staffId' => 0, 'staffName' => ''];
                         OrderClass::cancelOrderSend($order, $params);
+                        $msg = '订单配送异常,订单编号 ';
                     }
-                    $msg = '订单配送异常,订单编号 ';
                     break;
             }
             // ====================== 事务提交

+ 28 - 23
app-hd/controllers/IntraCityController.php

@@ -339,10 +339,10 @@ class IntraCityController extends BaseController
         if ($order['status'] != 2) {
             util::fail('待发货订单才能发跑腿,请刷新页面');
         }
-        // 不能创建配送的几种配送状态
-        $notCanCreateSendStatus = [-1, 3];
+        //如果不是没鹛跑腿和取消了,则不能再叫跑腿,有多处,关键词no_call_express
+        $notCanCreateSendStatus = [-2, 3];
         if (!in_array($order['sendStatus'], $notCanCreateSendStatus)) {
-            util::fail('不能叫跑腿,请刷新页面');
+            util::fail('不能叫跑腿,请刷新页面,编号966');
         }
         if ($order['repeat'] == 1) {
             util::fail('收款码订单不支持跑腿');
@@ -361,20 +361,23 @@ class IntraCityController extends BaseController
         $orderType = $order['orderType'] ?? 1;
         $goodsNum = $order['goodsNum'] ?? 0;
         $goodsNum = $goodsNum > 0 ? $goodsNum : 1;
-        $itemList = [['item_name' => '花材', 'item_pic_url' => imgUtil::groupImg(''), 'count' => $goodsNum]];
-        if ($orderType == 1) {
-            $itemInfo = OrderGoodsClass::getByCondition(['orderSn' => $sn], true);
-            if (!empty($itemInfo)) {
-                $cover = $itemInfo['cover'] ?? '';
-                $itemList = [['item_name' => '花束', 'item_pic_url' => imgUtil::groupImg($cover), 'count' => $goodsNum]];
-            }
-        } else {
+
+        $itemList = [];
+        $itemInfo = OrderGoodsClass::getByCondition(['orderSn' => $sn], true);
+        if (!empty($itemInfo)) {
+            $cover = $itemInfo->cover ?? '';
+            $itemList = [['item_name' => '花束', 'item_pic_url' => imgUtil::groupImg($cover), 'count' => $goodsNum]];
+        }
+        if (empty($itemList)) {
             $itemInfo = OrderItemClass::getByCondition(['orderSn' => $sn], true);
             if (!empty($itemInfo)) {
-                $cover = $itemInfo['cover'] ?? '';
+                $cover = $itemInfo->cover ?? '';
                 $itemList = [['item_name' => '花材', 'item_pic_url' => imgUtil::groupImg($cover), 'count' => $goodsNum]];
             }
         }
+        if (empty($itemList)) {
+            $itemList = [['item_name' => '鲜花花材', 'item_pic_url' => imgUtil::groupImg(''), 'count' => $goodsNum]];
+        }
 
         $cargoName = $orderType == 1 ? '花束' : '花材';
 
@@ -434,8 +437,9 @@ class IntraCityController extends BaseController
 
         if (isset($result['errcode']) && $result['errcode'] === 0) {
             $deliveryId = $result['service_trans_id'] ?? '';
-            // 更新订单状态为配送中,已呼叫小哥,等小哥接单;有可能到店自取的转跑腿,sendType要变化
-            OrderClass::updateById($orderId, ['sendStatus' => 0, 'status' => 3, 'deliveryId' => $deliveryId, 'sendType' => 2]);
+            $sendDistance = $result['distance'] ?? 0;
+            //订单状态:配送中。配送平台状态:已收到申请,待确认。
+            OrderClass::updateById($orderId, ['sendStatus' => -1, 'deliveryId' => $deliveryId, 'sendDistance' => $sendDistance, 'sendType' => 2, 'status' => 3]);
 
             // 保存进 xhExpressOrder 表
             $orderData = [
@@ -450,7 +454,9 @@ class IntraCityController extends BaseController
                 'distance' => $result['distance'] ?? 0,
                 'fee' => $result['fee'] ?? 0,
                 'fetchCode' => $result['fetch_code'] ?? '',
-                'orderSeq' => $result['order_seq'] ?? ''
+                'orderSeq' => $result['order_seq'] ?? '',
+                'status' => 1,//有订单可以取消
+                'orderStatus' => 0,//已提交申请,待确认
             ];
             ExpressOrderClass::add($orderData);
 
@@ -549,9 +555,9 @@ class IntraCityController extends BaseController
         if ($order->status != 3) {
             util::fail('不能取消');
         }
-        if (in_array($order->sendStatus, [-1, 2, 3])) {
+        if (in_array($order->sendStatus, [-2, 2, 3])) {
             //订单 没叫跑腿、已送达、已取消
-            util::fail('不能取消哈');
+            util::fail('不能取消哈,编号896');
         }
 
         $express = ExpressOrderClass::getByCondition(['orderId' => $orderId, 'status' => 1], true);
@@ -653,10 +659,9 @@ class IntraCityController extends BaseController
             switch ($orderStatus) {
                 // 订单创建成功,已叫跑腿,等跑腿接单
                 case IntraCityExpress::ORDER_STATUS_CREATED:
-                    if ($order->status == 2) {
+                    if ($order->status == 3) {
                         $eo->orderStatus = 1;
                         $eo->save();
-                        $order->status = 3;
                         $order->sendStatus = 0;
                         $order->save();
                     }
@@ -707,8 +712,8 @@ class IntraCityController extends BaseController
                         $order->status = 2;//取消配送
                         $order->sendStatus = 3;//取消配送
                         $order->save();
+                        $msg = '取消配送,订单编号 ';
                     }
-                    $msg = '取消配送,订单编号 ';
                     break;
                 // 配送员撤单
                 case IntraCityExpress::ORDER_STATUS_WITHDRAWN:
@@ -724,8 +729,8 @@ class IntraCityController extends BaseController
                         $order->status = 2;//取消配送
                         $order->sendStatus = 3;//取消配送
                         $order->save();
+                        $msg = '配送方取消配送,订单编号 ';
                     }
-                    $msg = '配送方取消配送,订单编号 ';
                     break;
                 // 配送异常
                 case IntraCityExpress::ORDER_STATUS_EXCEPTION:
@@ -736,11 +741,11 @@ class IntraCityController extends BaseController
                         $order->status = 2;//取消配送
                         $order->sendStatus = 3;//取消配送
                         $order->save();
+                        $msg = '订单配送异常,订单编号 ';
                     }
-                    $msg = '订单配送异常,订单编号 ';
                     break;
             }
-            if (empty($msg)) { // $msg 不为空,则发通知
+            if (!empty($msg)) { // $msg 不为空,则发通知
                 $order = OrderClass::getById($orderId, true, 'id, shopId, customName, sendNum');
                 $shop = ShopClass::getById($order->shopId, true, 'id, ptStyle, mainId');
                 $result = $msg . $order->sendNum;

+ 2 - 2
app-mall/controllers/OrderController.php

@@ -367,7 +367,7 @@ class OrderController extends BaseController
                 $sendCost = bcdiv($fee, 100, 2);
                 $post['sendCost'] = $sendCost;
                 $post['sendDistance'] = $distance;
-                noticeUtil::push("运费:{$sendCost} 重量:{$totalWeight} 距离:{$distance} 姓名:{$customName} 手机号 {$customMobile} 经纬 {$originalLng} {$originalLat} 金额:{$modifyPrice} 数量:{$totalNum}", '15280215347');
+                noticeUtil::push("零售订单,获取运费:{$sendCost} 重量:{$totalWeight} 距离:{$distance} 姓名:{$customName} 手机号 {$customMobile} 经纬 {$originalLng} {$originalLat} 金额:{$modifyPrice} 数量:{$totalNum}", '15280215347');
                 $modifyPrice = bcadd($modifyPrice, $sendCost, 2);
             }
 
@@ -565,7 +565,7 @@ class OrderController extends BaseController
                 if ($goodsInfo->freightType == 1) {
                     $sendCost = 0;
                 }
-                noticeUtil::push("运费:{$sendCost} 重量:{$totalWeight} 距离:{$sendDistance} 姓名:{$customName} 手机号 {$customMobile} 经纬 {$originalLng} {$originalLat} 金额:{$goodsPrice} 数量:{$goodsNum}", '15280215347');
+                noticeUtil::push("零售订单!获取运费:{$sendCost} 重量:{$totalWeight} 距离:{$sendDistance} 姓名:{$customName} 手机号 {$customMobile} 经纬 {$originalLng} {$originalLat} 金额:{$goodsPrice} 数量:{$goodsNum}", '15280215347');
             }
             $post['sendDistance'] = $sendDistance;
             $post['sendCost'] = $sendCost;

+ 4 - 1
biz-hd/purchase/classes/PurchaseClass.php

@@ -423,7 +423,7 @@ class PurchaseClass extends BaseClass
         $openIntraCity = $ability['openIntraCity'] ?? 0;
         if ($openIntraCity == 0) {
             //没有开启同城配送能力,不计算运费和距离
-            util::success(['distance' => 0, 'showDistance' => 0, 'fee' => 0]);
+            return ['distance' => 0, 'showDistance' => 0, 'fee' => 0];
         }
         $shopLat = $shop->lat ?? '';
         $shopLong = $shop->long ?? '';
@@ -477,6 +477,9 @@ class PurchaseClass extends BaseClass
         $showDistance = sprintf("%.1f", ($distance / 1000));
         $fee = $result['est_fee'] ?? 0;
         $totalFee = sprintf("%.1f", ($fee / 100));
+
+        noticeUtil::push("批发订单,获取运费:{$totalFee} 重量:{$weight} 距离:{$showDistance} 客户名:{$customMobile} 手机号 {$customMobile} 经纬 {$shopLong} {$shopLat} 金额:{$price} 数量:{$packageNum}", '15280215347');
+
         return ['distance' => $distance, 'showDistance' => $showDistance, 'fee' => $totalFee];
     }
 

+ 2 - 0
biz-hd/purchase/services/PurchaseService.php

@@ -75,6 +75,7 @@ class PurchaseService extends BaseService
         $orderType = 2;
         $book = $data['book'] ?? 0;
         $preSell = $data['presell'] ?? 0;
+        $sendDistance = $data['sendDistance'] ?? 0;
         $mainId = $custom['ownMainId'] ?? 0;
         $fromType = dict::getDict('fromType', 'mall');
         $arr = [
@@ -118,6 +119,7 @@ class PurchaseService extends BaseService
             'live' => $live,
             'localOrder' => $localOrder,
             'transType' => $transType,
+            'sendDistance' => $sendDistance,
         ];
         $result = OrderClass::addOrder($arr);
         $saleId = $result['id'] ?? 0;