Browse Source

添加获取订单对应的工单接口

ajun 4 years ago
parent
commit
31dbc2efec
3 changed files with 53 additions and 28 deletions
  1. 12 0
      app/Http/Controllers/WorkOrderController.php
  2. 39 28
      app/Services/WorkOrderService.php
  3. 2 0
      routes/apiLocal.php

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

@@ -396,4 +396,16 @@ class WorkOrderController extends Controller
         return ['success' => true, 'data' => $workOrder];
     }
 
+    public function checkWorkOrderApi(Request $request): array
+    {
+        $nos = $request->input('no','');
+
+        if (is_string($nos)){
+            $nos = [$nos];
+        }
+
+        $data = $this->service->checkWorkOrder($nos);
+
+        return ['success' => true,'data' => $data];
+    }
 }

+ 39 - 28
app/Services/WorkOrderService.php

@@ -22,9 +22,9 @@ class WorkOrderService
     protected $modelClass = WorkOrder::class;
 
     /**
-     * @var WorkOrderLogService  $logService
-     * @var WorkOrderImageService  $imageService
-     * @var WorkOrderCommoditiesService  $commoditiesService
+     * @var WorkOrderLogService $logService
+     * @var WorkOrderImageService $imageService
+     * @var WorkOrderCommoditiesService $commoditiesService
      * @var WorkOrderDetailService $detailService
      * @var OrderIssueTypeService $issueTypeService
      * @var OrderService $orderService
@@ -60,7 +60,7 @@ class WorkOrderService
         if (Gate::allows('订单管理-工单处理-客服编辑') || Gate::allows('订单管理-工单处理-货主编辑')) {
             return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '其他', '快递异常', '错漏发', '破损', '快递丢件'])->get();
         } else if (Gate::allows('订单管理-工单处理-承运商编辑')) {
-            return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '破损', '快递丢件','快递异常'])->get();
+            return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '破损', '快递丢件', '快递异常'])->get();
         }
         return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '其他', '快递异常', '错漏发', '破损', '快递丢件'])->get();
     }
@@ -127,7 +127,7 @@ class WorkOrderService
     {
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '拦截']);
 
-        $order = $this->orderService->first(['code'=> $param['order_no']]);
+        $order = $this->orderService->first(['code' => $param['order_no']]);
 
         $remark = $param['remark'] ?? '拦截工单';
 
@@ -135,7 +135,7 @@ class WorkOrderService
 
         $workOrder->changeStatus('承运商处理');
 
-        $this->logService->createLog($workOrder,'创建','创建');
+        $this->logService->createLog($workOrder, '创建', '创建');
 
         return $workOrder;
     }
@@ -147,11 +147,11 @@ class WorkOrderService
     {
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '错漏发']);
 
-        $order = $this->orderService->first(['code'=> $param['order_no']]);
+        $order = $this->orderService->first(['code' => $param['order_no']]);
 
         $workOrder = $this->createAndNotification($order, $issueType, $param['remark'] ?? '');
 
-        $this->commoditiesService->createWorkOrderCommoditiesByJsonArray($workOrder,$param['commodities']);
+        $this->commoditiesService->createWorkOrderCommoditiesByJsonArray($workOrder, $param['commodities']);
 
         $workOrder->changeStatus('宝时处理');
 
@@ -165,11 +165,11 @@ class WorkOrderService
     {
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '破损']);
 
-        $order = $this->orderService->first(['code'=> $param['order_no']]);
+        $order = $this->orderService->first(['code' => $param['order_no']]);
 
         $workOrder = $this->createAndNotification($order, $issueType, $param['remark'] ?? '');
 
-        $this->imageService->createWorkOrderImages($workOrder,$param);
+        $this->imageService->createWorkOrderImages($workOrder, $param);
 
         $this->detailService->createWorkOrderDetail($workOrder, $param);
 
@@ -177,7 +177,7 @@ class WorkOrderService
 
         $workOrder->changeStatus('承运商处理');
 
-        $this->logService->createLog($workOrder,'创建','创建工单');
+        $this->logService->createLog($workOrder, '创建', '创建工单');
 
         return $workOrder;
     }
@@ -187,19 +187,19 @@ class WorkOrderService
      */
     public function createExpressAbnormalWorkOrder($param): WorkOrder
     {
-        $order = $this->orderService->first(['code'=> $param['order_no']]);
+        $order = $this->orderService->first(['code' => $param['order_no']]);
 
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '快递异常']);
 
-        $workOrder =  $this->createAndNotification($order, $issueType, $param['remark'] ?? '');
+        $workOrder = $this->createAndNotification($order, $issueType, $param['remark'] ?? '');
 
-        $this->imageService->createWorkOrderImages($workOrder,$param);
+        $this->imageService->createWorkOrderImages($workOrder, $param);
 
-        $this->commoditiesService->createWorkOrderCommoditiesByJsonArray($workOrder,$param['commodities']);
+        $this->commoditiesService->createWorkOrderCommoditiesByJsonArray($workOrder, $param['commodities']);
 
         $workOrder->changeStatus('承运商处理');
 
-        $this->logService->createLog($workOrder,'创建','创建工单');
+        $this->logService->createLog($workOrder, '创建', '创建工单');
 
         return $workOrder;
     }
@@ -211,13 +211,13 @@ class WorkOrderService
     {
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '信息更改']);
 
-        $order = $this->orderService->first(['code'=> $param['order_no']]);
+        $order = $this->orderService->first(['code' => $param['order_no']]);
 
         $workOrder = $this->createAndNotification($order, $issueType, $param['remark'] ?? '');
 
         $workOrder->changeStatus('承运商处理');
 
-        $this->logService->createLog($workOrder,'创建','创建工单');
+        $this->logService->createLog($workOrder, '创建', '创建工单');
 
         return $workOrder;
     }
@@ -229,7 +229,7 @@ class WorkOrderService
     {
         $orderIssueType = $this->issueTypeService->firstOrCreate(['name' => '其他']);
 
-        $order = $this->orderService->first(['code'=> $param['order_no']]);
+        $order = $this->orderService->first(['code' => $param['order_no']]);
 
         return $this->createAndNotification($order, $orderIssueType, $param['remark'] ?? '');
     }
@@ -241,13 +241,13 @@ class WorkOrderService
     {
         $orderIssueType = $this->issueTypeService->firstOrCreate(['name' => '快递丢件']);
 
-        $order = $this->orderService->first(['code'=> $param['order_no']]);
+        $order = $this->orderService->first(['code' => $param['order_no']]);
 
         $workOrder = $this->createAndNotification($order, $orderIssueType, $param['remark'] ?? '');
 
         $workOrder->changeStatus('货主处理');
 
-        $this->logService->createLog($workOrder,'创建','创建工单');
+        $this->logService->createLog($workOrder, '创建', '创建工单');
 
         return $workOrder;
     }
@@ -259,13 +259,13 @@ class WorkOrderService
     {
         $workOrder->saveWorkOrderDetail($param);        // 收方信息 丢件价值 补发单号
 
-        $this->imageService->createWorkOrderImages($workOrder,$param);
+        $this->imageService->createWorkOrderImages($workOrder, $param);
 
         $workOrder->changeStatus('承运商处理');
 
-        $this->logService->createLog($workOrder,'处理','填充丢件信息');
+        $this->logService->createLog($workOrder, '处理', '填充丢件信息');
 
-        $this->commoditiesService->createWorkOrderCommoditiesByJsonArray($workOrder,$param['commodities'] ?? '');
+        $this->commoditiesService->createWorkOrderCommoditiesByJsonArray($workOrder, $param['commodities'] ?? '');
 
         return $workOrder;
     }
@@ -274,19 +274,19 @@ class WorkOrderService
     {
         $workOrder->end();
 
-        $this->logService->createLog($workOrder,'完结','完结工单');
+        $this->logService->createLog($workOrder, '完结', '完结工单');
     }
 
     public function logisticEnd(WorkOrder $workOrder)
     {
         $workOrder->changeStatus('完成');
-        $this->logService->createLog($workOrder,'完结','承运商完结工单');
+        $this->logService->createLog($workOrder, '完结', '承运商完结工单');
     }
 
-    public function find($id):WorkOrder
+    public function find($id): WorkOrder
     {
         /** @var WorkOrder $item */
-        $item = WorkOrder::query()->where('id',$id)->first();
+        $item = WorkOrder::query()->where('id', $id)->first();
         return $item;
     }
 
@@ -414,4 +414,15 @@ class WorkOrderService
             else $order->is_work_order = false;
         }
     }
+
+    public function checkWorkOrder($nos)
+    {
+        return  WorkOrder::query()->defaultWith()->whereIn('order_id', function ($query) use ($nos) {
+            if (is_array($nos))
+                $query->selectRaw('id')->whereIn('code', $nos);
+            else {
+                $query->selectRaw('id')->where('code', $nos);
+            }
+        })->get();
+    }
 }

+ 2 - 0
routes/apiLocal.php

@@ -294,6 +294,8 @@ Route::prefix('workOrder')->group(function(){
     Route::post('batchUpdateIssueType','WorkOrderController@batchUpdateIssueTypeApi')->name('workOrder.batchUpdateIssueTypeApi'); // 修改问题类型
     Route::delete('/{id}','WorkOrderController@destroyApi')->name('workOrder.destroyApi');
 
+    Route::post('check','WorkOrderController@checkWorkOrderApi')->name('workOrder.checkApi');
+
     Route::post('logistic/end',"WorkOrderController@logisticEndApi")->name('workOrder.logistic.endApi');
     Route::prefix('commodity')->group(function(){
         Route::post("updateCommodities/owner","WorkOrderController@ownerUpdateCommoditiesApi")->name("workOrder.commodity.ownerUpdateApi");