RefundOrderController.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. /**
  3. * 退款控制器
  4. * @file:RefundOrderController.php
  5. * @Date: 2023/5/26
  6. * @Time: 18:33
  7. */
  8. namespace Modules\OrderRefund\Http\Controllers;
  9. use Catch\Base\CatchController;
  10. use Catch\Exceptions\FailedException;
  11. use Illuminate\Http\Request;
  12. use Modules\OrderRefund\Http\Requests\OrderRefundRequest;
  13. use Modules\OrderRefund\Http\Requests\RefundVerIiyRequest;
  14. use Modules\OrderRefund\Services\RefundOrderService;
  15. use Modules\User\Http\Controllers\UserTrait;
  16. class RefundOrderController extends CatchController
  17. {
  18. use UserTrait;
  19. /**
  20. * 退款列表
  21. * name: orderList
  22. * @param Request $request
  23. * date 2023/05/29 14:09
  24. */
  25. public function orderList(Request $request){
  26. $param = $request->all();
  27. $userContext = $this->getUserContext(null);
  28. if (getProp($param, 'puser_id')) {
  29. $param['puser_id'] = $param['puser_id'];
  30. }
  31. if (getProp($param, 'user_id')) {
  32. $param['user_id'] = $param['user_id'];
  33. }
  34. // 公司账户处理
  35. if ($userContext['loginUserRoles']->contains('company')) {
  36. $param['puser_id'] = $userContext['operateUser']->id;
  37. }
  38. // 投手处理
  39. if ($userContext['loginUserRoles']->contains('optimizer')) {
  40. $param['user_id'] = $userContext['operateUser']->id;
  41. }
  42. return RefundOrderService::orderList($param);
  43. }
  44. /**
  45. * 申请退款
  46. * name: applyRefund
  47. * @param OrderRefundRequest $request
  48. * @return string
  49. * date 2023/05/29 14:09
  50. */
  51. public function applyRefund(OrderRefundRequest $request)
  52. {
  53. $param = $request->all();
  54. $param['create_user_id'] = $this->getCurrentUser()->id;
  55. return RefundOrderService::applyRefund($param);
  56. }
  57. /**
  58. * 平台审核
  59. * name: platformVerify
  60. * @param RefundVerIiyRequest $request
  61. * @return string
  62. * date 2023/05/29 16:38
  63. */
  64. public function platformVerify(RefundVerIiyRequest $request){
  65. $userContext = $this->getUserContext(null);
  66. if (!$userContext['loginUserRoles']->contains('administrator')) {
  67. throw new FailedException("没有操作权限");
  68. }
  69. $param = [
  70. 'pt_verify_status' => $request->input('status'),
  71. 'pt_verifty_user' => [
  72. "id"=> $userContext['loginUser']->id,
  73. "user_name"=> $userContext['loginUser']->username,
  74. "email"=> $userContext['loginUser']->email,
  75. ],
  76. 'pt_verify_at' => get_date(),
  77. 'pt_verify_remark' => $request->input('remark',"")
  78. ];
  79. return RefundOrderService::updateRefundVerify($request->input('refund_id'),$param,1);
  80. }
  81. /**
  82. * 商户审核
  83. * name: companyVerify
  84. * @param RefundVerIiyRequest $request
  85. * @return string
  86. * date 2023/05/29 16:39
  87. */
  88. public function companyVerify(RefundVerIiyRequest $request){
  89. $userContext = $this->getUserContext(null);
  90. if (!($userContext['loginUserRoles']->contains('optimizer') || $userContext['loginUserRoles']->contains('company'))) {
  91. throw new FailedException("没有操作权限");
  92. }
  93. $param = [
  94. 'sh_verify_status' => $request->input('status'),
  95. 'sh_verifty_user' => [
  96. "id"=> $userContext['loginUser']->id,
  97. "user_name"=> $userContext['loginUser']->username,
  98. "email"=> $userContext['loginUser']->email,
  99. ],
  100. 'sh_verify_at' => get_date(),
  101. 'sh_verify_remark' => $request->input('remark',"")
  102. ];
  103. return RefundOrderService::updateRefundVerify($request->input('refund_id'),$param,0);
  104. }
  105. /**
  106. * 操作退款
  107. * name: payToUser
  108. * @param Request $request
  109. * @return string|void
  110. * date 2023/05/29 17:32
  111. */
  112. public function payToUser(Request $request){
  113. $refundId = $request->input('refund_id',0);
  114. if($refundId < 1){
  115. throw new FailedException("退款申请单号不能为空");
  116. }
  117. $userContext = $this->getUserContext(null);
  118. if (!$userContext['loginUserRoles']->contains('administrator')) {
  119. throw new FailedException("没有操作权限");
  120. }
  121. $option = [
  122. "id"=> $userContext['loginUser']->id,
  123. "user_name"=> $userContext['loginUser']->username,
  124. "email"=> $userContext['loginUser']->email,
  125. ];
  126. return RefundOrderService::payToUser($refundId,$option);
  127. }
  128. }