OrderIssueRejectedBillController.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. if(!$request['logistic_number_return'] || strlen($request['logistic_number_return']) === 0) return ['success' => false, 'error' => '参数异常'];
  24. /** @var OrderIssue $orderIssue */
  25. $orderIssue = OrderIssue::query()->find($request['id']);
  26. if (!$orderIssue) return ['success' => false, 'error' => '参数为空'];
  27. $result = $this->service->joinRejectedBill($orderIssue, $request['logistic_number_return']);
  28. if (is_null($result)) return ['success' => false, 'error' => '已有对应的关联关系'];
  29. if (!$result) return ['success' => false, 'error' => '创建关联关系时出现异常'];
  30. return ['success' => true, 'data' => ['orderIssueRejectedBill' => $result, 'orderIssue' => $orderIssue]];
  31. }
  32. public function unJoinRejectedBillApi(Request $request): array
  33. {
  34. if (!Gate::allows('订单管理-问题件-编辑')) return ['success' => false, 'error' => '没有对应权限'];
  35. if (!$request->has('logistic_number_return') || !$request->has('id')) return ['success' => false, 'error' => '参数为空'];
  36. $orderIssue = OrderIssue::query()->where('id', $request->id)->first();
  37. if (!$orderIssue) return ['success' => false, 'message' => '没有找到对应的记录'];
  38. $result = $this->service->unJoinRejectedBill($orderIssue, $request['logistic_number_return']);
  39. if (is_null($result)) return ['success' => false, 'message' => '没有相对应的连接关系!请刷新页面后重试'];
  40. return ['success' => true, 'orderIssue' => $orderIssue];
  41. }
  42. public function reviseJoinRejectedBillApi(Request $request): array
  43. {
  44. if (!Gate::allows('订单管理-问题件-编辑')) return ['success' => false, 'error' => '没有对应权限'];
  45. if (!$request->has('logistic_number_return_update'))
  46. return ['success' => false, 'error' => '退回单号为空'];
  47. /** @var OrderIssue $orderIssue */
  48. $orderIssue = OrderIssue::query()->where('id', $request->id)->first();
  49. if (!$orderIssue) return ['success' => false, 'error' => '没有找到对应的记录'];
  50. $result = $this->service->reviseJoinRejectedBill($orderIssue, $request['logistic_number_return'], $request['logistic_number_return_update']);
  51. if (is_null($result)) return ['success' => false, 'error' => '需更新的对应关系不存在!请刷新页面后重试'];
  52. if (!$result) return ['success' => false, 'error' => '更新关联关系时出现异常'];
  53. return ['success' => true, 'data' => ['orderIssueRejectedBill' => $result, 'orderIssue' => $orderIssue]];
  54. }
  55. }