| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- namespace App\Http\Controllers;
- use App\Services\WorkOrderProcessLogService;
- use App\Services\WorkOrderService;
- use App\WorkOrder;
- use App\WorkOrderDetail;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Gate;
- class WorkOrderProcessLogController extends Controller
- {
- private $service;
- private $workOrderService;
- public function __construct(WorkOrderProcessLogService $service,
- WorkOrderService $workOrderService)
- {
- $this->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];
- }
- }
|