service = $service; $this->workOrderService = $workOrderService; } public function storeApi(Request $request): array { if (Gate::denies('订单管理-工单处理-宝时编辑') && Gate::denies('订单管理-工单处理-承运商编辑')) { return ['success' => false, 'message' => '没有对应的权限']; } if (!$request->has(['id', 'content'])) { return ['success' => false, 'message' => '参数缺失']; } /** @var WorkOrder $workOrder */ $workOrder = WorkOrder::query()->where('status', '!=', 5)->find($request->id); if (!$workOrder) { return ['success' => false, 'message' => '找不到对应的工单,或对应的工单已完结']; } /** @var WorkOrderDetail $detail */ $detail = $workOrder->details()->where('order_issue_type_id', $workOrder->order_issue_type_id) ->whereIn('status', [1, 2, 3, 4, 5]) ->orderByDesc('created_at')->first(); if (!$detail) { return ['success' => false, 'message' => '工单当前没有待处理的项']; } $data = $this->service->createProcessLog($detail, $request->all()); return ['success' => true, 'data' => $data]; } public function logisticApi(Request $request): array { if (Gate::denies('订单管理-工单处理-承运商编辑')) { return ['success' => false, 'message' => '没有对应的权限']; } if (!$request->has(['id', 'content'])) { return ['success' => false, 'message' => '参数缺失']; } /** @var WorkOrder $workOrder */ $workOrder = WorkOrder::query()->where('status', '!=', 5)->find($request->id); if (!$workOrder) { return ['success' => false, 'message' => '找不到对应的工单,或对应的工单已完结']; } /** @var WorkOrderDetail $detail */ $detail = $workOrder->details()->where('order_issue_type_id', $workOrder->order_issue_type_id) ->whereIn('status', [1, 2, 3, 4, 5]) ->orderByDesc('created_at')->first(); if (!$detail) { return ['success' => false, 'message' => '工单当前没有待处理的项']; } $data = $this->service->createProcessLog($detail, $request->all()); return ['success' => true, 'data' => $data]; } public function baoShiStoreApi(Request $request): array { if (Gate::denies('订单管理-工单处理-承运商编辑')) { return ['success' => false, 'message' => '没有对应的权限']; } if (!$request->has(['id', 'content'])) { return ['success' => false, 'message' => '参数缺失']; } /** @var WorkOrder $workOrder */ $workOrder = WorkOrder::query()->where('status', '!=', 5)->find($request->id); if (!$workOrder) { return ['success' => false, 'message' => '找不到对应的工单,或对应的工单已完结']; } /** @var WorkOrderDetail $detail */ $detail = $workOrder->details()->where('order_issue_type_id', $workOrder->order_issue_type_id) ->whereIn('status', [1, 2, 3, 4, 5]) ->orderByDesc('created_at')->first(); if (!$detail) { return ['success' => false, 'message' => '工单当前没有待处理的项']; } $data = $this->service->createProcessLog($detail, $request->all()); return ['success' => true, 'data' => $data]; } public function batchStoreApi(Request $request): array { if (Gate::denies('订单管理-工单处理-宝时编辑') || Gate::denies('订单管理-工单处理-承运商编辑')) { return ['success' => false, 'message' => '没有对应的权限']; } if (!$request->has(['ids', 'content'])) { return ['success' => false, 'message' => '参数缺失']; } $workOrders = WorkOrder::query()->where('status', '!=', 5)->find($request->ids); if (count($workOrders) < count($request->ids)) { return ['success' => false, 'message' => '参数异常']; } $data = $this->service->batchCreateProcessLog($workOrders, $request->all()); return ['success' => true, 'data' => $data]; } public function destroyApi(Request $request): array { if (Gate::denies('订单管理-工单处理-处理日志删除')) { return ['success' => false, 'message' => '没有对应的权限']; } WorkOrderProcessLog::query()->where('id', $request->input('id'))->delete(); return ['success' => true]; } public function tagApi(Request $request): array { if (Gate::denies('订单管理-工单处理-宝时编辑')) { return ['success' => false, 'message' => '没有对应的权限']; } if (!$request->has('id')) { return ['success' => false, 'message' => '参数异常']; } WorkOrderProcessLog::query()->where('id', $request->input('id'))->update(['tag' => 1]); return ['success' => true]; } }