UserTransferService.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. namespace app\data\service;
  3. use app\data\model\DataUserTransfer;
  4. use think\admin\Service;
  5. /**
  6. * 用户提现数据服务
  7. * Class UserTransferService
  8. * @package app\data\service
  9. */
  10. class UserTransferService extends Service
  11. {
  12. /**
  13. * 提现方式配置
  14. * @var array
  15. */
  16. protected $types = [
  17. 'wechat_wallet' => '转账到我的微信零钱',
  18. 'wechat_banks' => '转账到我的银行卡账户',
  19. 'wechat_qrcode' => '线下转账到微信收款码',
  20. 'alipay_qrcode' => '线下转账到支付宝收款码',
  21. 'alipay_account' => '线下转账到支付宝账户',
  22. 'transfer_banks' => '线下转账到银行卡账户',
  23. ];
  24. /**
  25. * 微信提现银行
  26. * @var array
  27. */
  28. protected $banks = [
  29. ['wseq' => '1002', 'name' => '工商银行'],
  30. ['wseq' => '1005', 'name' => '农业银行'],
  31. ['wseq' => '1003', 'name' => '建设银行'],
  32. ['wseq' => '1026', 'name' => '中国银行'],
  33. ['wseq' => '1020', 'name' => '交通银行'],
  34. ['wseq' => '1001', 'name' => '招商银行'],
  35. ['wseq' => '1066', 'name' => '邮储银行'],
  36. ['wseq' => '1006', 'name' => '民生银行'],
  37. ['wseq' => '1010', 'name' => '平安银行'],
  38. ['wseq' => '1021', 'name' => '中信银行'],
  39. ['wseq' => '1004', 'name' => '浦发银行'],
  40. ['wseq' => '1009', 'name' => '兴业银行'],
  41. ['wseq' => '1022', 'name' => '光大银行'],
  42. ['wseq' => '1027', 'name' => '广发银行'],
  43. ['wseq' => '1025', 'name' => '华夏银行'],
  44. ['wseq' => '1056', 'name' => '宁波银行'],
  45. ['wseq' => '4836', 'name' => '北京银行'],
  46. ['wseq' => '1024', 'name' => '上海银行'],
  47. ['wseq' => '1054', 'name' => '南京银行'],
  48. // '4755' => '长子县融汇村镇银行',
  49. // '4216' => '长沙银行',
  50. // '4051' => '浙江泰隆商业银行',
  51. // '4753' => '中原银行',
  52. // '4761' => '企业银行(中国)',
  53. // '4036' => '顺德农商银行',
  54. // '4752' => '衡水银行',
  55. // '4756' => '长治银行',
  56. // '4767' => '大同银行',
  57. // '4115' => '河南省农村信用社',
  58. // '4150' => '宁夏黄河农村商业银行',
  59. // '4156' => '山西省农村信用社',
  60. // '4166' => '安徽省农村信用社',
  61. // '4157' => '甘肃省农村信用社',
  62. // '4153' => '天津农村商业银行',
  63. // '4113' => '广西壮族自治区农村信用社',
  64. // '4108' => '陕西省农村信用社',
  65. // '4076' => '深圳农村商业银行',
  66. // '4052' => '宁波鄞州农村商业银行',
  67. // '4764' => '浙江省农村信用社联合社',
  68. // '4217' => '江苏省农村信用社联合社',
  69. // '4072' => '江苏紫金农村商业银行股份有限公司',
  70. // '4769' => '北京中关村银行股份有限公司',
  71. // '4778' => '星展银行(中国)有限公司',
  72. // '4766' => '枣庄银行股份有限公司',
  73. // '4758' => '海口联合农村商业银行股份有限公司',
  74. // '4763' => '南洋商业银行(中国)有限公司',
  75. ];
  76. /**
  77. * 获取微信提现银行
  78. * @param string|null $wsea
  79. * @return array|string
  80. */
  81. public function banks(?string $wsea = null)
  82. {
  83. if (is_null($wsea)) return $this->banks;
  84. foreach ($this->banks as $bank) if ($bank['wseq'] === $wsea) {
  85. return $bank['name'];
  86. }
  87. return $wsea;
  88. }
  89. /**
  90. * 获取转账类型
  91. * @param string|null $name
  92. * @return array|string
  93. */
  94. public function types(?string $name = null)
  95. {
  96. return is_null($name) ? $this->types : ($this->types[$name] ?? $name);
  97. }
  98. /**
  99. * 同步刷新用户返利
  100. * @param integer $uuid
  101. * @return array [total, count, audit, locks]
  102. */
  103. public static function amount(int $uuid): array
  104. {
  105. if ($uuid > 0) {
  106. $locks = abs(DataUserTransfer::mk()->whereRaw("uuid='{$uuid}' and status=3")->sum('amount'));
  107. $total = abs(DataUserTransfer::mk()->whereRaw("uuid='{$uuid}' and status>=1")->sum('amount'));
  108. $count = abs(DataUserTransfer::mk()->whereRaw("uuid='{$uuid}' and status>=4")->sum('amount'));
  109. $audit = abs(DataUserTransfer::mk()->whereRaw("uuid='{$uuid}' and status>=1 and status<3")->sum('amount'));
  110. } else {
  111. $locks = abs(DataUserTransfer::mk()->whereRaw("status=3")->sum('amount'));
  112. $total = abs(DataUserTransfer::mk()->whereRaw("status>=1")->sum('amount'));
  113. $count = abs(DataUserTransfer::mk()->whereRaw("status>=4")->sum('amount'));
  114. $audit = abs(DataUserTransfer::mk()->whereRaw("status>=1 and status<3")->sum('amount'));
  115. }
  116. return [$total, $count, $audit, $locks];
  117. }
  118. /**
  119. * 获取提现配置
  120. * @param ?string $name
  121. * @return array|string
  122. * @throws \think\db\exception\DataNotFoundException
  123. * @throws \think\db\exception\DbException
  124. * @throws \think\db\exception\ModelNotFoundException
  125. */
  126. public static function config(?string $name = null)
  127. {
  128. static $data = [];
  129. if (empty($data)) $data = sysdata('TransferRule');
  130. return is_null($name) ? $data : ($data[$name] ?? '');
  131. }
  132. /**
  133. * 获取转账配置
  134. * @param ?string $name
  135. * @return array|string
  136. * @throws \think\db\exception\DataNotFoundException
  137. * @throws \think\db\exception\DbException
  138. * @throws \think\db\exception\ModelNotFoundException
  139. */
  140. public static function payment(?string $name = null)
  141. {
  142. static $data = [];
  143. if (empty($data)) $data = sysdata('TransferWxpay');
  144. return is_null($name) ? $data : ($data[$name] ?? '');
  145. }
  146. }