|
|
@@ -22,6 +22,7 @@ use App\Models\PayOrdersModel;
|
|
|
use App\Models\StoreModel;
|
|
|
use App\Services\Api\SettleService;
|
|
|
use App\Services\BaseService;
|
|
|
+use App\Services\Kd100Service;
|
|
|
use App\Services\RedisService;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
@@ -148,7 +149,7 @@ class OrderService extends BaseService
|
|
|
$info = $info->toArray();
|
|
|
$info['create_time'] = $info['create_time'] ? date('Y-m-d H:i:s', strtotime($info['create_time'])) : '';
|
|
|
$info['update_time'] = $info['update_time'] ? date('Y-m-d H:i:s', strtotime($info['update_time'])) : '';
|
|
|
-
|
|
|
+ $info['deliveryData'] = $this->getDelivery($info);
|
|
|
if (isset($info['order_goods'])) {
|
|
|
foreach ($info['order_goods'] as &$goods) {
|
|
|
$goods['thumb'] = $goods['thumb'] ? get_image_url($goods['thumb']) : '';
|
|
|
@@ -222,6 +223,55 @@ class OrderService extends BaseService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 物流查询
|
|
|
+ * @param $id
|
|
|
+ * @return array|false|mixed
|
|
|
+ */
|
|
|
+ public function getDelivery($info)
|
|
|
+ {
|
|
|
+ $id = isset($info['id']) ? $info['id'] : 0;
|
|
|
+ $deliveryNo = isset($info['delivery_no']) ? $info['delivery_no'] : '';
|
|
|
+ $deliveryCode = isset($info['delivery_code']) ? $info['delivery_code'] : '';
|
|
|
+ $mobile = isset($info['receiver_mobile']) ? $info['receiver_mobile'] : '';
|
|
|
+ $receiverArea = isset($info['receiver_area']) && $info['receiver_area']? $info['receiver_area'] : '';
|
|
|
+ if (empty($info)) {
|
|
|
+ $this->error = '请选择订单';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $cacheKey = "caches:kd100:order_{$id}";
|
|
|
+ $data = RedisService::get($cacheKey);
|
|
|
+ if ($data) {
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+ $result = Kd100Service::make()->query($deliveryNo, $mobile, $deliveryCode,$receiverArea);
|
|
|
+ RedisService::set($cacheKey.'_result', $result, 300);
|
|
|
+ $status = isset($result['status'])?$result['status']:0;
|
|
|
+ $data = isset($result['data'])?$result['data']:[];
|
|
|
+ $courierInfo = isset($result['courierInfo'])?$result['courierInfo']:[];
|
|
|
+ $arrivalTime = isset($result['arrivalTime'])?$result['arrivalTime']:'';
|
|
|
+ $predictedRoute = isset($result['predictedRoute'])?$result['predictedRoute']:[];
|
|
|
+ $predictedData = $predictedRoute?end($predictedRoute):[];
|
|
|
+ $arrivalData = [];
|
|
|
+ if($arrivalTime){
|
|
|
+ $arrivalData['arrivalTime'] = dayFormat(strtotime($arrivalTime.':00:00'));
|
|
|
+ $arrivalData['predictedData'] = $predictedData;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($courierInfo && $courierInfo['deliveryManPhone']){
|
|
|
+ $courierInfo['deliveryManPhone'] = explode(',', $courierInfo['deliveryManPhone']);
|
|
|
+ $courierInfo['deliveryPhone'] = $courierInfo['deliveryManPhone'][1]?$courierInfo['deliveryManPhone'][1]:$courierInfo['deliveryManPhone'][0];
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($data && $status==200) {
|
|
|
+ RedisService::set($cacheKey, ['info'=>$courierInfo,'arrivalData'=>$arrivalData,'list'=>$data], 1200);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $data?['info'=>$courierInfo,'arrivalData'=>$arrivalData,'list'=>$data]:[];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 按日期统计订单数
|
|
|
* @param string $beginAt 开始时间
|
|
|
* @param string $endAt 结束时间
|