Withdraw.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\store\model\user;
  4. use app\common\model\user\Withdraw as WithdrawModel;
  5. /**
  6. * 用户提现模型
  7. * Class Withdraw
  8. * @package app\store\model\user
  9. */
  10. class Withdraw extends WithdrawModel
  11. {
  12. public function getList($query = [])
  13. {
  14. // 检索查询条件
  15. $filter = $this->getFilter($query);
  16. return $this->with(['user','user.idcard'])
  17. ->alias('t')->field('t.*')
  18. ->where($filter)
  19. ->leftJoin('user', 'user.user_id = t.user_id')
  20. ->order("t.create_time","desc")
  21. ->paginate()->each(function(&$item){
  22. $item->tax = bcadd($item['tax'],'0',2);
  23. });
  24. }
  25. private function getFilter($query = []) {
  26. $filter =[];
  27. if(!empty($query['transaction_no'])){
  28. $filter[] = ['transaction_no', 'like', '%'.$query['transaction_no'].'%'];
  29. }
  30. if(!empty($query['nick_name'])){
  31. $filter[] = ['user.nick_name', 'like', '%'.$query['nick_name'].'%'];
  32. }
  33. if(!empty($query['mobile'])){
  34. $filter[] = ['user.mobile', 'like', '%'.$query['mobile'].'%'];
  35. }
  36. if (!empty($query['betweenTime'])) {
  37. $times = between_time_format($query['betweenTime']);
  38. $filter[] = ['t.create_time', '>=', date('Y-m-d H:i:s',$times['start_time'])];
  39. $filter[] = ['t.create_time', '<', date('Y-m-d H:i:s',$times['end_time'])];
  40. /*
  41. $times = between_time($query['betweenTime']);
  42. $filter[] = ['t.create_time', '>=', $times['start_time']];
  43. $filter[] = ['t.create_time', '<', $times['end_time'] + 86400];*/
  44. }
  45. $query['count'] = $query['count']??'';
  46. if($query['count']=="all"||$query['count']==""){
  47. }
  48. if(isset($query['audit'])&&$query['audit']>-1){
  49. $filter[] = ['t.audit','=',$query['audit']];
  50. }
  51. if(isset($query['pay_state'])&&$query['pay_state']>-1){
  52. $filter[] = ['t.pay_state','=',$query['pay_state']];
  53. }
  54. if($query['count']=="audit_0"){
  55. $filter[] = ['t.audit', '=', 0];
  56. }
  57. if($query['count']=="audit_1"){
  58. $filter[] = ['t.audit', '=', 1];
  59. }
  60. if($query['count']=="audit_2"){
  61. $filter[] = ['t.audit', '=', 2];
  62. }
  63. if($query['count']=="pay_state_0"){
  64. $filter[] = ['t.pay_state', '=', 0];
  65. }
  66. if($query['count']=="pay_state_1"){
  67. $filter[] = ['t.pay_state', '=', 1];
  68. }
  69. if($query['count']=="pay_state_2"){
  70. $filter[] = ['t.pay_state', '=', 2];
  71. }
  72. return $filter;
  73. }
  74. /**
  75. * 导出提现列表
  76. * @param array $param
  77. * @author: zq
  78. * @Time: 2021/10/15 13:51
  79. */
  80. public function listExport(array $param)
  81. {
  82. $filter = $this->getFilter($param);
  83. //$ids = $param['id'];
  84. $data['header'] = ['序号', '提现单号', '提现金额', '个人所得税',
  85. '本月累计提现(含本次)','本月已扣个税','申请时间', '审核状态', '打款状态', '打款时间','微信交易流水号','用户昵称','手机号','真实姓名','身份证号'];
  86. $data['filename'] = '提现列表导出';
  87. $data['data'] = [];
  88. $list = $this->with(['user','user.idcard'])
  89. ->alias('t')->field('t.*')
  90. ->leftJoin('user', 'user.user_id = t.user_id')
  91. ->where($filter)
  92. ->order('id','desc')
  93. ->select();
  94. //dd($list->toArray());
  95. foreach ($list as $arr){
  96. $new_list['id'] = $arr['id'];
  97. $new_list['tx_no'] = $arr['transaction_no'];
  98. //$new_list['tx_account'] = $arr['tx_account'];
  99. //$new_list['transaction_type'] = $arr['transaction_type_text'];
  100. $new_list['amount'] = $arr['amount'];
  101. $new_list['tax'] = $arr['tax'];
  102. $new_list['amount_sum_monthly'] = $arr['amount_sum_monthly'];
  103. $new_list['tax_sum_monthly'] = $arr['tax_sum_monthly'];
  104. $new_list['create_time'] = $arr['create_time'];
  105. $new_list['audit'] = self::AUDIT[$arr['audit']];
  106. $new_list['pay_state'] = self::PAYSTATE[$arr['pay_state']];
  107. $new_list['pay_time'] = $arr['pay_time'];
  108. $new_list['third_trans_no'] = $arr['third_trans_no'];
  109. $new_list['nick_name'] = $arr['user']['nick_name'];
  110. $new_list['mobile'] = $arr['user']['mobile'];
  111. $new_list['real_name'] = $arr['user']['idcard']['real_name'];
  112. $new_list['id_card'] = $arr['user']['idcard']['id_card'];
  113. $data['data'][] = $new_list;
  114. }
  115. return $data;
  116. }
  117. }