create(['content' => json_encode($request->all()),'interface' => 'HengLi']); $errors = $this->validator($request); if(count($errors)>0){ return json_encode(['success' => false,'message' => $errors],JSON_UNESCAPED_UNICODE); } $params = $this->conversionRequest($request); /** @var HengLiWeightService $service */ $service = app(HengLiWeightService::class); $response = $service->new($params); if($response['success']) LogService::log(__CLASS__,$service->name,'称重成功!'.json_encode($params)); else LogService::log(__CLASS__,$service->name,'称重失败!'.json_encode($request['']).json_encode($params)); return json_encode($response,JSON_UNESCAPED_UNICODE); } public function conversionRequest($request): array { $params = []; $arr = $request->all(); $data = array_key_first($arr); $data = explode(',', $data); foreach ($data as $key => $value) { switch ($key) { case '0': $params['hid'] = $value; break; case '1': $params['code'] = $this->processCodeStr($value); break; case '2': $params['weight'] = $value; break; case '3': $params['weight_at'] = $value; break; case '4': $params['length'] = $value; break; case '5': $params['width'] = $value; break; case '6': $params['height'] = $value; break; default: break; } } return $params; } public function getWeightValue($params) { $value = $this->getValue($this->weight, $params); return str_replace('_', '.', $value); } public function getSuccessMessage($params, $orderPackage): array { return ['success' => true, 'message' => '称重成功']; } public function getNotFindOrderPackageMessage($params, $orderPackage): string { return json_encode(['success' => false, 'message' => '未找打包裹信息', JSON_UNESCAPED_UNICODE]); } public function getNotFindOrderHeaderMessage($params, $orderPackage): string { return json_encode(['success' => false, 'message' => '富勒信息未找到'], JSON_UNESCAPED_UNICODE); } public function getWeightMessage($orderPackage, $e) { return json_encode(['success' => false, 'message' => $e->getMessage], JSON_UNESCAPED_UNICODE); } public function validator(Request $request): array { /** @var HengLiWeightService $service */ $service = app(HengLiWeightService::class); $params = $this->conversionRequest($request); $errors = []; $weight = $service->getWeightValue($params); if (empty($weight) || $weight == '') { $errors['weight'] = '称重重量为空'; } $code = $service->getCodeValue($params); $code = trim($code, "'"); if (empty($code) || $code == '') { $errors['code'] = '快递单号为空'; } $hid = $service->getValue($service->hid, $params); if (empty($hid) || $hid == '') { $errors['hid'] = '称重设备号不能为空'; } return $errors; } }