refill_evidence.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. class refill_evidenceControl extends SystemControl
  3. {
  4. public function __construct()
  5. {
  6. parent::__construct();
  7. }
  8. /**
  9. * 充值申请列表
  10. */
  11. public function indexOp()
  12. {
  13. $model_merchant = Model('merchant');
  14. $condition = [];
  15. if (trim($_GET['mch_name']) != '') {
  16. $condition['mch_name'] = $_GET['mch_name'];
  17. Tpl::output('mch_name', $_GET['mch_name']);
  18. }
  19. $state_sel = intval($_REQUEST['state_sel']);
  20. if ($state_sel == 1) {
  21. $condition['check_time'] = 0;
  22. $condition['status'] = 1;
  23. } elseif ($state_sel == 2) {
  24. $condition['check_time'] = ['gt', 0];
  25. $condition['status'] = 2;
  26. } elseif ($state_sel == 3) {
  27. $condition['check_time'] = ['gt', 0];
  28. $condition['status'] = 3;
  29. } else {
  30. }
  31. if (!empty($_GET['add_type'])) {
  32. $condition['add_type'] = intval($_GET['add_type']);
  33. }
  34. $export = $_GET['export'] ?? 0;
  35. $start_unixtime = intval(strtotime($_GET['query_start_time']));
  36. $end_unixtime = intval(strtotime($_GET['query_end_time']));
  37. if ($start_unixtime > 0 && $end_unixtime > $start_unixtime) {
  38. $condition['add_time'] = [['egt', $start_unixtime], ['lt', $end_unixtime], 'and'];
  39. } elseif ($start_unixtime > 0) {
  40. $condition['add_time'] = ['egt', $start_unixtime];
  41. } elseif ($end_unixtime > 0) {
  42. $condition['add_time'] = ['lt', $end_unixtime];
  43. }
  44. //充值申请列表
  45. if(!empty($export)) {
  46. $evidence_list = $this->GetExportData($condition);
  47. } else {
  48. $evidence_list = $model_merchant->getRefillEvidence($condition, 20, 'refill_evidence.*,member.available_predeposit', 'refill_evidence.add_time desc', '', true);
  49. }
  50. $evidence_list = $this->formatData($evidence_list);
  51. $counts = Model('')->table('refill_evidence')
  52. ->field('sum(amount) as amounts,status,add_type')
  53. ->where($condition)
  54. ->group('status,add_type')
  55. ->select();
  56. $success_amount = $send_amount = $cancel_amount = $mch_amount = $system_amount = $system_edit_amount = 0;
  57. foreach ($counts as $count) {
  58. if($count['status'] == 1) {
  59. $send_amount += $count['amounts'];
  60. }elseif ($count['status'] == 2) {
  61. $success_amount += $count['amounts'];
  62. if($count['add_type'] == 1) {
  63. $mch_amount += $count['amounts'];
  64. }elseif ($count['add_type'] == 2) {
  65. $system_amount += $count['amounts'];
  66. }elseif ($count['add_type'] == 3) {
  67. $system_edit_amount += $count['amounts'];
  68. }
  69. }elseif ($count['status'] == 3) {
  70. $cancel_amount += $count['amounts'];
  71. }
  72. }
  73. $stats['send_amount'] = $send_amount;
  74. $stats['success_amount'] = $success_amount;
  75. $stats['cancel_amount'] = $cancel_amount;
  76. $stats['mch_amount'] = $mch_amount;
  77. $stats['system_amount'] = $system_amount;
  78. $stats['system_edit_amount'] = $system_edit_amount;
  79. if(!empty($export)) {
  80. $result['data'] = $evidence_list;
  81. $result['stats'] = $stats;
  82. echo(json_encode($result));
  83. exit;
  84. }
  85. Tpl::output('stats', $stats);
  86. Tpl::output('evidence_list', $evidence_list);
  87. Tpl::output('page', $model_merchant->showpage('2'));
  88. Tpl::showpage('merchant.refill.evidence_list');
  89. }
  90. public function formatData($data)
  91. {
  92. $status_text = ['申请中', '已通过', '已驳回'];
  93. $operation_text = ['未预存', '已预存'];
  94. $add_type_text = ['商户预存','后台手动预存','后台手动调款'];
  95. foreach ($data as $key => $value) {
  96. $data[$key]['add_time'] = date('Y-m-d H:i', $value['add_time']);
  97. $data[$key]['check_time'] = date('Y-m-d H:i', $value['check_time']);
  98. $data[$key]['status_text'] = $status_text[$value['status']-1];
  99. $data[$key]['operation_text'] = $operation_text[$value['is_operation']-1];
  100. $data[$key]['add_type_text'] = $add_type_text[$value['add_type']-1];
  101. }
  102. return $data;
  103. }
  104. private function GetExportData($condition): array
  105. {
  106. $i = 0;
  107. $result = [];
  108. while (true) {
  109. $start = $i * 1000;
  110. $list = Model('')->table('refill_evidence,member')->join('inner')->on('member.member_id=refill_evidence.member_id')
  111. ->field('refill_evidence.*,member.available_predeposit')->where($condition)->limit("{$start},1000")->master(true)->select();
  112. if (empty($list)) {
  113. break;
  114. }
  115. $i++;
  116. foreach ($list as $value) {
  117. $result[] = $value;
  118. }
  119. }
  120. return $result;
  121. }
  122. }