| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- namespace App\Http\Controllers\api\thirdPart\hengli;
- use App\Http\Controllers\api\thirdPart\weight\WeightBaseController;
- use App\Services\LogService;
- use App\Services\weight\HengLiWeightService;
- use App\WeightLog;
- use Illuminate\Http\Request;
- class PackageController extends WeightBaseController
- {
- public function new_(Request $request)
- {
- WeightLog::query()->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;
- }
- }
|