shish hace 11 meses
padre
commit
ecef1819f8

+ 1 - 1
app-ghs/controllers/IntraCityController.php

@@ -569,7 +569,7 @@ class IntraCityController extends BaseController
                 OrderClass::updateById($orderId, ['sendStatus' => OrderClass::ORDER_STATUS_CANCEL]);//设置为取消状态
                 $eo = ExpressOrderClass::getByCondition(['storeOrderId' => $storeOrderId, 'wxStoreId' => $wxStoreId], true);
                 if (!empty($eo)) {
-                    $eo->status = ExpressOrder::STATUS_CANCELED;
+                    $eo->status = 3;
                     $eo->cancelTime = date('Y-m-d H:i:s');
                     $eo->deductfee = $result['deductfee'];
                     $eo->save();

+ 42 - 40
app-hd/controllers/IntraCityController.php

@@ -328,22 +328,19 @@ class IntraCityController extends BaseController
             $field = 'mainId, status, sendStatus, repeat, forward, orderSn, userId, actPrice, sendNum';
             $order = OrderClass::getById($orderId, false, $field);
             if (empty($order)) {
-                util::fail('订单出错');
+                util::fail('没有找到订单');
             }
             if ($order['mainId'] != $this->mainId) {
-                util::fail('订单出错');
+                util::fail('不是你的订单');
             }
             // 不能创建配送的几种订单状态
-            $notCanCreateStatus = [OrderClass::ORDER_STATUS_UN_PAY, OrderClass::ORDER_STATUS_SENDING, OrderClass::ORDER_STATUS_COMPLETE, OrderClass::ORDER_HAD_REFUND];
-            if (in_array($order['status'], $notCanCreateStatus)) {
-                Yii::error('订单号:' . $orderId . ' 的状态是 ' . $order['status'] . ',不允许创建配送');
-                util::fail('当前订单状态无法创建配送');
+            if ($order['status'] != 2) {
+                util::fail('不能叫跑腿,请刷新页面哈');
             }
             // 不能创建配送的几种配送状态
-            $notCanCreateSendStatus = [OrderClass::SEND_STATUS_SENDING, OrderClass::SEND_STATUS_COMPLETED];
-            if (in_array($order['sendStatus'], $notCanCreateSendStatus)) {
-                Yii::error('订单号:' . $orderId . ' 的配送状态是 ' . $order['sendStatus'] . ',不允许重复创建配送');
-                util::fail('当前订单配送状态无法创建配送');
+            $notCanCreateSendStatus = [-1, 3];
+            if (!in_array($order['sendStatus'], $notCanCreateSendStatus)) {
+                util::fail('不能叫跑腿,请刷新页面');
             }
             if ($order['repeat'] == 1) {
                 util::fail('收款码订单不支持跑腿');
@@ -403,8 +400,11 @@ class IntraCityController extends BaseController
             // 通过 userId 获取 openid(小程序OpenId)
             $user = UserClass::getById($order['userId'], false, 'id, miniOpenId');
             if (empty($user)) {
-                Yii::error('获取用户openId出错');
-                util::fail('数据出错');
+                util::fail('用户信息缺失');
+            }
+            $miniOpenId = $user['miniOpenId'] ?? '';
+            if (empty($miniOpenId)) {
+                util::fail('没有找到用户的微信数据');
             }
 
             $cargo = [
@@ -436,7 +436,7 @@ class IntraCityController extends BaseController
             $orderData = [
                 'wx_store_id' => $shopExt['wxStoreId'],
                 'store_order_id' => $storeOrderId, //同一个门店订单编号要保证唯一,相同的订单号会重入
-                'user_openid' => $user['miniOpenId'],
+                'user_openid' => $miniOpenId,
                 'user_lng' => $post['user_lng'],
                 'user_lat' => $post['user_lat'],
                 'user_address' => $post['user_address'],
@@ -463,13 +463,15 @@ class IntraCityController extends BaseController
             $result = IntraCityExpress::createOrder($orderData);
 
             if (isset($result['errcode']) && $result['errcode'] === 0) {
-                OrderClass::updateById($orderId, ['sendStatus' => 1]); // 更新订单状态为配送中
+                $deliveryId = $result['service_trans_id'] ?? '';
+                // 更新订单状态为配送中,已呼叫小哥,等小哥接单
+                OrderClass::updateById($orderId, ['sendStatus' => 0,'status'=>3, 'deliveryId' => $deliveryId]);
 
                 // 保存进 xhExpressOrder 表
                 $orderData = [
                     'mainId' => $this->mainId,
                     'shopId' => $this->shopId,
-                    'deliveryId' => $result['service_trans_id'] ?? '',
+                    'deliveryId' => $deliveryId,
                     'wxOrderId' => $result['wx_order_id'] ?? '',
                     'wxStoreId' => $result['wx_store_id'] ?? '',
                     'storeOrderId' => $result['store_order_id'] ?? '',
@@ -613,10 +615,10 @@ class IntraCityController extends BaseController
             $result = IntraCityExpress::cancelOrder($wxOrderId, $storeOrderId, $wxStoreId);
             if (isset($result['errcode']) && $result['errcode'] === 0) {
                 // 更新订单状态
-                OrderClass::updateById($orderId, ['sendStatus' => OrderClass::SEND_STATUS_CANCEL]);//设置为取消状态
+                OrderClass::updateById($orderId, ['sendStatus' => 3]);//设置为取消状态
                 $eo = ExpressOrderClass::getByCondition(['storeOrderId' => $storeOrderId, 'wxStoreId' => $wxStoreId], true);
                 if (!empty($eo)) {
-                    $eo->status = ExpressOrder::STATUS_CANCELED;
+                    $eo->status = 3;
                     $eo->cancelTime = date('Y-m-d H:i:s');
                     $eo->deductfee = $result['deductfee'];
                     $eo->save();
@@ -674,13 +676,12 @@ class IntraCityController extends BaseController
         // 记录回调日志
         Yii::info('同城配送回调:' . json_encode($callbackData, JSON_UNESCAPED_UNICODE));
 
-        $storeOrderId = isset($callbackData['store_order_id']) ? $callbackData['store_order_id'] : 0;
-        $wxStoreId = isset($callbackData['wx_store_id']) ? $callbackData['wx_store_id'] : ''; //微信门店编号
+        $storeOrderId = $callbackData['store_order_id'] ?? 0;
+        $wxStoreId = $callbackData['wx_store_id'] ?? ''; //微信门店编号
         if (empty($storeOrderId) || empty($wxStoreId)) {
             return $this->asJson(['return_code' => 1, 'return_msg' => '请求参数不正确']);
         }
 
-
         try {
             // 使用 storeOrderId 与 wxStoreId 去查询 xhExpressOrder 表
             $eo = ExpressOrderClass::getByCondition(['storeOrderId' => $storeOrderId, 'wxStoreId' => $wxStoreId], true, false);
@@ -702,70 +703,71 @@ class IntraCityController extends BaseController
             switch ($orderStatus) {
                 // 订单创建成功
                 case IntraCityExpress::ORDER_STATUS_CREATED:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_CREATED;
-                    $eo->status = ExpressOrder::STATUS_CREATED;
+                    $eo->orderStatus = 1;
                     // 更新 xhOrder 表的订单状态与配送状态 -- 配送中|已发货
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_SENDING, 'sendStatus' => OrderClass::SEND_STATUS_SENDING]);
+                    OrderClass::updateById($orderId, ['status' => 3, 'sendStatus' => 0]);
                     break;
 
                 // 商家取消订单
                 case IntraCityExpress::ORDER_STATUS_CANCELED_BY_MERCHANT:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_CANCELED_BY_MERCHANT;
+                    $eo->orderStatus = 2;
                     // 更新 xhOrder 表的订单状态与配送状态 -- 待配送|取消
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_UN_SEND, 'sendStatus' => OrderClass::SEND_STATUS_CANCEL]);
+                    OrderClass::updateById($orderId, ['status' => 2, 'sendStatus' => 3]);
                     $msg = '取消配送,订单编号:';
                     break;
 
                 // 配送方取消订单
                 case IntraCityExpress::ORDER_STATUS_CANCELED_BY_DELIVERY:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_CANCELED_BY_DELIVERY;
-                    $eo->status = ExpressOrder::STATUS_CANCELED;
+                    $eo->orderStatus = 3;
+                    $eo->status = 0;
                     // 更新 xhOrder 表的订单状态与配送状态 -- 待配送|取消
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_UN_SEND, 'sendStatus' => OrderClass::SEND_STATUS_CANCEL]);
+                    OrderClass::updateById($orderId, ['status' => 2, 'sendStatus' => 3]);
                     $msg = '配送方取消配送,订单编号:';
                     break;
 
                 // 配送员接单
                 case IntraCityExpress::ORDER_STATUS_ACCEPTED:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_ACCEPTED;
+                    $eo->orderStatus = 4;
                     // 更新 xhOrder 表的订单状态与配送状态 -- 配送中|已发货
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_SENDING, 'sendStatus' => OrderClass::SEND_STATUS_SENDING]); //订单创建时已执行了,这儿重复更新
+                    OrderClass::updateById($orderId, ['status' => 3, 'sendStatus' => 1]); //订单创建时已执行了,这儿重复更新
                     break;
 
                 // 配送员到店
                 case IntraCityExpress::ORDER_STATUS_ARRIVED:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_ARRIVED;
+                    $eo->orderStatus = 5;
                     // 更新 xhOrder 表的订单状态与配送状态 -- 配送中|已发货
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_SENDING, 'sendStatus' => OrderClass::SEND_STATUS_SENDING]); //订单创建时已执行了,这儿重复更新
+                    OrderClass::updateById($orderId, ['status' => 3, 'sendStatus' => 4]); //订单创建时已执行了,这儿重复更新
                     break;
 
                 // 配送中
                 case IntraCityExpress::ORDER_STATUS_DELIVERING:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_DELIVERING;
+                    $eo->orderStatus = 6;
+                    OrderClass::updateById($orderId, ['sendStatus' => 5]);
                     break;
 
                 // 配送员撤单
                 case IntraCityExpress::ORDER_STATUS_WITHDRAWN:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_WITHDRAWN;
+                    $eo->orderStatus = 7;
+                    $eo->status = 0;
                     // 更新 xhOrder 表的订单状态与配送状态 -- 待配送|未发货
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_UN_SEND, 'sendStatus' => OrderClass::SEND_STATUS_UNSEND]);
+                    OrderClass::updateById($orderId, ['status' => 2, 'sendStatus' => 3]);
                     $msg = '跑腿取消配送,订单编号:';
                     break;
 
                 // 配送完成
                 case IntraCityExpress::ORDER_STATUS_COMPLETED:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_COMPLETED;
-                    $eo->status = ExpressOrder::STATUS_COMPLETED;
+                    $eo->orderStatus = 8;
                     // 更新 xhOrder 表的订单状态与配送状态 -- 已完成|已送达
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'sendStatus' => OrderClass::SEND_STATUS_COMPLETED]);
+                    OrderClass::updateById($orderId, ['status' => 4, 'sendStatus' => 2]);
                     break;
 
                 // 配送异常
                 case IntraCityExpress::ORDER_STATUS_EXCEPTION:
-                    $eo->orderStatus = ExpressOrder::ORDER_STATUS_EXCEPTION;
+                    $eo->orderStatus = 9;
+                    $eo->status = 0;
                     noticeUtil::push('同城配送异常 --- store_order_id(orderId):' . $storeOrderId . ',wx_store_id:' . $wxStoreId);
                     // 更新 xhOrder 表的订单状态与配送状态 -- 待配送|未发货
-                    OrderClass::updateById($orderId, ['status' => OrderClass::ORDER_STATUS_UN_SEND, 'sendStatus' => OrderClass::SEND_STATUS_UNSEND]);
+                    OrderClass::updateById($orderId, ['status' => 2, 'sendStatus' => 3]);
                     $msg = '订单配送异常,订单编号:';
                     break;
             }

+ 0 - 15
biz-hd/express/models/ExpressOrder.php

@@ -4,21 +4,6 @@ use bizHd\base\models\Base;
 
 class ExpressOrder extends Base
 {
-    // order_status -- 小程序返回的各订单状态
-    const ORDER_STATUS_CREATED = 1;                 // 订单创建成功
-    const ORDER_STATUS_CANCELED_BY_MERCHANT = 2;    // 商家取消订单
-    const ORDER_STATUS_CANCELED_BY_DELIVERY = 3;    // 配送方取消订单
-    const ORDER_STATUS_ACCEPTED = 4;       // 配送员接单
-    const ORDER_STATUS_ARRIVED = 5;        // 配送员到店
-    const ORDER_STATUS_DELIVERING = 6;     // 配送中
-    const ORDER_STATUS_WITHDRAWN = 7;      // 配送员撤单
-    const ORDER_STATUS_COMPLETED = 8;      // 配送完成
-    const ORDER_STATUS_EXCEPTION = 9;      // 配送异常
-
-    // status -- 本系统记录的订单状态
-    const STATUS_CREATED = 1; // 配送中
-    const STATUS_COMPLETED = 2; // 完成
-    const STATUS_CANCELED = 3; // 取消
 
     public static function tableName()
     {

+ 0 - 9
biz-hd/order/classes/OrderClass.php

@@ -36,9 +36,6 @@ class OrderClass extends BaseClass
 
     public static $baseFile = '\bizHd\order\models\Order';
 
-    // todo 注意这个是订单的状态
-    //已退款
-    const ORDER_HAD_REFUND = 6;
     //已取消
     const ORDER_STATUS_CANCEL = 5;
     //完成
@@ -50,12 +47,6 @@ class OrderClass extends BaseClass
     //待付款
     const ORDER_STATUS_UN_PAY = 1;
 
-    // todo 注意这个是配送单的状态
-    const SEND_STATUS_UNSEND = 0; //未发货
-    const SEND_STATUS_SENDING = 1; //已发货(配送中)
-    const SEND_STATUS_COMPLETED = 2; //已送达
-    const SEND_STATUS_CANCEL = 3; //取消
-
     //订单总流程数
     const ORDER_TOTAL_FLOW = 4;
 

+ 0 - 26
common/components/IntraCityExpress.php

@@ -638,32 +638,6 @@ class IntraCityExpress
     const ORDER_STATUS_COMPLETED = 70000;      // 配送完成
     const ORDER_STATUS_EXCEPTION = 90000;      // 配送异常
 
-    /**
-     * 物品类型常量
-     */
-    const GOODS_TYPE_FAST_FOOD = 1;    // 快餐
-    const GOODS_TYPE_MEDICINE = 2;     // 药品
-    const GOODS_TYPE_GENERAL = 3;      // 百货
-    const GOODS_TYPE_FRESH = 6;        // 生鲜
-    const GOODS_TYPE_WINE = 8;         // 酒品
-    const GOODS_TYPE_DOCUMENT = 12;    // 文件
-    const GOODS_TYPE_CAKE = 13;        // 蛋糕
     const GOODS_TYPE_FLOWER = 14;      // 鲜花
-    const GOODS_TYPE_DIGITAL = 15;     // 数码
-    const GOODS_TYPE_CLOTHING = 16;    // 服装
-    const GOODS_TYPE_AUTO_PARTS = 17;  // 汽配
-    const GOODS_TYPE_JEWELRY = 18;     // 珠宝
-    const GOODS_TYPE_DRINK = 32;       // 饮料
-    const GOODS_TYPE_LICENSE = 36;     // 证照
-    const GOODS_TYPE_PET = 55;         // 宠物用品
-    const GOODS_TYPE_MATERNITY = 56;   // 母婴用品
-    const GOODS_TYPE_COSMETICS = 57;   // 美妆用品
-    const GOODS_TYPE_HOME = 58;        // 家居建材
-    const GOODS_TYPE_OTHER = 99;       // 其他
 
-    /**
-     * 运力常量
-     */
-    const DELIVERY_DADA = 'DADA';      // 达达
-    const DELIVERY_SFTC = 'SFTC';      // 顺丰同城
 }