wesmiler 2 лет назад
Родитель
Сommit
5c82659782

+ 31 - 17
app/Http/Controllers/Api/v1/OrderController.php

@@ -41,23 +41,6 @@ class OrderController extends webApp
     }
 
     /**
-     * 订单详情
-     * @return array|mixed
-     */
-    public function info()
-    {
-        $params = request()->all();
-        $orderNo = isset($params['order_no'])? $params['order_no'] : '';
-        $id = isset($params['id'])? intval($params['id']) : 0;
-        if ($id<=0 && empty($orderNo)) {
-            return showJson(2014, false);
-        }
-
-        $datas = OrderService::make()->getInfo($id>0? $id:$orderNo, $this->userId);
-        return showJson(1010, true, $datas);
-    }
-
-    /**
      * 购买商品
      * @param OrderValidator $validator
      * @return array
@@ -83,6 +66,37 @@ class OrderController extends webApp
 
     }
 
+    /**
+     * 订单详情
+     * @return array|mixed
+     */
+    public function info()
+    {
+        $params = request()->all();
+        $orderNo = isset($params['order_no'])? $params['order_no'] : '';
+        $id = isset($params['id'])? intval($params['id']) : 0;
+        if ($id<=0 && empty($orderNo)) {
+            return showJson(2014, false);
+        }
+
+        $datas = OrderService::make()->getInfo($id>0? $id:$orderNo, $this->userId);
+        return showJson(1010, true, $datas);
+    }
+
+    /**
+     * 物流信息
+     * @return array
+     */
+    public function track()
+    {
+        $params = request()->all();
+        if(!$result = OrderService::make()->getTrack($this->userId,$params)){
+            return showJson(OrderService::make()->getError(), false);
+        }else{
+            return showJson(OrderService::make()->getError(), true, $result);
+        }
+    }
+
 
     /**
      * 申请退款

+ 30 - 1
app/Services/Api/OrderService.php

@@ -1454,7 +1454,6 @@ class OrderService extends BaseService
         return true;
     }
 
-
     /**
      * 隐藏删除
      * @return false
@@ -1486,5 +1485,35 @@ class OrderService extends BaseService
         }
     }
 
+    /**
+     * 查询物流信息
+     * @param $userId 用户
+     * @param $params
+     * @return array|false|mixed
+     */
+    public function getTrack($userId, $params)
+    {
+        $outOrderNo = isset($params['out_order_no'])? $params['out_order_no'] : '';
+        if(empty($outOrderNo)){
+            $this->error = 2014;
+            return false;
+        }
 
+        $cacheKey = "caches:orders:track_{$userId}_{$outOrderNo}";
+        $data = RedisService::get($cacheKey);
+        if($data || RedisService::exists($cacheKey)){
+            return $data? $data : [];
+        }
+
+        $result = SupplyService::make()->getApiData('getOrderTrack',['out_order_no'=> $outOrderNo]);
+        $data = isset($result['logistics'])? $result['logistics'] : [];
+        if($data){
+            RedisService::set($cacheKey, $data, rand(30, 60));
+            $this->error = 1010;
+            return $data;
+        }else{
+            $this->error = 1009;
+            return false;
+        }
+    }
 }

+ 1 - 0
resources/lang/zh-cn/api.php

@@ -199,6 +199,7 @@ return [
     '2922'=> '请选择有效的售后类型',
 
     '2923'=> '请选择操作的商品',
+    '2924'=> '',
 
 
     '112009'=> '供应商账户余额不足,请联系客服',