فهرست منبع

达达接口调通

林琦海 5 سال پیش
والد
کامیت
ffcd123c62

+ 59 - 4
biz-ghs/express/services/DadaExpressServices.php

@@ -7,19 +7,39 @@
 namespace bizGhs\express\services;
 
 
+use biz\shop\classes\ShopExpressClass;
+use biz\sj\classes\SjExpressClass;
+use bizGhs\order\classes\OrderClass;
+use common\components\dada\dada;
+use common\components\util;
+use Yii;
 class DadaExpressServices
 {
     //根据订单号,发快递
-    public static function addOrder($orderSn)
+    public static function addOrder($orderInfo)
     {
-        //
+        if(empty($orderInfo)){
+            util::fail("订单不存在");
+        }
+        $sjId = $orderInfo['merchantId'];
+        $sourceId = SjExpressClass::getSourceId($sjId);
+        $orderParams = self::orderParams($orderInfo);
+        $res = dada::addOrder($sourceId,$orderParams);
+        return $res;
     }
 
     //根据订单号,运费计算
-    public static function queryDeliverFee($orderSn)
+    public static function queryDeliverFee($orderInfo)
     {
         //
-
+        if(empty($orderInfo)){
+            util::fail("订单不存在");
+        }
+        $sjId = $orderInfo['merchantId'];
+        $sourceId = SjExpressClass::getSourceId($sjId);
+        $orderParams = self::orderParams($orderInfo);
+        $res = dada::queryDeliverFee($sourceId,$orderParams);
+        return $res;
     }
 
     //取消订单
@@ -28,6 +48,41 @@ class DadaExpressServices
         //
     }
 
+    //组装订单参数
+    public static function orderParams($orderInfo)
+    {
+        $sjId = $orderInfo['merchantId'];
+        $online = Yii::$app->params['dadaOnline'];
+        $shopId = $orderInfo['shopId'];
+
+        $orderSn = $orderInfo['orderSn'];
+        //获取快递方 商户id, 跟门店id
+        $shopNo = ShopExpressClass::getShopNo($sjId,$shopId);
+        if(!$online){
+            $shopNo = '11047059';
+        }
+        $params  = [
+            'shop_no'=>$shopNo,
+            'origin_id'=>$orderSn,
+            'city_code'=>'0592', //厦门  暂写死
+            'cargo_price'=>(float)$orderInfo['actPrice'], //订单金额(单位:元) 实际支付价格?
+            'is_prepay'=>0, // 是否需要垫付 1:是 0:否 (垫付订单金额,非运费)
+            'receiver_name'=>$orderInfo['customName'], //收货人姓名
+            'receiver_address'=>$orderInfo['fullAddress'], //收货人地址
+            'receiver_lat' =>(float)$orderInfo['lat'], // 存的是百度经纬度,需要转高德经纬度
+            'receiver_lng' =>(float)$orderInfo['long'], // 存的是百度经纬度,需要转高德经纬度
+            'callback'=> Yii::$app->params['ghsHost'].'/notice/express-callback',
+            'cargo_weight'=>0.01,//订单重量(单位:Kg)
+            'receiver_phone'=>$orderInfo['customMobile'],//否	收货人手机号(手机号和座机号必填一项)
+            'info'=>'',//备注
+            'cargo_type'=>3, //类型:鲜花
+            'cargo_num'=>(int)$orderInfo['bigNum'],
+            'origin_mark_no'=>'#销花宝#',
+            'delay_publish_time'=>strtotime($orderInfo['sendTime']),
+        ];
+        return $params;
+
+    }
 
 
 }

+ 30 - 0
biz/shop/classes/ShopExpressClass.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace biz\shop\classes;
+
+use common\components\util;
+use Yii;
+use biz\base\classes\BaseClass;
+
+class ShopExpressClass extends BaseClass
+{
+
+	public static $baseFile = '\biz\shop\models\ShopExpress';
+
+
+	//通过sjId, shopId 获取 快递方的门店ID
+    public static function getShopNo($sjId,$shopId,$label='dada')
+    {
+        $where = [
+            'sJid'=>$sjId,
+            'shopId'=>$shopId,
+            'label'=>$label
+        ];
+        $res = self::getByCondition($where);
+        if(empty($res)){
+            util::fail("门店不存在");
+        }
+        return $res['shopNo'];
+    }
+
+}

+ 13 - 0
biz/shop/models/ShopExpress.php

@@ -0,0 +1,13 @@
+<?php
+namespace biz\shop\models;
+use biz\base\models\Base;
+
+class ShopExpress extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhShopExpress';
+	}
+
+}

+ 14 - 0
biz/shop/services/ShopExpressService.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace biz\shop\services;
+
+use biz\base\services\BaseService;
+use common\components\util;
+use Yii;
+
+class ShopExpressService extends BaseService
+{
+
+	public static $baseFile = '\biz\shop\classes\ShopExpressClass';
+
+}

+ 26 - 0
biz/sj/classes/SjExpressClass.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace biz\sj\classes;
+
+use Yii;
+use biz\base\classes\BaseClass;
+use common\components\util;
+class SjExpressClass extends BaseClass
+{
+
+	public static $baseFile = '\biz\sj\models\SjExpress';
+
+    //通过sjId, shopId 获取 快递方的门店ID
+    public static function getSourceId($sjId,$label='dada')
+    {
+        $where = [
+            'sJid'=>$sjId,
+            'label'=>$label
+        ];
+        $res = self::getByCondition($where);
+        if(empty($res)){
+            util::fail("门店不存在");
+        }
+        return $res['sourceId'];
+    }
+}

+ 13 - 0
biz/sj/models/SjExpress.php

@@ -0,0 +1,13 @@
+<?php
+namespace biz\sj\models;
+use biz\base\models\Base;
+
+class SjExpress extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhSjExpress';
+	}
+
+}

+ 15 - 0
biz/sj/services/SjExpressService.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace biz\sj\services;
+
+use biz\base\services\BaseService;
+use common\components\util;
+use Yii;
+
+class SjExpressService extends BaseService
+{
+
+	public static $baseFile = '\biz\sj\classes\SjExpressClass';
+
+
+}

+ 3 - 0
common/components/dada/api/baseApi.php

@@ -48,6 +48,9 @@ class baseApi
      */
     public function setBusinessParams($businessParams)
     {
+        if(is_array($businessParams)){
+            $businessParams = json_encode($businessParams);
+        }
         $this->businessParams = $businessParams;
     }
 

+ 6 - 1
common/config/params.php

@@ -46,7 +46,6 @@ $config = [
     'endpoint'=>'oss-cn-hangzhou.aliyuncs.com',
 
     //达达相关配置
-    'dadaOnline'=>false, //正式环境改为true
     'dadaAppKey'=>'dadae6c9d6064e69cf4',
     'dadaAppSecret'=>'8ed3b159f64021003aa73f7233118fe6',
 ];
@@ -87,6 +86,9 @@ if (getenv('YII_ENV') == 'local') {
     $config['mallImgHost'] = $prefixHttp . 'img.the.cn/';
 
     $config['ossBucket'] = 'pic-hhb-cs';
+
+    //Dada
+    $config['dadaOnline']= false; //正式环境改为true
 }
 if (getenv('YII_ENV') == 'test') {
     $config['hdHost'] = $prefixHttp . 'api.shop.huaml.com';
@@ -108,6 +110,7 @@ if (getenv('YII_ENV') == 'test') {
     $config['mallImgHost'] = $prefixHttp . 'img.theflorist.cn/';
 
     $config['ossBucket'] = 'pic-hhb-cs';
+    $config['dadaOnline']= false; //正式环境改为true
 }
 if (getenv('YII_ENV') == 'dev') {
     $config['hdHost'] = $prefixHttp . 'api.shop.huaml.com';
@@ -129,6 +132,7 @@ if (getenv('YII_ENV') == 'dev') {
     $config['mallImgHost'] = $prefixHttp . 'img.theflorist.cn/';
 
     $config['ossBucket'] = 'pic-hhb-cs';
+    $config['dadaOnline']= false; //正式环境改为true
 }
 if (getenv('YII_ENV') == 'production') {
     $config['hdHost'] = $prefixHttp . 'api.shop.huahb.com';
@@ -150,5 +154,6 @@ if (getenv('YII_ENV') == 'production') {
     $config['mallImgHost'] = $prefixHttp . 'img.zhhinc.com/';
 
     $config['ossBucket'] = 'pic-hhb';
+    $config['dadaOnline']= true; //正式环境改为true
 }
 return $config;