0) { event("CloseTrace", ['site_id' => $site_id]); } $config = new ConfigModel(); $res = $config->setConfig($data, '快递设置', $is_use, [['app_module', '=', 'shop'], ["site_id", "=", $site_id], ['config_key', '=', 'EXPRESS_KDZHUSHOU_CONFIG']]); return $res; } public function getKdZSConfig($site_id) { $config = new ConfigModel(); $res = $config->getConfig([['app_module', '=', 'shop'], ["site_id", "=", $site_id], ['config_key', '=', 'EXPRESS_KDZHUSHOU_CONFIG']]); if (empty($res['data']['value']['status'])) { $res['data']['value']['status'] = 0; } return $res; } /** * 开关状态 * @param $is_use * @return array */ public function modifyStatus($is_use, $site_id) { $config = new ConfigModel(); $res = $config->modifyConfigIsUse($is_use, [['app_module', '=', 'shop'], ['site_id', '=', $site_id], ['config_key', '=', 'EXPRESS_KDZHUSHOU_CONFIG']]); return $res; } /*********************************************************************** 快递100 end ***********************************************************************/ /** * 查询物流轨迹 并且转化为兼容数据结构 * @param $code * @param $express_no * @return array */ public function trace($express_no, $code, $site_id, $mobile) { $config_result = $this->getKdZSConfig($site_id); $config = $config_result['data']; if ($config['is_use'] == 0) return $this->error(); $data = [ 'kdzhushou_Key' => $config['value']['Key'], 'kdzhushou_Secret' => $config['value']['Secret'], ]; $kd100_extend = new \extend\Kdzhushou($data); $result = $kd100_extend->search($express_no, $code, $mobile); if (isset($result['success']) && $result['success']) { $logisticsTrace = $result['logisticsTrace']??[]; $logisticsTraceDetailList = $logisticsTrace['logisticsTraceDetailList']??[]; $lists = []; if ($logisticsTraceDetailList) { foreach ($logisticsTraceDetailList as $k => $v) { $lists[] = array( "datetime" => date('Y-m-d H:i:s', $v["time"] / 1000), "remark" => $v["desc"], ); } } $res = [ 'success' => $result['success'], 'reason' => !empty($result['Reason']) ? $result['Reason'] : '', 'status' => !empty($result['State']) ? $result['State'] : '', 'status_name' => $logisticsTrace['logisticsStatusDesc']??'', 'shipper_code' => !empty($result['cpCode']) ? $result['cpCode'] : '', 'logistic_code' => !empty($result['LogisticCode']) ? $result['LogisticCode'] : '', 'list' => $lists ]; return $this->success($res); } else { $result['reason'] = $result['msg'] ?? $result['message']; return $this->error($result, $result['reason']); } } }