浏览代码

快递信息同步修改异常信息更新
添加省份
添加脚本 order_packages_exception_type_and_exception_update

ANG YU 5 年之前
父节点
当前提交
0532f2fd5b

+ 8 - 1
app/Http/Controllers/PackageLogisticController.php

@@ -37,6 +37,13 @@ class PackageLogisticController extends Controller
 
 
     public function update(Request $request)
     public function update(Request $request)
     {
     {
-        OrderPackage::query()->where('id', $request['id'])->update($request->only('exception_type'));
+        $data = [];
+        if ('无' == $request->input('exception_type')) {
+            $data['exception_type'] = $request->input('exception_type');
+            $data['exception'] = "否";
+        } else{
+            $data['exception_type'] = $request->input('exception_type');
+        }
+        OrderPackage::query()->where('id', $request['id'])->update($data);
     }
     }
 }
 }

+ 12 - 0
app/Http/Controllers/TestController.php

@@ -996,4 +996,16 @@ class TestController extends Controller
         $count = OrderPackage::query()->where('status', '派送异常')->update(['exception_type' => '派件异常','exception' => '是']);
         $count = OrderPackage::query()->where('status', '派送异常')->update(['exception_type' => '派件异常','exception' => '是']);
         dump('更新了: '.$count);
         dump('更新了: '.$count);
     }
     }
+
+    public function order_packages_exception_type_and_exception_update()
+    {
+        $count_1 = OrderPackage::query()
+            ->whereIn('exception_type', ['疑似库内丢件','揽件异常'])
+            ->whereNotNull('transfer_status')
+            ->update(['exception_type' => '无','exception' => '否']);
+        $count_2 =   OrderPackage::query()
+            ->where('status','已收件')
+            ->update(['exception_type' => '无','exception' => '否']);
+        dump('更新了: '.($count_1 + $count_2));
+    }
 }
 }

+ 8 - 0
app/Jobs/LogisticZopSync.php

@@ -98,6 +98,14 @@ class LogisticZopSync implements ShouldQueue
             unset($resultItem['status']);
             unset($resultItem['status']);
             unset($resultItem['transfer_status']);
             unset($resultItem['transfer_status']);
         }
         }
+        //如果没有发现额外的异常,且查询到物流轨迹,将异常置为无
+        if (!array_key_exists('exception', $resultItem)
+            && !array_key_exists('exception_type', $resultItem)
+            && array_key_exists('transfer_status', $resultItem)
+        ) {
+            $resultItem['exception_type'] = '无';
+            $resultItem['exception'] = '否';
+        }
         $result[] = $resultItem;
         $result[] = $resultItem;
         return $result;
         return $result;
     }
     }

+ 8 - 0
app/Services/LogisticSFService.php

@@ -103,6 +103,14 @@ xml;
             if (!array_key_exists('exception', $data)) {//当顺丰返回异常时,不需要再根据时间判断是否异常,直接用顺丰的异常就好
             if (!array_key_exists('exception', $data)) {//当顺丰返回异常时,不需要再根据时间判断是否异常,直接用顺丰的异常就好
                 $data = $this->setExceptionType($data, $lastRoute['accept_time']);
                 $data = $this->setExceptionType($data, $lastRoute['accept_time']);
             }
             }
+            //如果没有发现额外的异常,且查询到物流轨迹,将异常置为无
+            if (!array_key_exists('exception', $data)
+                && !array_key_exists('exception_type', $data)
+                && array_key_exists('transfer_status', $data)
+            ) {
+                $data['exception_type'] = '无';
+                $data['exception'] = '否';
+            }
         } catch (Exception $e) {
         } catch (Exception $e) {
             throw new WarningException("单号没有查询到快递路由信息','LogisticSFService->transformSFOneToArr->{$data['logistic_number']}");
             throw new WarningException("单号没有查询到快递路由信息','LogisticSFService->transformSFOneToArr->{$data['logistic_number']}");
         } finally {
         } finally {

+ 7 - 5
resources/views/package/logistic/index.blade.php

@@ -16,6 +16,7 @@
                     <th>状态</th>
                     <th>状态</th>
                     <th>快递公司</th>
                     <th>快递公司</th>
                     <th>货主</th>
                     <th>货主</th>
+                    <th>省份</th>
                     <th>发出日期</th>
                     <th>发出日期</th>
                     <th>收货日期</th>
                     <th>收货日期</th>
                     <th>称重日期</th>
                     <th>称重日期</th>
@@ -39,6 +40,7 @@
                     <td>@{{ package.status }}</td>
                     <td>@{{ package.status }}</td>
                     <td>@{{ package.order != null  ? package.order.logistic.name : '#' }}</td>
                     <td>@{{ package.order != null  ? package.order.logistic.name : '#' }}</td>
                     <td>@{{ package.order != null  ? package.order.owner.name : '#' }}</td>
                     <td>@{{ package.order != null  ? package.order.owner.name : '#' }}</td>
+                    <td>@{{ package.order != null  ? package.order.province : '#' }}</td>
                     <td>@{{ package.sent_at }}</td>
                     <td>@{{ package.sent_at }}</td>
                     <td>@{{ package.received_at }}</td>
                     <td>@{{ package.received_at }}</td>
                     <td>@{{ package.weighed_at }}</td>
                     <td>@{{ package.weighed_at }}</td>
@@ -58,11 +60,11 @@
                             </label>
                             </label>
                         </div>
                         </div>
                     </td>
                     </td>
-                    <td class="text-overflow-warp-200 " v-if="package.order && package.order.issue">@{{ package.order.issue.result_explain }}</td>
-                    <td class="text-overflow-warp-200 " v-if="package.order && package.order.issue && package.order.issue.issue_type">@{{ package.order.issue.issue_type.name }}</td>
-                    <td class="text-overflow-warp-200 " v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span v-for="log in package.order.issue.logs">@{{ log.content }}<br></span></td>
-                    <td class="text-overflow-warp-200 " v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span v-for="log in package.order.issue.logs">@{{ log.user.name }}<br></span></td>
-                    <td class="text-overflow-warp-200 " v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span v-for="log in package.order.issue.logs">@{{ log.created_at }}<br></span></td>
+                    <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue">@{{ package.order.issue.result_explain }}</span></td>
+                    <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue && package.order.issue.issue_type">@{{ package.order.issue.issue_type.name }}</span></td>
+                    <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span v-for="log in package.order.issue.logs">@{{ log.content }}<br></span></span> </td>
+                    <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span v-for="log in package.order.issue.logs">@{{ log.user.name }}<br></span></span> </td>
+                    <td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue && package.order.issue.logs.length >0"><span v-for="log in package.order.issue.logs">@{{ log.created_at }}<br></span></span> </td>
                 </tr>
                 </tr>
             </table>
             </table>
             <div class="text-info h5 btn btn">{{$orderPackages->count()}}/{{$orderPackages->total()}}</div>
             <div class="text-info h5 btn btn">{{$orderPackages->count()}}/{{$orderPackages->total()}}</div>

+ 5 - 0
tests/Feature/LogisticZopSyncTest.php

@@ -37,6 +37,11 @@ class LogisticZopSyncTest extends TestCase
         parent::tearDown(); // TODO: Change the autogenerated stub
         parent::tearDown(); // TODO: Change the autogenerated stub
     }
     }
 
 
+    public function test_get()
+    {
+        LogisticZopSync::dispatch('73228206493308');
+    }
+
 
 
     /**
     /**
      * @test
      * @test

+ 1 - 1
tests/Services/LogisticQiaoSFService/LogisticQiaoSFServiceTest.php

@@ -25,7 +25,7 @@ class LogisticQiaoSFServiceTest extends TestCase
 //        factory(\App\OrderPackage::class)->create(['logistic_number' => 'SF1335376515904',]);
 //        factory(\App\OrderPackage::class)->create(['logistic_number' => 'SF1335376515904',]);
 //        factory(\App\OrderPackage::class)->create(['logistic_number' => 'SF2050377278135',]);
 //        factory(\App\OrderPackage::class)->create(['logistic_number' => 'SF2050377278135',]);
 //        factory(\App\OrderPackage::class)->create(['logistic_number' => 'SF2060390000049',]);
 //        factory(\App\OrderPackage::class)->create(['logistic_number' => 'SF2060390000049',]);
-        $response = $this->logisticQiaoSFService->get(['SF1306128321691']);
+        $response = $this->logisticQiaoSFService->get(['SF2010424528947']);
         dd($response);
         dd($response);
         $this->assertCount(3, $response);
         $this->assertCount(3, $response);
     }
     }