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 @@
+ 说明:推广员提现自动审核管理{$meta_title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 推广公司
+ 推广员账号
+ 自动审核
+
+ aOh! 暂时还没有内容!
+
+
+
+
+
+ {$record.company_name}
+ {$record.account}
+ {$record.auto_review_withdraw_status_text}
+
+
+
+ 汇总
+ 累计提现:{:null_to_0(floor($total*100)/100)}元
+
+
+