WorkOrderExpressAbnormalController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Services\OrderService;
  4. use App\Services\WorkOrderExpressAbnormalService;
  5. use App\WorkOrder;
  6. use App\WorkOrderDetail;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Gate;
  9. class WorkOrderExpressAbnormalController extends Controller
  10. {
  11. /**
  12. * @var WorkOrderExpressAbnormalService $service
  13. * @var OrderService $orderService
  14. */
  15. private $service;
  16. private $orderService;
  17. public function __construct()
  18. {
  19. $this->service = app('WorkOrderExpressAbnormalService');
  20. $this->orderService = app('OrderService');
  21. }
  22. public function storeApi(Request $request): array
  23. {
  24. if (Gate::denies('订单管理-订单-生成工单')){
  25. return ['success' => false, 'message' => '没有对应权限'];
  26. }
  27. $this->orderService->syncOrderByCodes([$request->input('order_no')]);
  28. if ($this->service->checkWorkOrder($request->input('order_no'))){
  29. return ['success' => false, 'message' => '当前订单已有相同类型的工单'];
  30. }
  31. $this->service->store($request->all());
  32. return ['success' => true];
  33. }
  34. public function ownerEditApi(Request $request): array
  35. {
  36. if (Gate::denies('订单管理-工单处理-货主编辑'))
  37. return ['success' => false, 'message' => '没有对应权限'];
  38. $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
  39. if (!$detail ) {
  40. return ['success' => false, 'message' => '参数异常'];
  41. } else if (in_array($detail->status, ['完成', '宝时终审'])) {
  42. return ['success' => false, 'message' => '工单已完成,请刷新重试'];
  43. }
  44. $this->service->ownerEdit($detail, $request->all());
  45. $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
  46. return ['success' => true, 'data' => $data];
  47. }
  48. public function logisticHandleApi(Request $request): array
  49. {
  50. if (Gate::denies('订单管理-工单处理-承运商编辑'))
  51. return ['success' => false, 'message' => '没有对应权限'];
  52. $detail = WorkOrderDetail::query()->find($request->input('detail_id'));
  53. if (!$detail) {
  54. return ['success' => false, 'message' => '参数异常'];
  55. } else if ($detail->status == '完成') {
  56. return ['success' => false, 'message' => '工单已完成,请刷新重试'];
  57. }
  58. $this->service->logisticHandle($detail, $request->all());
  59. $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
  60. return ['success' => true, 'data' => $data];
  61. }
  62. public function baoShiReviewApi(Request $request): array
  63. {
  64. if (Gate::denies('订单管理-工单处理-宝时编辑')){
  65. return ['success' => false, 'message' => '没有对应权限'];
  66. }
  67. $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));;
  68. if (!$detail) {
  69. return ['success' => false, 'message' => '参数异常'];
  70. }
  71. $this->service->baoShiReview($detail, $request->all());
  72. $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
  73. return ['success' => true, 'data' => $data];
  74. }
  75. }