ajun 5 лет назад
Родитель
Сommit
de214a49fb

+ 17 - 16
app/Http/Controllers/api/thirdPart/hengli/PackageController.php

@@ -28,17 +28,18 @@ class PackageController extends WeightBaseController
         $params = [];
         $arr = $request->all();
         $data = array_key_first($arr);
-        $data = explode(',',$data);
-        foreach ($data as $key=>$value){
-            switch ($key){
+        $data = explode(',', $data);
+        foreach ($data as $key => $value) {
+            switch ($key) {
                 case '0':
                     $params['hid'] = $value;
                     break;
                 case '1':
                     $params['code'] = $value;
+//                    $params['code'] = $this->processCode($value);
                     break;
                 case '2':
-                    $params['weight'] =  $value;
+                    $params['weight'] = $value;
                     break;
                 case '3':
                     $params['weight_at'] = $value;
@@ -52,8 +53,8 @@ class PackageController extends WeightBaseController
 
     public function getWeightValue($params)
     {
-        $value = $this->getValue($this->weight,$params);
-        return str_replace('_','.',$value);
+        $value = $this->getValue($this->weight, $params);
+        return str_replace('_', '.', $value);
     }
 
     // 信息返回
@@ -67,19 +68,19 @@ class PackageController extends WeightBaseController
     // 返回包裹未找到异常
     public function getNotFindOrderPackageMessage($params, $orderPackage): string
     {
-        return json_encode(['success'=>false,'message'=>'未找打包裹信息',JSON_UNESCAPED_UNICODE]);
+        return json_encode(['success' => false, 'message' => '未找打包裹信息', JSON_UNESCAPED_UNICODE]);
     }
 
     // 返回富勒信息未找到异常
-    public function getNotFindOrderHeaderMessage($params, $orderPackage):string
+    public function getNotFindOrderHeaderMessage($params, $orderPackage): string
     {
-        return json_encode(['success'=>false,'message'=> '富勒信息未找到'],JSON_UNESCAPED_UNICODE);
+        return json_encode(['success' => false, 'message' => '富勒信息未找到'], JSON_UNESCAPED_UNICODE);
     }
 
     // 返回称重下发错误
-    public function getWeightMessage($orderPackage,$e)
+    public function getWeightMessage($orderPackage, $e)
     {
-        return json_encode(['success'=>false,'message'=> $e->getMessage],JSON_UNESCAPED_UNICODE);
+        return json_encode(['success' => false, 'message' => $e->getMessage], JSON_UNESCAPED_UNICODE);
     }
 
     public function validator(Request $request): array
@@ -87,17 +88,17 @@ class PackageController extends WeightBaseController
         $params = $this->conversionRequest($request);
         $errors = [];
         $weight = $this->getWeightValue($params);
-        if(empty($weight) || $weight == ''){
+        if (empty($weight) || $weight == '') {
             $errors['weight'] = '称重重量为空';
         }
         $code = $this->getCodeValue($params);
-        $code = trim($code,"'");
-        if(empty($code) || $code == ''){
+        $code = trim($code, "'");
+        if (empty($code) || $code == '') {
             $errors['code'] = '快递单号为空';
         }
         $hid = $this->getValue($this->hid, $params);
-        if(empty($hid) || $hid == ''){
-            $errors['hid'] =  '称重设备号不能为空';
+        if (empty($hid) || $hid == '') {
+            $errors['hid'] = '称重设备号不能为空';
         }
         return $errors;
     }

+ 12 - 5
app/Http/Controllers/api/thirdPart/weight/WeightBaseController.php

@@ -358,6 +358,7 @@ class WeightBaseController
      */
     public function processCode($code): string
     {
+
         /** 如果是$code 是数组处理 */
         if(is_array($code)){
             return $this->processCodeArr($code);
@@ -388,14 +389,20 @@ class WeightBaseController
      */
     public function processCodeStr($code): string
     {
+        /**  双条码处理  */
         $codes =  preg_split('/[,,@ ]+/is',$code);
 
-        foreach ($codes as $item) {
-            if(mb_strpos($item,'-'))continue;
-            if(strlen(trim($item,' ')) < 5)continue;
-            return $item;
+        if(count($codes)>0){
+            foreach ($codes as $item) {
+                $item = trim($item,"'");
+                if(mb_strpos($item,'-'))continue;
+                if(strlen(trim($item,' ')) < 5)continue;
+                return $item;
+            }
         }
-        return '';
+        $arr = [];
+        preg_match('/[A-Z|a-z|\d]+/',$code,$arr);
+        return $arr[0];
     }
 
 // endregion

+ 1 - 1
tests/webApi/thirdPart/hengli/PackageController.http

@@ -9,7 +9,7 @@ GET http://bswas/api/thirdPart/hengli/weight/new
 Content-Type: application/json
 
 //{"hengli0012,75453499307751,0_12,2021\/04\/01_10:29:17":null}
-{"hengli0012,'',0_12,2021\/04\/01_10:29:17":null}
+{"hengli0012,'JDVB08872684832-1-1',0_52,2021\/04\/01_10:29:17":null}
 ###