Bank.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace app\controller\v2;
  3. use app\extra\basic\Base;
  4. use app\extra\service\blue\UserBankService;
  5. use app\middleware\WxMiddleware;
  6. use app\model\blue\BlueBankCompany;
  7. use app\model\blue\BlueUserBank;
  8. use app\validate\blue\BankValidate;
  9. use DI\Attribute\Inject;
  10. use LinFly\Annotation\Route\Controller;
  11. use LinFly\Annotation\Route\Middleware;
  12. use LinFly\Annotation\Route\Route;
  13. use support\Request;
  14. use support\Response;
  15. /**
  16. * 银行卡操作
  17. */
  18. #[Controller(prefix: "/wx_v2/bank"),Middleware(WxMiddleware::class)]
  19. class Bank extends Base
  20. {
  21. protected array $noNeedLogin = ["getBankList"];
  22. #[Inject]
  23. protected BankValidate $validate;
  24. #[Inject]
  25. protected BlueUserBank $model;
  26. #[Inject]
  27. protected UserBankService $service;
  28. /**
  29. * 获取银行列表
  30. * @param Request $request
  31. * @return Response
  32. */
  33. #[Route(path: "list",methods: "get")]
  34. public function getBankList(Request $request): Response
  35. {
  36. try {
  37. $param = $this->_valid([
  38. "name.require" => trans("empty.require")
  39. ]);
  40. if (!is_array($param)) return error($param);
  41. $data = (new BlueBankCompany)->where("name","like","%{$param['name']}%")->select()->toArray();
  42. return successTrans("success.data",$data);
  43. } catch (\Throwable $throwable) {
  44. return error($throwable->getMessage());
  45. }
  46. }
  47. /**
  48. * 绑定银行卡
  49. * @param Request $request
  50. * @return Response
  51. */
  52. #[Route(path: "bind",methods: "post")]
  53. public function bindUserBank(Request $request): Response
  54. {
  55. try {
  56. $param = $request->post();
  57. $param['openid'] = $request->user['openid'];
  58. if (!$this->validate->scene('add')->check($param)) return error($this->validate->getError());
  59. $bank = (new BlueBankCompany)->where("bank_code",$param['bank_code'])->findOrEmpty();
  60. if ($bank->isEmpty()) return error("开户行不存在");
  61. $param['bank_name'] = $bank['name'];
  62. $state = $this->model->setAutoData($param);
  63. if (!$state) return errorTrans("error.data");
  64. return successTrans("success.data");
  65. } catch (\Throwable $throwable) {
  66. return error($throwable->getMessage());
  67. }
  68. }
  69. /**
  70. * 绑定银行卡列表
  71. * @param Request $request
  72. * @return Response
  73. */
  74. #[Route(path: "bind/list",methods: "get")]
  75. public function bindUserList(Request $request): Response
  76. {
  77. try {
  78. $param = $this->_valid([
  79. "page.default" => 1,
  80. "size.default" => 10,
  81. ],$request->method());
  82. if (!is_array($param)) return error($param);
  83. if (empty($param['size'])) return errorTrans("empty.require");
  84. $param['pageSize'] = $param['size'];
  85. $param['openid'] = $request->user['openid'];
  86. $list = $this->service->getList($param,"id,bank_name,bank_num,bank_code");
  87. return successTrans("success.data",pageFormat($list));
  88. } catch (\Throwable $throwable) {
  89. return error($throwable->getMessage());
  90. }
  91. }
  92. }