OrderIssueRejectedBillController.php 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\OrderIssue;
  4. use App\OrderIssueRejectedBill;
  5. use App\Services\OrderIssueRejectedBillService;
  6. use App\Services\OrderRejectingStatusService;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Gate;
  9. class OrderIssueRejectedBillController extends Controller
  10. {
  11. private $service;
  12. private $rejectedBillSyncOrderService;
  13. public function __construct(OrderIssueRejectedBillService $service,
  14. OrderRejectingStatusService $rejectedBillSyncOrderService)
  15. {
  16. $this->service = $service;
  17. $this->rejectedBillSyncOrderService = $rejectedBillSyncOrderService;
  18. }
  19. public function joinRejectedBillApi(Request $request): array
  20. {
  21. if (!Gate::allows('订单管理-问题件-编辑')) return ['success' => false, 'error' => '没有对应权限'];
  22. if (!$request->has('logistic_number_return')) return ['success' => false, 'error' => '参数为空'];
  23. /** @var OrderIssue $orderIssue */
  24. $orderIssue = OrderIssue::query()->find($request['id']);
  25. if (!$orderIssue) return ['success' => false, 'error' => '参数为空'];
  26. $result = $this->service->joinRejectedBill($orderIssue, $request['logistic_number_return']);
  27. if (is_null($result)) return ['success' => false, 'error' => '已有对应的关联关系'];
  28. if (!$result) return ['success' => false, 'error' => '创建关联关系时出现异常'];
  29. return ['success' => true, 'data' => ['orderIssueRejectedBill' => $result, 'orderIssue' => $orderIssue]];
  30. }
  31. public function unJoinRejectedBillApi(Request $request): array
  32. {
  33. if (!Gate::allows('订单管理-问题件-编辑')) return ['success' => false, 'error' => '没有对应权限'];
  34. if (!$request->has('logistic_number_return') || !$request->has('id')) return ['success' => false, 'error' => '参数为空'];
  35. $orderIssue = OrderIssue::query()->where('id', $request->id)->first();
  36. if (!$orderIssue) return ['success' => false, 'message' => '没有找到对应的记录'];
  37. $result = $this->service->unJoinRejectedBill($orderIssue, $request['logistic_number_return']);
  38. if (is_null($result)) return ['success' => false, 'message' => '没有相对应的连接关系!请刷新页面后重试'];
  39. return ['success' => true, 'orderIssue' => $orderIssue];
  40. }
  41. public function reviseJoinRejectedBillApi(Request $request): array
  42. {
  43. if (!Gate::allows('订单管理-问题件-编辑')) return ['success' => false, 'error' => '没有对应权限'];
  44. if (!$request->has('logistic_number_return_update'))
  45. return ['success' => false, 'error' => '退回单号为空'];
  46. /** @var OrderIssue $orderIssue */
  47. $orderIssue = OrderIssue::query()->where('id', $request->id)->first();
  48. if (!$orderIssue) return ['success' => false, 'error' => '没有找到对应的记录'];
  49. $result = $this->service->reviseJoinRejectedBill($orderIssue, $request['logistic_number_return'], $request['logistic_number_return_update']);
  50. if (is_null($result)) return ['success' => false, 'error' => '需更新的对应关系不存在!请刷新页面后重试'];
  51. if (!$result) return ['success' => false, 'error' => '更新关联关系时出现异常'];
  52. return ['success' => true, 'data' => ['orderIssueRejectedBill' => $result, 'orderIssue' => $orderIssue]];
  53. }
  54. }