MemberBankController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. $params = $validator->check(request()->all(), 'save');
  49. if(!is_array($params)){
  50. return showJson($params, false);
  51. }
  52. if(MemberBankService::make()->saveData($this->userId, $params)){
  53. RedisService::clear("caches:members:banks:{$this->userId}");
  54. return showJson(MemberBankService::make()->getError(), true);
  55. }else{
  56. return showJson(MemberBankService::make()->getError(), false);
  57. }
  58. }
  59. /**
  60. * 选项
  61. * @return array
  62. */
  63. public function options()
  64. {
  65. $datas = MemberBankService::make()->options($this->userId);
  66. return showJson(1010, true, $datas);
  67. }
  68. /**
  69. * 删除
  70. * @return array
  71. */
  72. public function delete()
  73. {
  74. if(MemberBankService::make()->delete()){
  75. RedisService::clear("caches:members:banks:{$this->userId}");
  76. return showJson(MemberBankService::make()->getError(), true);
  77. }else{
  78. return showJson(MemberBankService::make()->getError(), false);
  79. }
  80. }
  81. }