Explorar el Código

Merge branch 'zhongqi-delivery' into dev

shizhongqi hace 8 meses
padre
commit
da7987a026

+ 17 - 4
app-ghs/controllers/DeliveryController.php

@@ -13,6 +13,7 @@ use ghs\models\delivery\CreateOrderForm;
 use ghs\models\delivery\OrderDetailForm;
 use Yii;
 use yii\web\Response;
+use yii\helpers\ArrayHelper;
 
 /**
  * 聚合配送(自配 + 聚合动力)
@@ -86,7 +87,12 @@ class DeliveryController extends BaseController
     {
         //闪送授权(商户授权:授权后能为商户下所有门店发单)
         $auth = new \common\components\delivery\platform\shansong\Auth();
-        $redirectUrl = 'https://api.shop.hzghd.com/delivery/shansong-auth-callback';
+        if(getenv('YII_ENV') == 'production') {
+            $apiHost = Yii::$app->params['ghsHost'];
+        } else {
+            $apiHost = Yii::$app->params['ghsHost'];
+        }
+        $redirectUrl = $apiHost . '/delivery/shansong-auth-callback';
         $authUrl = $auth->generateMerchantAuthUrl($this->mainId, $redirectUrl);
 
         // 重定向用户
@@ -98,7 +104,8 @@ class DeliveryController extends BaseController
     {
         $huoLalaAuth = new \common\components\delivery\platform\huolala\Auth();
         $mainId = $this->mainId;
-        $redirectUrl = 'https://api.shop.hzghd.com/delivery/huolala-auth-callback' . '?mainId=' . $mainId;
+        $apiHost = Yii::$app->params['ghsHost'];
+        $redirectUrl = $apiHost . '/delivery/huolala-auth-callback' . '?mainId=' . $mainId;
         $authUrl = $huoLalaAuth->generateAuthUrl($redirectUrl);
 
         //header('Location: ' . $authUrl);
@@ -109,7 +116,7 @@ class DeliveryController extends BaseController
     {
         $fengnaioAuth = new \common\components\delivery\platform\fengniao\Auth();
         $mainId = $this->mainId;
-        $redirectUrl = 'https://api.shop.hzghd.com/delivery/fengniao-auth-callback' . '?mainId=' . $mainId;
+        $redirectUrl = Yii::$app->params['ghsHost'] . '/delivery/fengniao-auth-callback' . '?mainId=' . $mainId;
         $authUrl = $fengnaioAuth->generateAuthUrl($redirectUrl);
 
         util::success(['url'=>$authUrl]);
@@ -121,7 +128,7 @@ class DeliveryController extends BaseController
         $ticket = $dadaAuth->getTicket();
 
         $mainId = $this->mainId;
-        $redirectUrl = 'https://api.shop.hzghd.com/delivery/dada-auth-callback' . '?mainId=' . $mainId;
+        $redirectUrl = Yii::$app->params['ghsHost'] . '/delivery/dada-auth-callback' . '?mainId=' . $mainId;
         $shopNumber = '40d8391f9b05477b';
         $state = 'huidiao_biaoshi';
         $authUrl = $dadaAuth->generateAuthUrl($ticket, $state, $shopNumber);
@@ -252,6 +259,9 @@ class DeliveryController extends BaseController
 
         $ds = new DispatchService($this->mainId);
         $platformQuotes = $ds->getAllPlatformPrice($order, $shop, $orderTime);
+        if(isset($platformQuotes['error'])){
+            util::fail($platformQuotes['error']);
+        }
 
         $deliveryList = [];
         foreach ($platformQuotes['quotes'] as $item) {
@@ -339,6 +349,9 @@ class DeliveryController extends BaseController
             }
         }
 
+        // 按 price 从低到高排序
+        ArrayHelper::multisort($deliveryList, 'price', SORT_ASC);
+
         $ret['deliveryList'] = $deliveryList;
         util::success($ret, "success");
     }

+ 0 - 40
app-ghs/controllers/ShopController.php

@@ -226,46 +226,6 @@ class ShopController extends BaseController
         unset($post['mobile']);
         $post['img'] = isset($post['img']) && is_array($post['img']) ? json_encode($post['img']) : '';
         \biz\shop\classes\ShopClass::updateShop($shop, $post);
-
-        //同步更新同城配送微信门店
-        // 校验有无经纬度数据,没有不更新(说明地图定位功能不可用了)
-        if ($post['lat'] != '' && $post['long'] != '') {
-            $shopExt = \bizGhs\shop\classes\MainClass::getById($this->mainId, false, false, 'id, wxStoreId');
-            if ($shopExt['wxStoreId'] == '') {
-                Yii::error(__CLASS__ . __METHOD__ . ' - 未创建门店,请先创建');
-                util::complete();
-            }
-
-            $shopName = isset($post['shopName']) ? $post['shopName'] : '';
-            $sjName = $shop['merchantName'] ?? '';
-            $storeName = $shopName == '首店' ? $sjName : $sjName . ' ' . $shopName;
-
-            $storeData = [
-                'keys' => ['wx_store_id' => $shopExt['wxStoreId']],
-                'content' => [
-                    'store_name' => $storeName,
-                    'address_info' => [
-                        'province' => $post['province'],
-                        'city' => $post['city'],
-                        'area' => $post['dist'],
-                        'street' => '',
-                        'house' => $post['floor'] ? $post['address'] . $post['floor'] : $post['address'],
-                        'lat' => $post['lat'],
-                        'lng' => $post['long'],
-                        'phone' => $post['telephone']
-                    ],
-                    //"order_pattern" => 2,
-                    //"service_trans_prefer" => "SFTC" //order_pattern = 2时必填
-                ]
-            ];
-            $result = IntraCityExpress::updateStore($storeData);
-            if ($result['errcode'] == 0) {
-                Yii::info("同步更新同城配送微信门店成功");
-            } else {
-                Yii::error("同步更新同城配送微信门店失败:" . $result['errmsg']);
-            }
-        }
-
         util::complete();
     }
 

+ 17 - 14
app-hd/controllers/DeliveryController.php

@@ -8,6 +8,7 @@ use biz\shop\classes\ShopClass;
 use common\components\delivery\services\DispatchService;
 use common\components\util;
 use ghs\controllers\BaseController;
+use yii\helpers\ArrayHelper;
 
 class DeliveryController extends BaseController
 {
@@ -22,8 +23,7 @@ class DeliveryController extends BaseController
         if (empty($ghs)) {
             util::fail('获取批发商失败');
         }
-        $ghsShopId = $ghs->shopId ?? 0;
-        //$ghsShopId = $post['shopId'];
+        $ghsShopId = $ghs->shopId;
 
         // --------- $customId
         $customId = $ghs->customId ?? 0;
@@ -33,11 +33,15 @@ class DeliveryController extends BaseController
         }
         $weight = $post['weight'] ?? 1;
 
-        //$orderId = intval($post['orderId']);
-        //$order = OrderClass::getById($orderId);
+        // 生成随机订单号
+        //$snData = ['shopId' => $ghsShopId, 'mainId' => $ghs->mainId, 'ghsId' => $ghsId, 'customId' => $customId];
+        //$orderSn = orderSn::getGhsOrderSn($snData);
+        $prefix = 'XSD_CS-';
+        $orderSn = $prefix . round(microtime(true) * 1000);
+
         //构建出 Order 数据
         $order = [
-            'orderSn' => '',
+            'orderSn' => $orderSn,
             'customName' => $custom['name'],
             'customMobile' => $custom['mobile'],
             'fullAddress' => $custom['fullAddress'],
@@ -48,20 +52,16 @@ class DeliveryController extends BaseController
             'address' => $custom['address'], //'toAddress' => $order['address'],
             'city' => $custom['city'],
             'weight' => $weight,
-            'remark' => '',
+            'remark' => $post['remark'] ?? '',
             'prePrice' => 10,
             'actPrice' => 10,
         ];
-
-        $arr2 = [
-            //'goods_count' => count($goodsItemList), // 这个应该是通过  orderSn 查询出来的,如果  orderSn 是假的怎么办? -- 提供临时的
-        ];
-
         $ghsShop = ShopClass::getById($ghsShopId);
-
-        $ghsMainId = $ghs->mainId;
-        $ds = new DispatchService($ghsMainId);
+        $ds = new DispatchService($ghs->mainId);
         $platformQuotes = $ds->getAllPlatformPrice($order, $ghsShop, $orderTime);
+        if(isset($platformQuotes['error'])){
+            util::fail($platformQuotes['error']);
+        }
 
         $deliveryList = [];
         foreach ($platformQuotes['quotes'] as $item) {
@@ -149,6 +149,9 @@ class DeliveryController extends BaseController
             }
         }
 
+        // 按 price 从低到高排序
+        ArrayHelper::multisort($deliveryList, 'price', SORT_ASC);
+
         $ret['deliveryList'] = $deliveryList;
         util::success($ret, "success");
     }

+ 1 - 1
app-hd/controllers/GhsController.php

@@ -303,7 +303,7 @@ class GhsController extends BaseController
 
         // 弃用 buyNotice, 使用 xhShopExt 表里的 purchaseGuide
         // $info['buyNotice'] = $ghsShop->buyNotice ?? 0;
-        $shopExt = ShopExtClass::getByCondition(['shopId' => $ghsShopId], false, false, 'purchaseGuide');
+        $shopExt = ShopExtClass::getByCondition(['shopId' => $ghsShopId], false, false, 'purchaseGuide,hcFreeKm,hcMap');
         $info['buyNotice'] = $shopExt['purchaseGuide'] > 0 ? 1 : 0; //兼容原有设定:购买须知 0.没有 1.有
 
         //判断是否开启同城配送功能

+ 0 - 40
app-hd/controllers/ShopController.php

@@ -152,46 +152,6 @@ class ShopController extends BaseController
         //手机号具有唯一性,暂时不允许修改 --- 同批发端 app-ghs/controllers/ShopController.php 保持一致
         unset($data['mobile']);
         ShopClass::updateShop($shop, $data);
-
-        //同步更新同城配送微信门店
-        // 校验有无经纬度数据,没有不更新(说明地图定位功能不可用了)
-        if ($data['lat'] != '' && $data['long'] != '') {
-            $main = MainClass::getById($this->mainId, false, false, 'id, wxStoreId');
-            if ($main['wxStoreId'] == '') {
-                Yii::error(__CLASS__ . __METHOD__ . ' - 未创建门店,请先创建');
-                util::complete();
-            }
-
-            $shopName = isset($data['shopName']) ? $data['shopName'] : '';
-            $sjName = $shop['merchantName'] ?? '';
-            $storeName = $shopName == '首店' ? $sjName : $sjName . ' ' . $shopName;
-
-            $storeData = [
-                'keys' => ['wx_store_id' => $main['wxStoreId']],
-                'content' => [
-                    'store_name' => $storeName,
-                    'address_info' => [
-                        'province' => $data['province'],
-                        'city' => $data['city'],
-                        'area' => $data['dist'],
-                        'street' => '',
-                        'house' => $data['floor'] ? $data['address'] . $data['floor'] : $data['address'],
-                        'lat' => $data['lat'],
-                        'lng' => $data['long'],
-                        'phone' => $mobile
-                    ],
-                    //"order_pattern" => 2,
-                    //"service_trans_prefer" => "SFTC" //order_pattern = 2时必填
-                ]
-            ];
-            $result = IntraCityExpress::updateStore($storeData);
-            if ($result['errcode'] == 0) {
-                Yii::info("同步更新同城配送微信门店成功");
-            } else {
-                Yii::error("同步更新同城配送微信门店失败:" . $result['errmsg']);
-            }
-        }
-
         util::complete();
     }
 

+ 1 - 1
common/components/delivery/services/DispatchService.php

@@ -368,7 +368,7 @@ class DispatchService
                     'toLatitude' => (float)$order['lat'],
                     'toLongitude' => (float)$order['long'],
                     'goodType' => 7,
-                    'weight' => (int)$order['weight'],
+                    'weight' => (int)round($order['weight']),
                     'remarks' => $order['remark'] ?? '',
                 ]
             ],