service = app(WorkOrderCommoditiesService::class); $this->detailService = app(WorkOrderDetailService::class); $this->logService = app(WorkOrderLogService::class); $this->workOrderService = app(WorkOrderService::class); } /** * 货主填充商品信息 * @param Request $request * @return array */ public function ownerUpdateCommoditiesApi(Request $request): array { if (Gate::denies('订单管理-工单处理-货主编辑')) { return ['success' => false, 'message' => '没有对应权限']; } $workOrder = $this->service->find($request->input('id')); if (!$workOrder) return ['success' => false, 'message' => '参数异常']; $this->service->updateWorkOrderCommoditiesByJsonArray($workOrder, $request->input('commodities'),'货主已处理'); if(($workOrder->issueType->name ?? '') == '快递丢件'){ $this->logService->createLog($workOrder,'处理','货主填充数据'); $workOrder->changeStatus('宝时处理'); } $workOrder->loadDefaultWith(); return ['success' => true, 'data' => $workOrder]; } /** * 承运商 填充 商品信息 * @param Request $request * @return array */ public function logisticUpdateCommoditiesApi(Request $request): array { if (Gate::denies('订单管理-工单处理-承运商编辑')) { return ['success' => false, 'message' => '没有对应权限']; } $workOrder = $this->workOrderService->find($request->input('id')); $detail = $this->detailService->find($request->input('detail_id')); if (!$workOrder) return ['success' => false, 'message' => '参数异常']; $this->service->updateWorkOrderCommoditiesByJsonArray($detail, $request->input('commodities')); $issueType = $workOrder->issueType->name ?? ''; if (in_array($issueType,['破损','快递异常'])){ $workOrder->changeStatus('宝时终审'); $detail->changeStatus('宝时终审'); $this->logService->createLog($detail,'处理','承运商处理'); } else if (in_array($issueType,['拦截','信息更改'])){ $workOrder->changeStatus('完成'); $this->logService->createLog($detail,'完结','承运商完成'); $this->detailService->endDetail($detail); } $workOrder->loadDefaultWith(); return ['success' => true, 'data' => $workOrder]; } /** * 宝时 填充工单信息 * @param Request $request * @return array */ public function baoShiUpdateCommoditiesApi(Request $request): array { if (Gate::denies('订单管理-工单处理-宝时编辑')) { return ['success' => false, 'message' => '没有对应权限']; } $workOrder = $this->workOrderService->find($request->input('id')); $detail = $this->detailService->find($request->input('detail_id')); if (!$workOrder || !$detail) return ['success' => false, 'message' => '参数异常']; $issue_type = $workOrder->issueType->name ?? ''; $this->service->updateWorkOrderCommoditiesByJsonArray($detail, $request->input('commodities'),'完结',true); if ($issue_type == '错漏发') { $workOrder->changeStatus('完成'); $this->detailService->endDetail($detail); } $workOrder->loadDefaultWith(); return ['success' => true, 'data' => $workOrder]; } }