UserBankController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Modes\Area;
  4. use App\Modes\User;
  5. use App\Modes\UserBank;
  6. use App\Rules\BankNum;
  7. use App\Rules\IdCard;
  8. use App\Rules\Phone;
  9. use Illuminate\Http\Request;
  10. use App\Http\Controllers\Controller;
  11. class UserBankController extends Controller
  12. {
  13. /**
  14. * 银行卡列表
  15. * @author lyh
  16. * @date 2019/3/22
  17. * @description
  18. */
  19. public function index()
  20. {
  21. return showJsonSucc('获取银行卡列表成功', UserBank::getList([['=' => ['uid' => \Auth::id()]]]));
  22. }
  23. /**
  24. * 添加银行卡
  25. * @author lyh
  26. * @date 2019/3/21
  27. * @param Request $request
  28. * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  29. * @description
  30. */
  31. public function edit(Request $request)
  32. {
  33. $validator = \Validator::make($param = $request->post(), [
  34. 'id' => 'exists:user_bank,id',
  35. 'username' => 'required_without_all:id|string',
  36. 'phone' => ['required_without_all:id', new Phone],
  37. 'bank_name' => 'required_without_all:id|string',
  38. 'sms' => 'required|string|min:4',
  39. //'bank_number' => [new BankNum]
  40. ]);
  41. if ($validator->fails()) {
  42. return showJson(102, $validator->errors()->first());
  43. }
  44. $userBankParam = array_filter($param, function ($v, $k) {
  45. return !empty($v) && in_array($k, [
  46. 'username',
  47. 'phone',
  48. 'bank_number',
  49. 'bank_name',
  50. 'province',
  51. 'city',
  52. 'district'
  53. ]);
  54. }, ARRAY_FILTER_USE_BOTH);
  55. // 如果是新增银行卡号则判断是否存在银行卡号
  56. // if (empty($param['id'])) {
  57. // if (UserBank::where('bank_number', $param['bank_number'])->exists()) {
  58. // return showJsonErr('银行卡号已存在');
  59. // }
  60. // }
  61. //
  62. // if (isset($param['province'])) {
  63. // if (Area::isRealation($param['province'], $param['city'], $param['district']) == false) {
  64. // return showJsonErr('地区关系错误');
  65. // }
  66. // }
  67. $userBankParam['status'] = 2;
  68. $userBankParam['uid'] = \Auth::id();
  69. // 验证短信
  70. $userBankParam['phone'] = $param['phone'] ?? UserBank::find($param['id'])->phone;
  71. $smsProvider = \App::make('sms');
  72. $sms = $smsProvider->verifySms($userBankParam['phone'], $param['sms']);
  73. if ($sms == false) {
  74. return showJson(102, '短信验证码错误');
  75. }
  76. if (isset($param['id'])) {
  77. /*if (UserBank::whereId($param['id'])->whereIn('status', [1, 2])->exists()) {
  78. return showJsonErr('银行卡未审核或已审核');
  79. }*/
  80. UserBank::whereId($param['id'])->update($userBankParam);
  81. } else {
  82. if (!($param['id'] = UserBank::insertGetId($userBankParam))) {
  83. return showJsonErr('添加银行卡信息失败');
  84. }
  85. }
  86. return showJsonSucc('编辑银行卡数据成功', UserBank::find($param['id']));
  87. }
  88. /**
  89. * 解绑银行卡
  90. * @author lyh
  91. * @date 2019/4/11
  92. * @param Request $request
  93. * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  94. * @throws \Exception
  95. * @description
  96. */
  97. public function unbundle(Request $request)
  98. {
  99. $validator = \Validator::make($param = $request->post(), [
  100. 'id' => 'required|exists:user_bank,id',
  101. 'sms' => 'required|string|min:4',
  102. ]);
  103. if ($validator->fails()) {
  104. return showJson(102, $validator->errors()->first());
  105. }
  106. $bank = UserBank::find($param['id']);
  107. if ($bank->status != 2) {
  108. return showJson(102, '抱歉,银行卡审核未通过');
  109. }
  110. // 验证短信
  111. $smsProvider = \App::make('sms');
  112. $sms = $smsProvider->verifySms($bank->phone, $param['sms']);
  113. if ($sms == false) {
  114. return showJson(102, '短信验证码错误');
  115. }
  116. if (empty(UserBank::whereId($param['id'])->delete())) {
  117. return showJsonErr('解绑失败');
  118. }
  119. return showJsonSucc('解绑成功');
  120. }
  121. }