| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <?php
- namespace App\Http\Controllers;
- use App\Services\WorkOrderCommoditiesService;
- use App\Services\WorkOrderDetailService;
- use App\Services\WorkOrderLogService;
- use App\Services\WorkOrderService;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Gate;
- class WorkOrderCommoditiesController extends Controller
- {
- /**
- * @var WorkOrderCommoditiesService $service
- * @var WorkOrderDetailService $detailService
- * @var WorkOrderLogService $logService
- * @var WorkOrderService $workOrderService
- */
- private $service;
- private $detailService;
- private $logService;
- private $workOrderService;
- public function __construct()
- {
- $this->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];
- }
- }
|