service = $service; $this->detailService = $detailService; $this->logService = $logService; $this->workOrderService = $workOrderService; } /** * 货主填充商品信息 * @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->update(['status' => WorkOrder::$BAO_SHI_HANDLER_STATUS]); } $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->update(['status' => WorkOrder::$BAO_SHI_REVIEW_STATUS]); $detail->update(['status' => WorkOrder::$BAO_SHI_REVIEW_STATUS]); $this->logService->createLog($detail, '处理', '承运商处理'); } else if (in_array($issueType, ['拦截', '信息更改'])) { $workOrder->update(['status' => WorkOrder::$END_STATUS]); $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->update(['status' => WorkOrder::$END_STATUS]); $this->detailService->endDetail($detail); } $workOrder->loadDefaultWith(); return ['success' => true, 'data' => $workOrder]; } /** * 获取 * @param Request $request * @return array */ public function getCommodityEqualsMapApi(Request $request): array { if(!Auth::check()){ return ['success' => false, 'message' => '没有对应权限']; } /** @var WorkOrderDetail $work_order_detail */ $work_order_detail = WorkOrderDetail::query()->find($request->input('id')); $data = $this->service->getOrderCommoditiesEqualWorkOrderDetailCommoditiesMap($work_order_detail); return ['success' => true,'data' => $data]; } }