From 73f10553035bff217b28c42213965df9c4fe74d3 Mon Sep 17 00:00:00 2001 From: chenxiaojun <956334972@qq.com> Date: Tue, 4 Feb 2020 18:31:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0>=E6=8E=A8?= =?UTF-8?q?=E5=B9=BF=E5=91=98>=E7=BB=93=E7=AE=97=E7=AE=A1=E7=90=86>?= =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E6=8F=90=E7=8E=B0--=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=AE=A1=E6=A0=B8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Controller/AutoController.class.php | 2 +- .../Controller/QueryController.class.php | 188 +++++++++++--- .../Admin/Model/WithdrawModel.class.php | 82 ++++-- Application/Admin/View/Query/auto_review.html | 233 ++++++++++++++++++ Application/Admin/View/Query/withdraw.html | 56 ++--- Data/update.sql | 10 +- 6 files changed, 478 insertions(+), 93 deletions(-) create mode 100644 Application/Admin/View/Query/auto_review.html diff --git a/Application/Admin/Controller/AutoController.class.php b/Application/Admin/Controller/AutoController.class.php index ba3504d8e..272a1192a 100644 --- a/Application/Admin/Controller/AutoController.class.php +++ b/Application/Admin/Controller/AutoController.class.php @@ -1073,7 +1073,7 @@ public function auto_rrdae(){ $map['level'] = 1; $map['ver_status'] = 1; $map['settlement_type'] = ($settlement == 3) ? 1 : $settlement; - $promotes = M('promote', 'tab_')->field('id, account, chain, settlement_type')->where($map)->select(); + $promotes = M('promote', 'tab_')->field('id, account, chain, settlement_type, auto_review_withdraw_status')->where($map)->select(); $success = 0; $error_withdraw = 0; $error_spend = 0; diff --git a/Application/Admin/Controller/QueryController.class.php b/Application/Admin/Controller/QueryController.class.php index a346f441f..a28fb5f2e 100644 --- a/Application/Admin/Controller/QueryController.class.php +++ b/Application/Admin/Controller/QueryController.class.php @@ -2,6 +2,7 @@ namespace Admin\Controller; +use Admin\Model\PromoteModel; use Home\Controller\FileController; use User\Api\UserApi as UserApi; use Admin\Model\WithdrawModel; @@ -1005,6 +1006,7 @@ class QueryController extends ThinkController public function withdraw() { $page = I('p', 1); + $row = I('row', 10); $map['_string'] = '1=1'; $adminid = C('USER_ADMINISTRATOR');//获取超管id $adminmobile = M('UcenterMember')->field('mobile')->find($adminid); @@ -1030,6 +1032,13 @@ class QueryController extends ThinkController } else { $map['promote_id'] = array('gt', 0); } + if (!empty($_REQUEST['company_id'])) { + $promoteIds = D('promote')->where(['company_id' => $_REQUEST['company_id']]) + ->getField('id', true); + $promoteIds = $promoteIds ?? [-1]; + $where['promote_id'] = ['in', $promoteIds]; + $map['_complex'] = $where; + } $order = 'create_time desc'; if (isset($_REQUEST['data_order'])) { @@ -1042,40 +1051,68 @@ class QueryController extends ThinkController } } } + + $fields = 'id, widthdraw_number, sum_money, promote_id, promote_account, op_id, op_type, last_op_id, last_op_type, settlement_type, settlement_begin_time, settlement_end_time, create_time, status, respond, audit_time'; + $count = 0; if (I('export', 0) == 1) { - $records = D('withdraw')->field('widthdraw_number, sum_money, promote_account, op_id, op_type, last_op_id, last_op_type, settlement_type, settlement_begin_time, settlement_end_time, create_time, status, respond, audit_time') + $records = D('withdraw')->field($fields) ->where($map) ->order($order) ->select(); - if (!empty($records)) { - $data = []; - foreach ($records as $record) { - $record['op_id_text'] = $this->getOpTypeText($record['op_type'], $record['op_id']); - $record['last_op_id_text'] = $this->getOpTypeText($record['last_op_type'], $record['last_op_id']); - $record['op_type_text'] = getPromoteWithdrawOpType($record['op_type']); - $record['last_op_type_text'] = getPromoteWithdrawOpType($record['last_op_type']); - $record['settlement_type_text'] = getPromoteWithdrawSettlementType($record['settlement_type']); - $data[] = [ - 'widthdraw_number' => $record['widthdraw_number'], - 'sum_money' => $record['sum_money'], - 'promote_account' => $record['promote_account'], - 'op_id_text' => $this->getOpTypeText($record['op_type'], $record['op_id']), - 'last_op_id_text' => $this->getOpTypeText($record['last_op_type'], $record['last_op_id']), - 'op_type_text' => getPromoteWithdrawOpType($record['op_type']), - 'last_op_type_text' => getPromoteWithdrawOpType($record['last_op_type']), - 'settlement_type_text' => getPromoteWithdrawSettlementType($record['settlement_type']), - 'settlement_begin_time' => $record['settlement_begin_time'] ? date('Y-m-d H:i:s', $record['settlement_begin_time']) : '--', - 'settlement_end_time' => date('Y-m-d H:i:s', $record['settlement_end_time']), - 'create_time' => date('Y-m-d H:i:s', $record['create_time']), - 'status_text' => promoteWithdrawStatus($record['status']), - 'respond' => $record['respond'], - 'audit_time' => $record['audit_time'] ? date('Y-m-d H:i:s', $record['audit_time']) : '--', - ]; + } else { + $records = D('withdraw')->field($fields) + ->where($map) + ->order($order) + ->page($page, $row) + ->select(); + $count = D('withdraw')->field($fields) + ->where($map) + ->count(); + } + + $datas = []; + if (!empty($records)) { + $promoteIds = array_column($records, 'promote_id'); + $promoteCompanys = D('promote')->join('tab_promote_company as company on tab_promote.company_id = company.id') + ->where(['tab_promote.id' => ['in', $promoteIds]]) + ->getField('tab_promote.id, company.company_name', true); + foreach ($records as $record) { + $record['op_id_text'] = $this->getOpTypeText($record['op_type'], $record['op_id']); + $record['last_op_id_text'] = $this->getOpTypeText($record['last_op_type'], $record['last_op_id']); + $record['op_type_text'] = getPromoteWithdrawOpType($record['op_type']); + $record['last_op_type_text'] = getPromoteWithdrawOpType($record['last_op_type']); + $record['settlement_type_text'] = getPromoteWithdrawSettlementType($record['settlement_type']); + $record['company_name'] = isset($promoteCompanys[$record['promote_id']]) ? $promoteCompanys[$record['promote_id']] : '未知'; + + $data = [ + 'widthdraw_number' => $record['widthdraw_number'], + 'sum_money' => $record['sum_money'], + 'company_name' => $record['company_name'], + 'promote_account' => $record['promote_account'], + 'op_id_text' => $this->getOpTypeText($record['op_type'], $record['op_id']), + 'last_op_id_text' => $this->getOpTypeText($record['last_op_type'], $record['last_op_id']), + 'op_type_text' => getPromoteWithdrawOpType($record['op_type']), + 'last_op_type_text' => getPromoteWithdrawOpType($record['last_op_type']), + 'settlement_type_text' => getPromoteWithdrawSettlementType($record['settlement_type']), + 'settlement_begin_time' => $record['settlement_begin_time'] ? date('Y-m-d H:i:s', $record['settlement_begin_time']) : '--', + 'settlement_end_time' => date('Y-m-d H:i:s', $record['settlement_end_time']), + 'create_time' => date('Y-m-d H:i:s', $record['create_time']), + 'status_text' => promoteWithdrawStatus($record['status']), + 'respond' => $record['respond'], + 'audit_time' => $record['audit_time'] ? date('Y-m-d H:i:s', $record['audit_time']) : '--', + ]; + if (I('export', 0) != 1) { + $data['id'] = $record['id']; + $data['status'] = $record['status']; } + $datas[] = $data; + } + if (I('export', 0) == 1) { $field = [ 'widthdraw_number' => '结算单号', 'sum_money' => '结算金额', + 'company_name' => '推广公司', 'promote_account' => '推广员账号', 'op_id_text' => '操作人', 'op_type_text' => '操作人类型', @@ -1089,17 +1126,11 @@ class QueryController extends ThinkController 'respond' => '说明', 'audit_time' => '审核时间', ]; - data2csv($data,"推广结算", $field); + data2csv($datas,"推广结算", $field); exit; } } - $model = array( - 'm_name' => 'withdraw', - 'order' => $order, - 'title' => '渠道提现', - 'template_list' => 'withdraw', - ); $map1 = array('status' => ['neq', -1]); //为数据权限添加 setPowerPromoteIds($map1); @@ -1110,15 +1141,21 @@ class QueryController extends ThinkController $this->assign('total', $total); $this->assign('ttotal', $ttotal); $this->assign('ytotal', $ytotal); - $user = A('Bill', 'Event'); $this->m_title = '推广提现'; $this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Query/withdraw', 'status' => 1])->find()); + $page = set_pagination($count, $row); + if($page) { + $this->assign('_page', $page); + } //为数据权限添加 setPowerPromoteIds($map); + $companys = getPromoteCompanys(); + $this->assign('companys', $companys); $this->assign('is_admin', is_administrator()); - $user->money_list($model, $page, $map); + $this->assign('list_data', $datas); + $this->display(); } public function getWithdraw() @@ -1669,4 +1706,87 @@ class QueryController extends ThinkController } $this->ajaxReturn(['balance' => $balance]); } + + public function autoReview($autoStatus = 0) + { + if ($_POST) { + $promoteIds = I('ids', ''); + $autoStatus = intval($autoStatus); + if (empty($promoteIds)) { + $this->error('请选择需要操作的数据'); + } + if (!in_array($autoStatus, [0, 1])) { + $this->error('参数错误'); + } + + $map['id'] = ['in', $promoteIds]; + $time = time(); + $save['auto_review_withdraw_status'] = $autoStatus; + $save['auto_review_withdraw_updated_time'] = $time; + + $result = D('promote')->where($map)->save($save); + if ($result === false) { + $this->error('操作失败'); + } else { + $this->success('操作成功'); + } + } else { + $page = intval(I('p', 1)); + $row = intval(I('row', 10)); + $companyId = intval(I('company_id', 0)); + $promoteId = intval(I('promote_id', 0)); + $autoReviewWithdrawStatus = I('status', ''); + + if ($companyId > 0) { + $map['company_id'] =$companyId; + } + if ($promoteId > 0) { + $map['id'] =$promoteId; + } + if ($autoReviewWithdrawStatus !== '') { + $map['auto_review_withdraw_status'] = $autoReviewWithdrawStatus; + } + $map['level'] = 1; + $field = 'id, account, company_id, auto_review_withdraw_status'; + $promotes = D('promote')->field($field) + ->where($map) + ->order('auto_review_withdraw_updated_time desc') + ->page($page, $row) + ->select(); + $count = D('promote')->field($field) + ->where($map) + ->count(); + + $companys = getPromoteCompanys(); + $companyList = array_column($companys, 'company_name', 'id'); + $promoteList = (new PromoteModel())->getPromotersByLevel(); + + $records = []; + if (!empty($promotes)) { + foreach ($promotes as $promote) { + $promote['company_name'] = $companyList[$promote['company_id']] ?? '未知'; + if ($promote['auto_review_withdraw_status'] == 0) { + $className = 'auto-closed'; + $text = '关闭'; + } else { + $className = 'auto-open'; + $text = '开启'; + } + $promote['auto_review_withdraw_status_text'] = "{$text}"; + $records[] = $promote; + } + } + + $page = set_pagination($count, $row); + if($page) { + $this->assign('_page', $page); + } + $this->assign('meta_title', '推广提现自动审核管理'); + $this->assign('records', $records); + $this->assign('count', $count); + $this->assign('companys', $companys); + $this->assign('promoteList', $promoteList); + $this->display('auto_review'); + } + } } diff --git a/Application/Admin/Model/WithdrawModel.class.php b/Application/Admin/Model/WithdrawModel.class.php index d4efe6dd4..f4fe43914 100644 --- a/Application/Admin/Model/WithdrawModel.class.php +++ b/Application/Admin/Model/WithdrawModel.class.php @@ -193,7 +193,7 @@ class WithdrawModel extends Model{ $add['promote_id'] = $promote['id']; $add['promote_account'] = $promote['account']; $add['create_time'] = $thisTime; - $add['status'] = 0; + $add['status'] = ($promote['auto_review_withdraw_status'] == 1) ? 1 : 0; $add['widthdraw_number'] = D('withdraw')->produceWithdrawNumber(1); $add['settlement_begin_time'] = $settlementBeginTime; $add['settlement_end_time'] = $settlementEndTime; @@ -252,7 +252,7 @@ class WithdrawModel extends Model{ $promoteGameRatioMap['status'] = 1; $promoteGameRatioMap['promote_id'] = $promote['id']; - $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time') + $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time, interval_closed_status') ->where($promoteGameRatioMap) ->order('update_time desc') ->select(); @@ -278,10 +278,19 @@ class WithdrawModel extends Model{ ->where($spendWhere) ->find()['sum_amount']; $sumAmount = $sumAmount ?? 0; - foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if ($promoteGameRatio['interval_closed_status'] == 1) { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } + } else { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } @@ -322,7 +331,7 @@ class WithdrawModel extends Model{ $add['promote_id'] = $promote['id']; $add['promote_account'] = $promote['account']; $add['create_time'] = $thisTime; - $add['status'] = 0; + $add['status'] = ($promote['auto_review_withdraw_status'] == 1) ? 1 : 0; $add['widthdraw_number'] = D('withdraw')->produceWithdrawNumber(2); $add['settlement_begin_time'] = $settlementBeginTime; $add['settlement_end_time'] = $settlementEndTime; @@ -360,7 +369,7 @@ class WithdrawModel extends Model{ { $promoteGameRatioMap['status'] = 1; $promoteGameRatioMap['promote_id'] = $promote['id']; - $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time') + $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time, interval_closed_status') ->where($promoteGameRatioMap) ->order('update_time desc') ->select(); @@ -399,10 +408,19 @@ class WithdrawModel extends Model{ ->find()['sum_amount']; $sumAmount = $sumAmount ?? 0; $ratio = 0; - foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if ($promoteGameRatio['interval_closed_status'] == 1) { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } + } else { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } @@ -433,7 +451,7 @@ class WithdrawModel extends Model{ $add['promote_id'] = $promote['id']; $add['promote_account'] = $promote['account']; $add['create_time'] = $thisTime; - $add['status'] = 0; + $add['status'] = ($promote['auto_review_withdraw_status'] == 1) ? 1 : 0; $add['widthdraw_number'] = D('withdraw')->produceWithdrawNumber(3); $add['settlement_begin_time'] = $settlementBeginTime; $add['settlement_end_time'] = $settlementEndTime; @@ -457,7 +475,7 @@ class WithdrawModel extends Model{ { $promoteGameRatioMap['status'] = 1; $promoteGameRatioMap['promote_id'] = $promote['id']; - $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time') + $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time, interval_closed_status') ->where($promoteGameRatioMap) ->order('update_time desc') ->select(); @@ -485,10 +503,19 @@ class WithdrawModel extends Model{ ->find()['sum_amount']; $sumAmount = $sumAmount ?? 0; $ratio = 0; - foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if ($promoteGameRatio['interval_closed_status'] == 1) { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } + } else { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } @@ -518,7 +545,7 @@ class WithdrawModel extends Model{ $promoteGameRatioMap['status'] = 1; $promoteGameRatioMap['promote_id'] = $promote['id']; - $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time') + $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time, interval_closed_status') ->where($promoteGameRatioMap) ->order('update_time desc') ->select(); @@ -542,10 +569,19 @@ class WithdrawModel extends Model{ ->where($spendWhere) ->find()['sum_amount']; $sumAmount = $sumAmount ?? 0; - foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if ($promoteGameRatio['interval_closed_status'] == 1) { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } + } else { + foreach ($turnoverRatios as $turnoverRatio) { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } diff --git a/Application/Admin/View/Query/auto_review.html b/Application/Admin/View/Query/auto_review.html new file mode 100644 index 000000000..9daee06bf --- /dev/null +++ b/Application/Admin/View/Query/auto_review.html @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ 搜索 + 返回 +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 推广公司推广员账号自动审核
aOh! 暂时还没有内容!
+ + {$record.company_name}{$record.account}{$record.auto_review_withdraw_status_text}
汇总累计提现:{:null_to_0(floor($total*100)/100)}元
+
+
+
+ + 导出 + + {$_page|default=''} +
+ + +
+ + + + if(C('COLOR_STYLE')=='blue_color') echo ''; + + + + + + + + + diff --git a/Application/Admin/View/Query/withdraw.html b/Application/Admin/View/Query/withdraw.html index 6bf163db9..afb677218 100644 --- a/Application/Admin/View/Query/withdraw.html +++ b/Application/Admin/View/Query/withdraw.html @@ -58,6 +58,7 @@
通 过 驳 回 + 自动审核管理
@@ -66,6 +67,14 @@
+
+ +