MemberBankController.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\webApp;
  4. use App\Http\Validator\BankValidator;
  5. use App\Services\Api\MemberBankService;
  6. use App\Services\RedisService;
  7. /**
  8. * 用户收款银行卡
  9. * Class MemberBankController
  10. * @package App\Http\Controllers\Api
  11. */
  12. class MemberBankController extends webApp
  13. {
  14. public function index()
  15. {
  16. $params = request()->all();
  17. $pageSize = isset($params['pageSize'])? $params['pageSize'] : 18;
  18. $params['user_id'] = $this->userId;
  19. $datas = MemberBankService::make()->getDataList($params, $pageSize);
  20. return showJson(1010, true, $datas);
  21. }
  22. /**
  23. * 支持的银行
  24. * @return array
  25. */
  26. public function list()
  27. {
  28. $cacheKey = "caches:members:banksNames";
  29. $datas = RedisService::get($cacheKey);
  30. if(empty($datas)){
  31. $datas = config('payment.banks');
  32. if($datas){
  33. foreach($datas as &$item){
  34. $item['code'] = 'bank-'.$item['id'];
  35. $item['icon'] = get_image_url('/images/icons/banks/icon-'.$item['code'].'.png');
  36. }
  37. unset($item);
  38. RedisService::set($cacheKey, $datas, 7 * 86400);
  39. }
  40. }
  41. return showJson(1010, true, $datas);
  42. }
  43. /**
  44. * @return array
  45. */
  46. public function save(BankValidator $validator)
  47. {
  48. $type = request()->post('type',3);
  49. $scene = $type ==3? 'bank' : 'qrcode';
  50. $params = $validator->check(request()->all(), $scene);
  51. if(!is_array($params)){
  52. return showJson($params, false);
  53. }
  54. if(MemberBankService::make()->saveData($this->userId, $params)){
  55. RedisService::clear("caches:members:banks:{$this->userId}");
  56. return showJson(MemberBankService::make()->getError(), true);
  57. }else{
  58. return showJson(MemberBankService::make()->getError(), false);
  59. }
  60. }
  61. /**
  62. * 选项
  63. * @return array
  64. */
  65. public function options()
  66. {
  67. $datas = MemberBankService::make()->options($this->userId);
  68. return showJson(1010, true, $datas);
  69. }
  70. /**
  71. * 删除
  72. * @return array
  73. */
  74. public function delete()
  75. {
  76. if(MemberBankService::make()->delete()){
  77. RedisService::clear("caches:members:banks:{$this->userId}");
  78. return showJson(MemberBankService::make()->getError(), true);
  79. }else{
  80. return showJson(MemberBankService::make()->getError(), false);
  81. }
  82. }
  83. }