diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php index 7b558b442..a37e87067 100644 --- a/Application/Admin/Common/extend.php +++ b/Application/Admin/Common/extend.php @@ -2039,6 +2039,32 @@ function getPromoteCompanyList() { return $data; } +//获取游戏cp分成比例 $type=false时返回最低分成比例 +function getGameCpRadio($game_id,$amount,$type) { + if (!$type) { + $data = M('cp_game_ratio','tab_')->where(['game_id'=>$game_id])->order('begin_total_amount asc')->find(); + } else { + //取两条 + $ladderData = M('cp_game_ratio','tab_')->where(['game_id'=>$game_id,'begin_total_amount'=>['elt',$amount]])->limit(0,2)->order('begin_total_amount desc')->select(); + +// dump($ladderData);die(); + + foreach($ladderData as $key => $value) { + + if ($value['instanceof'] == 1 && $value['begin_total_amount'] <= $amount + || $value['instanceof'] == 2 && $value['begin_total_amount'] != $amount ) { + $data['ratio'] = $value['ratio']; + break; + } else { + $data['ratio'] = $value['ratio']; + } + } + + } + + return $data['ratio']?$data['ratio']:0; + +} ?> diff --git a/Application/Admin/Common/function.php b/Application/Admin/Common/function.php index 59f7e8482..7916130e1 100644 --- a/Application/Admin/Common/function.php +++ b/Application/Admin/Common/function.php @@ -706,16 +706,20 @@ function getPromoteAccount($promoteId) return M('promote', 'tab_')->where($map)->getField('account'); } -//获取推广员列表 $level 0-全部 -function getPromoteByLevel($level = 0) +//获取推广员列表 $level 0-全部 $companyId 推广公司 0-全部 +function getPromoteByLevel($level = 0, $companyId = 0) { $field = 'id, account, real_name'; - if ($level) { + $map['_string'] = '1 = 1'; + if ($level > 0) { $map['level'] = $level; - $promotes = M('promote', 'tab_')->field($field)->where($map)->select(); - } else { - $promotes = M('promote', 'tab_')->field($field)->select(); } + if ($companyId > 0) { + $map['company_id'] = $companyId; + } + + $promotes = M('promote', 'tab_')->field($field)->where($map)->select(); + return $promotes; } 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/ExportController.class.php b/Application/Admin/Controller/ExportController.class.php index 118624446..6a3849e40 100644 --- a/Application/Admin/Controller/ExportController.class.php +++ b/Application/Admin/Controller/ExportController.class.php @@ -5887,6 +5887,10 @@ class ExportController extends Controller if (strlen(I('company_belong'))) { $map['company_belong'] = I("company_belong"); } + + if (!is_null(I('admin_uid', null))) { + $map['admin_id'] = I('admin_uid'); + } //为数据权限添加 setPowerPromoteIds($map, 'tab_promote.id'); @@ -7114,6 +7118,7 @@ class ExportController extends Controller $xlsCell = array( array('game_name','游戏'), + array('game_type_name','游戏类型'), array('partner_name','合作公司'), array('cash_count','游戏现金金额'), array('balance_coin_count','平台币直充支出'), @@ -7145,6 +7150,10 @@ class ExportController extends Controller $map['_string'] .= " s.pay_time < {$timeend}"; } + if (!empty(I('game_type_id'))) { + $map['g.game_type_id'] = I('game_type_id'); + } + $xlsData = D("spend")->gameStatistics($map); foreach ($xlsData as $key => $value) { $xlsData[$key]['all_cash_count'] = $value['cash_count'] + $value['balance_coin_count'] + $value['inside_cash_count']; diff --git a/Application/Admin/Controller/FinanceController.class.php b/Application/Admin/Controller/FinanceController.class.php index f3a6da5fb..e72fdb907 100644 --- a/Application/Admin/Controller/FinanceController.class.php +++ b/Application/Admin/Controller/FinanceController.class.php @@ -725,6 +725,10 @@ class FinanceController extends ThinkController } $map['_string'] .= " s.pay_time < {$timeend}"; } + + if (!empty(I('game_type_id'))) { + $map['g.game_type_id'] = I('game_type_id'); + } $startTime = time(); //游戏统计列表 $data = D("spend")->gameStatistics($map, $row, $p); @@ -749,6 +753,8 @@ class FinanceController extends ThinkController $sumInside = $totalData['inside_cash_count']; $sumAll = $sumCash + $sumBalance + $sumInside; + $game_types = M("game_type", 'tab_')->field('id, type_name')->select(); + $this->assign('game_types', $game_types); $this->assign('sumCash', $sumCash); $this->assign('sumBalance', $sumBalance); $this->assign('sumInside', $sumInside); diff --git a/Application/Admin/Controller/PromoteController.class.php b/Application/Admin/Controller/PromoteController.class.php index 223d6d0fc..08cc2bd37 100644 --- a/Application/Admin/Controller/PromoteController.class.php +++ b/Application/Admin/Controller/PromoteController.class.php @@ -99,6 +99,11 @@ class PromoteController extends ThinkController if (strlen(I('company_belong'))) { $map['company_belong'] = I("company_belong"); } + + if (!is_null(I('admin_uid', null))) { + $map['admin_id'] = I('admin_uid'); + } + $this->m_title = '推广员列表'; $this->assign('commonset', M('Kuaijieicon')->where(['url'=>'Promote/lists/type/1','status'=>1])->find()); if (isset($_REQUEST['row'])) { @@ -176,6 +181,8 @@ class PromoteController extends ThinkController if ($page) { $this->assign('_page', $page); } + $admins = M('member')->field('uid,nickname')->select(); + $this->assign('admins', $admins); $this->assign('list_data', $list_data); $this->display(); } @@ -1216,6 +1223,13 @@ class PromoteController extends ThinkController $map['pb.can_view_recharge'] = I('can_view_recharge'); } + if (!is_null(I('company_id', null))) { + $map['p.company_id'] = I('company_id'); + } + + if (!is_null(I('admin_id', null))) { + $map['p.admin_id'] = I('admin_id'); + } $this->m_title = '推广公会归属管理'; $this->assign('commonset', M('Kuaijieicon')->where(['url'=>'Promote/belong','status'=>1])->find()); if (isset($_REQUEST['row'])) { @@ -1229,8 +1243,9 @@ class PromoteController extends ThinkController $model = M('promote_belong', 'tab_'); $list_data = $model->alias('pb') ->join('left join tab_promote as p on p.id=pb.promote_id') + ->join('left join tab_promote_company as pc on pc.id = p.company_id') ->where($map) - ->field('p.*,pb.*') + ->field('p.*,pb.*, pc.company_name') ->page($p, $row) ->order('verify_status asc,applicant_time asc') ->select(); @@ -1241,8 +1256,12 @@ class PromoteController extends ThinkController if ($page) { $this->assign('_page', $page); } + $companys = M('promote_company', 'tab_')->field('id, company_name')->select(); + $admins = M('member')->field('uid,nickname')->select(); $this->assign('is_admin', is_administrator()); $this->assign('list_data', $list_data); + $this->assign('companys', $companys); + $this->assign('admins', $admins); $this->display(); } diff --git a/Application/Admin/Controller/PromoteGameRatioController.class.php b/Application/Admin/Controller/PromoteGameRatioController.class.php index 0f6701687..c55fb6c5a 100644 --- a/Application/Admin/Controller/PromoteGameRatioController.class.php +++ b/Application/Admin/Controller/PromoteGameRatioController.class.php @@ -22,22 +22,44 @@ class PromoteGameRatioController extends ThinkController { $params = I('get.'); $group = $params['group'] ?? 1; + $companyId = $params['company_id'] ?? 0; + $companyBelong = $params['company_belong'] ?? ''; $promoteId = $params['promote_id'] ?? 0; $gameId = $params['game_id'] ?? 0; + $gameTypeId = $params['game_type_id'] ?? 0; $status = $params['status'] ?? ''; $page = $params['p'] ? intval($params['p']) : 1; $row = $params['row'] ? intval($params['row']) : 10; $map['_string'] = 'game_id = relation_game_id'; + $where['_string'] = '1 = 1'; + if ($companyId || ($companyBelong !== '' && in_array($companyBelong, [0, 1]))) { + $promoteMap['_string'] = '1 = 1'; + if ($companyId) { + $promoteMap['company_id'] = $companyId; + } + if ($companyBelong !== '' && in_array($companyBelong, [0, 1])) { + $promoteMap['company_belong'] = $companyBelong; + } + $promoteIds = D('promote')->where($promoteMap)->getField('id', true); + $promoteIds = $promoteIds ?? [-1]; + $where['promote_id'] = ['in', $promoteIds]; + } if ($promoteId) { $map['promote_id'] = intval($promoteId); } + if ($gameTypeId) { + $gameIds = D('game')->where(['game_type_id' => $gameTypeId])->getField('id', true); + $gameIds = $gameIds ?? [-1]; + $where['game_id'] = ['in', $gameIds]; + } if ($gameId) { $map['game_id'] = intval($gameId); } if ($status !== '') { $map['status'] = intval($status); } + $map['_complex'] = $where; $field = 'create_time, update_time'; if ($group == 1) { @@ -68,8 +90,8 @@ class PromoteGameRatioController extends ThinkController if ($promoteGameRatios) { $promoteIds = array_column($promoteGameRatios, 'promote_id'); $gameIds = array_column($promoteGameRatios, 'game_id'); - $promoteFiled = 'id, account, mobile_phone, create_time, status, ver_status'; - $gameFiled = 'id, relation_game_name, ratio'; + $promoteFiled = 'id, account, mobile_phone, create_time, status, ver_status, company_id, company_belong'; + $gameFiled = 'id, relation_game_name, ratio, game_type_name'; $promotes = M('promote', 'tab_')->where(array('id' => ['in', $promoteIds]))->getField($promoteFiled, true); $games = M('game', 'tab_')->where(array('id' => ['in', $gameIds]))->getField($gameFiled, true); @@ -83,14 +105,22 @@ class PromoteGameRatioController extends ThinkController $thisPromoteCreateTime = '未知'; $thisPromoteStatus = '待审核'; $thisPromoteVerStatus = '未知'; + $thisCompanyName = '未知'; + $thisCompanyBelong = '未知'; + $thisGameTypeName = '未知'; $thisGameName = '未知'; $thisGameRatio = '0.00%'; $thisLastRatio = $promoteGameRatio['last_ratio'] . '%'; $thisLastTurnoverRatio = $promoteGameRatio['last_turnover_ratio'] ? json_decode($promoteGameRatio['last_turnover_ratio'], true) : []; $thisLastRatio = $thisLastTurnoverRatio ? "{$thisLastRatio} - " . $thisLastTurnoverRatio[count($thisLastTurnoverRatio) - 1]['ratio'] . '%' : $thisLastRatio; - $thisRatio = $promoteGameRatio['ratio'] . '%'; - $thisTurnoverRatio = $promoteGameRatio['turnover_ratio'] ? json_decode($promoteGameRatio['turnover_ratio'], true) : []; - $thisRatio = $thisTurnoverRatio ? "{$thisRatio} - " . $thisTurnoverRatio[count($thisTurnoverRatio) - 1]['ratio'] . '%' : $thisRatio; + $thisTurnoverRatios = $promoteGameRatio['turnover_ratio'] ? json_decode($promoteGameRatio['turnover_ratio'], true) : []; + $thisRatioDtl = "默认:{$promoteGameRatio['ratio']}%"; + if ($thisTurnoverRatios) { + foreach ($thisTurnoverRatios as $thisTurnoverRatio) { + $thisIntervalClosedStatusText = isset($thisTurnoverRatio['instanceof']) ? ($thisTurnoverRatio['instanceof'] == 1 ? '≥' : '>') : '≥'; + $thisRatioDtl .= "
月流水{$thisIntervalClosedStatusText}{$thisTurnoverRatio['turnover']},比例:{$thisTurnoverRatio['ratio']}%"; + } + } $thisLastRatioStatus = $promoteGameRatio['last_ratio_status']; $thisStatusText = self::$statusList[$promoteGameRatio['status']]; $thisStatusText = ($promoteGameRatio['status'] == -1) ? '' . $thisStatusText . '' : $thisStatusText; @@ -106,11 +136,14 @@ class PromoteGameRatioController extends ThinkController $thisPromoteStatus = get_info_status($promotes[$thisPromoteId]['status'], 3); $thisPromoteStatus = $thisPromoteStatus ?? '待审核'; $thisPromoteVerStatus = getPromoteVerStatus($promotes[$thisPromoteId]['ver_status'], 2); + $thisCompanyName = getPromoteCompanyName($promotes[$thisPromoteId]['company_id']); + $thisCompanyBelong = $promotes[$thisPromoteId]['company_belong'] == 1 ? '外团' : '内团'; } if ($issetGame) { $thisGameName = $games[$thisGameId]['relation_game_name']; $thisGameRatio = $games[$thisGameId]['ratio']; $thisGameRatio = ($thisGameRatio ?? '0.00') . '%'; + $thisGameTypeName = $games[$thisGameId]['game_type_name']; } $record = [ @@ -121,9 +154,12 @@ class PromoteGameRatioController extends ThinkController 'promote_create_time' => $thisPromoteCreateTime, 'promote_status_text' => $thisPromoteStatus, 'promote_ver_status_text' => $thisPromoteVerStatus, + 'company_name' => $thisCompanyName, + 'company_belong' => $thisCompanyBelong, 'game_name' => $thisGameName, + 'game_type_name' => $thisGameTypeName, 'last_ratio' => (($thisLastRatioStatus == 1 || $group != 1) ? $thisLastRatio : $thisGameRatio), - 'ratio' => $thisRatio, + 'ratio_dtl' => $thisRatioDtl, 'valid_date' => $validDate, 'remark' => $promoteGameRatio['remark'], 'status_text' => $thisStatusText, @@ -158,16 +194,20 @@ class PromoteGameRatioController extends ThinkController exit; } + $gameTypelist = getGameTypes(); + $companys = getPromoteCompanys(); $reviewRule = $this->getReviewRule(); $page = set_pagination($count, $row); if($page) { $this->assign('_page', $page); } + $this->assign('companys', $companys); + $this->assign('gameTypeList', $gameTypelist); $this->assign('group', $group); $this->assign('records', $records); $this->assign('count', $count); $this->assign('gameList', getAllGameList(true)); - $this->assign('promoteList', getPromoteByLevel(1)); + $this->assign('promoteList', getPromoteByLevel(1, intval(I('company_id', 0)))); $this->assign('statusList', self::$statusList); $this->assign('reviewRule', $reviewRule); $this->assign('is_admin', is_administrator()); @@ -192,8 +232,8 @@ class PromoteGameRatioController extends ThinkController $this->error('默认分成比例不能为空'); } $save['turnover_ratio'] = []; - if (!empty(array_filter($params['turnover'])) || !empty(array_filter($params['turnover_ratio']))) { - if (is_array($params['turnover']) && is_array($params['turnover_ratio'])) { + if (!empty(array_filter($params['turnover'])) || !empty(array_filter($params['turnover_ratio'])) || !empty(array_filter($params['instanceof']))) { + if (is_array($params['turnover']) && is_array($params['turnover_ratio']) && is_array($params['instanceof'])) { foreach ($params['turnover'] as $turnover) { if (empty($turnover)) { $this->error('月流水不能为空'); @@ -204,6 +244,11 @@ class PromoteGameRatioController extends ThinkController $this->error('月流水分成比例不能为空'); } } + foreach ($params['instanceof'] as $intervalClosedStatus) { + if (!in_array($intervalClosedStatus, [1, 2])) { + $this->error('月流水分符号不能为空'); + } + } $turnoverCount = count($params['turnover']); $sortTurnover = $params['turnover']; sort($sortTurnover); @@ -225,6 +270,7 @@ class PromoteGameRatioController extends ThinkController $save['turnover_ratio'][] = [ 'turnover' => bcdiv($turnover, 1, 2), 'ratio' => bcdiv($params['turnover_ratio'][$key], 1, 2), + 'instanceof' => (isset($params['instanceof'][$key]) ? $params['instanceof'][$key] : 1), ]; } $save['turnover_ratio'] = json_encode($save['turnover_ratio']); @@ -243,14 +289,15 @@ class PromoteGameRatioController extends ThinkController if (empty($promoteGameRatio)) { $this->error('参数异常'); } - if ($promoteGameRatio['status'] == -1 || $save['begin_time'] != $promoteGameRatio['begin_time'] || $save['end_time'] != $promoteGameRatio['end_time'] || $save['ratio'] != $promoteGameRatio['ratio'] || $save['remark'] != $promoteGameRatio['remark'] || $save['turnover_ratio'] != $promoteGameRatio['turnover_ratio']) { - $this->isWithdraw($promoteGameRatio['promote_id'], $save['begin_time']); + if ($promoteGameRatio['status'] == -1 || $save['instanceof'] != $promoteGameRatio['instanceof'] || $save['begin_time'] != $promoteGameRatio['begin_time'] || $save['end_time'] != $promoteGameRatio['end_time'] || $save['ratio'] != $promoteGameRatio['ratio'] || $save['remark'] != $promoteGameRatio['remark'] || $save['turnover_ratio'] != $promoteGameRatio['turnover_ratio']) { + $this->isWithdraw($promoteGameRatio['promote_id'], $save['begin_time'], $save['end_time']); if ($promoteGameRatio['status'] == 1) { $save['last_turnover_ratio'] = $promoteGameRatio['turnover_ratio']; $save['last_ratio'] = $promoteGameRatio['ratio']; $save['last_ratio_status'] = 1; } + $saveMap['promote_id'] = $promoteGameRatio['promote_id']; $saveMap['relation_game_id'] = $promoteGameRatio['relation_game_id']; $result = D(self::MODEL_NAME)->where($saveMap)->save($save); $logResult = $result; @@ -293,7 +340,7 @@ class PromoteGameRatioController extends ThinkController $this->error('参数异常'); } - $this->isWithdraw($promoteId, $save['begin_time']); + $this->isWithdraw($promoteId, $save['begin_time'], $save['end_time']); $map['promote_id'] = $promoteId; $save['promote_id'] = $promoteId; @@ -329,6 +376,7 @@ class PromoteGameRatioController extends ThinkController $params = I('get.'); $id = $params['id'] ?? 0; $id = intval($id); + $companyId = 0; $metaTitle = '游戏分成比例申请'; if ($id) { $metaTitle .= '--修改'; @@ -347,18 +395,30 @@ class PromoteGameRatioController extends ThinkController $lastRatio = ($gameRatio ?? '0.00') . '%'; } + $companyId = $promoteGameRatio['company_id']; + $promoteGameRatio['company_id'] = D('promote')->where(['id' => $promoteGameRatio['promote_id']])->getField('company_id'); $this->assign('record', $promoteGameRatio); $this->assign('lastRatio', $lastRatio); } + $companys = getPromoteCompanys(); + $this->assign('companys', $companys); $this->assign('gameList', getAllGameList(true)); - $this->assign('promoteList', getPromoteByLevel(1)); + $this->assign('promoteList', getPromoteByLevel(1, $companyId)); $this->meta_title = $metaTitle; $this->display(); } } - private function isWithdraw($promoteId, $beginTime) + public function getPromotes() + { + $level = 1; + $companyId = intval(I('company_id', 0)); + $promotes = getPromoteByLevel($level, $companyId); + $this->ajaxReturn($promotes); + } + + private function isWithdraw($promoteId, $beginTime, $endTime) { $promote = M('promote', 'tab_')->find($promoteId); if (empty($promote)) { @@ -370,11 +430,38 @@ class PromoteGameRatioController extends ThinkController $withdrawMap['promote_id'] = $promoteId; $withdrawMap['status'] = ['neq', -2]; + if (empty($endTime)) { + $withdrawWhere['settlement_begin_time'] = ['egt', $beginTime]; + $withdrawWhere['settlement_end_time'] = ['egt', $beginTime]; + } else { + $withdrawWhere['settlement_begin_time'] = ['between', [$beginTime, $endTime]]; + $withdrawWhere['settlement_end_time'] = ['between', [$beginTime, $endTime]]; + } + $withdrawWhere['_logic'] = 'or'; + $withdrawMap['_complex'] = $withdrawWhere; $withdrawMap['settlement_begin_time'] = ['egt', $beginTime]; - $withdraw = M('withdraw', 'tab_')->where($withdrawMap)->order('create_time desc')->find(); - if (!empty($withdraw) && $withdraw['status'] != -2) { - $time = date('Y-m', $beginTime); - $this->error("{$time}月已有订单申请提现, 无法变更分成比例,请重新选择开始时间"); + $withdraws = M('withdraw', 'tab_')->field('settlement_begin_time, settlement_end_time') + ->where($withdrawMap) + ->order('settlement_begin_time asc, settlement_end_time asc') + ->select(); + if (!empty($withdraws)) { + $times = []; + $text = ''; + foreach ($withdraws as $withdraw) { + $settlementBeginTime = !empty($withdraw['settlement_begin_time']) ? date('Y-m', $withdraw['settlement_begin_time']) : ''; + $settlementEndTime = date('Y-m', $withdraw['settlement_end_time']); + if ($settlementBeginTime && !in_array($settlementBeginTime, $times)) { + $times[] = $settlementBeginTime; + $text .= "{$settlementBeginTime}月、"; + } + if (!in_array($settlementEndTime, $times)) { + $times[] = $settlementEndTime; + $text .= "{$settlementEndTime}月、"; + } + } + $text = rtrim($text, '、'); + $text .= '已有订单申请提现, 无法变更分成比例,请重新选择开始时间'; + $this->error($text); } } 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/Controller/StatementController.class.php b/Application/Admin/Controller/StatementController.class.php index 66f698e1a..ba9fb63f8 100644 --- a/Application/Admin/Controller/StatementController.class.php +++ b/Application/Admin/Controller/StatementController.class.php @@ -83,7 +83,7 @@ class StatementController extends ThinkController $CompanyId = $_REQUEST['company_id']; //对账公司id $statement_type = $_REQUEST['statement_type']; - $is_month = false;//是否是月结判断 + $is_month = false;//是否是月结判断,非月结无需梯度计算 if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { //判断是否是月结 $tm = explode('-',$_REQUEST['time_start']); @@ -154,15 +154,16 @@ class StatementController extends ThinkController "game_id"=>$v['game_id'], "begin_total_amount"=>0, ); - if($is_month){ - $map['begin_total_amount'] = array("ELT",$v['pay_amount']); - }; - $ratiores = $CpGameRatio->where($map)->order("begin_total_amount desc")->limit(1)->select(); - if(empty($ratiores)){ - $redio = 0; - }else{ - $redio = $ratiores[0]['ratio']; - } + // if($is_month){ + // $map['begin_total_amount'] = array("ELT",$v['pay_amount']); + // }; + // $ratiores = $CpGameRatio->where($map)->order("begin_total_amount desc")->limit(1)->select(); + // if(empty($ratiores)){ + // $redio = 0; + // }else{ + // $redio = $ratiores[0]['ratio']; + // } + $redio = getGameCpRadio($v['game_id'],$v['pay_amount'],$is_month);//获取分成比例 $v['second_ratio'] = $redio; $v['first_ratio'] = (100-$redio); if($statement_type == 0){ diff --git a/Application/Admin/Controller/StatementMangementController.class.php b/Application/Admin/Controller/StatementMangementController.class.php index 3f5a9b98a..d36317d20 100644 --- a/Application/Admin/Controller/StatementMangementController.class.php +++ b/Application/Admin/Controller/StatementMangementController.class.php @@ -230,4 +230,103 @@ class StatementMangementController extends ThinkController } + public function rewardManageList($row = 10, $p = 1) + { + $map = []; + $list = M('reward_record', 'tab_')->where($map)->page($p, $row)->select(); + if ($list) { + $companys[1] = array_column(M('partner', 'tab_')->field('id, partner as name')->select(), 'name', 'id'); + $companys[2] = array_column(M('promote_company', 'tab_')->field('id, company_name as name')->select(), 'name', 'id'); + $games = array_column(M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(), 'relation_game_name', 'relation_game_id'); + foreach ($list as &$item) { + $item['company_name'] = $companys[$item['company_type']][$item['company_id']]; + $item['accounts'] = json_decode($item['accounts'], true) ?: []; + $item['reward_type_desc'] = $item['reward_type'] == 1 ? "奖励" : "惩罚"; + $item['company_type_desc'] = $item['company_type'] == 1 ? "上游公司" : "下游公司"; + $item['relation_game_name'] = $games[$item['relation_game_id']]; + // if ($item['company_type'] == 1) { + + // } else { + + // } + } + } + $count = M('reward_record', 'tab_')->where($map)->count(); + $page = set_pagination($count, $row); + if ($page) { + $this->assign('_page', $page); + } + $this->assign('list', $list); + $this->display(); + } + + public function rewardManageSave($id=0) + { + if (IS_POST) { + $data = [ + 'reward_type' => I('reward_type'), + 'company_type' => I('company_type'), + 'company_id' => I('company_id'), + 'relation_game_id' => I('relation_game_id'), + 'money' => I('money'), + 'content' => I('content'), + 'remark' => I('remark'), + ]; + $accounts = I('account'); + $user_types = I('user_type'); + if ($accounts) { + + foreach ($accounts as $index => $account) { + $data['accounts'][] = array_merge(['account'=>$account], ['user_type'=>$user_types[$index]]); + } + } else { + $data['accounts'] = []; + } + $data['accounts'] = json_encode($data['accounts']); + if (!is_numeric(I('money'))) { + return $this->error('请输入正确的金额'); + } + if (empty(I('content'))) { + return $this->error('请填写事件内容'); + } + if ($id) { + $upt = M('reward_record', 'tab_')->where(['id'=>$id])->save($data); + return $upt ? $this->success('更新成功', U('StatementMangement/rewardManageList')) : $this->error('更新失败'); + } else { + $data['create_time'] = time(); + $data['creater_id'] = is_login(); + $ins = M('reward_record', 'tab_')->add($data); + return $ins ? $this->success('新增成功', U('StatementMangement/rewardManageList')) : $this->error('新增失败'); + } + } else { + $games = M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(); + $this->assign('games', $games); + if ($id) { + if (I('delete')) { + $upt = M('reward_record', 'tab_')->where(['id'=>$id])->delete(); + return $upt ? $this->success('删除成功') : $this->error('删除失败'); + } else { + $data = M('reward_record', 'tab_')->where(['id'=>$id])->find(); + if (!$data) return $this->error("未找到该记录"); + $data['accounts'] = json_decode($data['accounts'], true) ?: []; + $this->assign('data', $data); + } + } + $this->display(); + } + + } + + public function getCompanys($type=1) + { + if ($type == 1) { + $data = M('partner', 'tab_')->field('id, partner as name')->select(); + } elseif ($type == 0) { + $data = []; + } else { + $data = M('promote_company', 'tab_')->field('id, company_name as name')->select(); + } + return $this->success($data, '', true); + } + } diff --git a/Application/Admin/Model/SpendModel.class.php b/Application/Admin/Model/SpendModel.class.php index f7177406b..9242d01ec 100644 --- a/Application/Admin/Model/SpendModel.class.php +++ b/Application/Admin/Model/SpendModel.class.php @@ -841,7 +841,7 @@ class SpendModel extends Model public function gameStatistics($map, $row = 0, $page = 1) { $query = $this->alias("s") - ->field("s.game_id,s.game_name,p.partner as partner_name, + ->field("s.game_id,s.game_name,p.partner as partner_name, g.game_type_name, SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count, SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count, SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as inside_cash_count") diff --git a/Application/Admin/Model/WithdrawModel.class.php b/Application/Admin/Model/WithdrawModel.class.php index d4efe6dd4..7db178856 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; @@ -279,9 +279,16 @@ class WithdrawModel extends Model{ ->find()['sum_amount']; $sumAmount = $sumAmount ?? 0; foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if (empty($turnoverRatio['instanceof']) || $turnoverRatio['instanceof'] == 1) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } else { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } @@ -322,7 +329,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; @@ -400,9 +407,16 @@ class WithdrawModel extends Model{ $sumAmount = $sumAmount ?? 0; $ratio = 0; foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if (empty($turnoverRatio['instanceof']) || $turnoverRatio['instanceof'] == 1) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } else { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } @@ -433,7 +447,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; @@ -486,9 +500,16 @@ class WithdrawModel extends Model{ $sumAmount = $sumAmount ?? 0; $ratio = 0; foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if (empty($turnoverRatio['instanceof']) || $turnoverRatio['instanceof'] == 1) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } else { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } @@ -543,9 +564,16 @@ class WithdrawModel extends Model{ ->find()['sum_amount']; $sumAmount = $sumAmount ?? 0; foreach ($turnoverRatios as $turnoverRatio) { - if ($sumAmount >= $turnoverRatio['turnover']) { - $ratio = $turnoverRatio['ratio']; - break; + if (empty($turnoverRatio['instanceof']) || $turnoverRatio['instanceof'] == 1) { + if ($sumAmount >= $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } + } else { + if ($sumAmount > $turnoverRatio['turnover']) { + $ratio = $turnoverRatio['ratio']; + break; + } } } diff --git a/Application/Admin/View/Finance/gameStatistics.html b/Application/Admin/View/Finance/gameStatistics.html index 4e241b0b6..b486d0ee5 100644 --- a/Application/Admin/View/Finance/gameStatistics.html +++ b/Application/Admin/View/Finance/gameStatistics.html @@ -107,6 +107,15 @@ +
+ +
+
@@ -152,6 +161,8 @@ 游戏 + 游戏类型 +
游戏现金金额第三方支付(微信,支付宝,快捷)。
平台币直充支出平台币购买游戏道具所产生的金额
@@ -180,6 +191,7 @@ {$data.partner_name} {$data.game_name} + {$data.game_type_name} {$data.cash_count}0 总计 + 总计 {$sumCash}0 {$sumBalance}0 {$sumInside}0 diff --git a/Application/Admin/View/Promote/belong.html b/Application/Admin/View/Promote/belong.html index f76ae95e2..20a550f41 100644 --- a/Application/Admin/View/Promote/belong.html +++ b/Application/Admin/View/Promote/belong.html @@ -57,6 +57,22 @@
+
+
+ +
+
+
+
+ +
disabled> + + + + + + + + + + + + + + + + *会长账号: + + + +
- +
- + % sadasdas
@@ -156,7 +178,11 @@
- + +
@@ -259,6 +285,30 @@ $(function(){ promoteGameRatioData.end_time = ''; promoteGameRatioData.remark = ''; + $('#company_id').change(function (e) { + var companyId = parseInt($(this).val()); + $.ajax({ + type: 'post', + url: "{:U('getPromotes')}", + dataType: 'json', + data: {'company_id': companyId}, + success: function (data) { + var html = ''; + if (data.length > 0) { + for (let i = 0;i < data.length;i++) { + html += ''; + } + } + $('#promote_id').html(html); + $('#promote_id').select2(); + getPromoteGameRatio(); + }, + error: function (result) { + console.log(result); + } + }); + }); + $('#ratio, #begin_time, #end_time, #remark').change(function () { var val = $(this).val(); var elementIdName = $(this).attr('id'); @@ -266,13 +316,14 @@ $(function(){ }); $('#promote_id, #game_id').change(function () { - var promoteId = parseInt($('#promote_id').val()); - var gameId = parseInt($('#game_id').val()); - getPromoteGameRatio(promoteId, gameId); + getPromoteGameRatio(); }); - function getPromoteGameRatio(promoteId, gameId) + function getPromoteGameRatio() { + var promoteId = parseInt($('#promote_id').val()); + var gameId = parseInt($('#game_id').val()); + $.ajax({ type: 'post', url: "{:U('getPromoteGameRatio')}", @@ -340,14 +391,18 @@ $(function(){ var delBtn = $('.iconfont-btn-del'); var html = ''; html += '
'; - html += ''; + html += ''; + html += ''; html += '
'; - html += ''; + html += ''; html += ''; html += '
'; html += ''; html += '
'; - html += ''; + html += ''; html += '%'; html += ''; html += '
'; diff --git a/Application/Admin/View/PromoteGameRatio/lists.html b/Application/Admin/View/PromoteGameRatio/lists.html index a9cb1d8f5..5d0461650 100644 --- a/Application/Admin/View/PromoteGameRatio/lists.html +++ b/Application/Admin/View/PromoteGameRatio/lists.html @@ -72,6 +72,21 @@
+
+ +
+
+ +
+
+ +
-
+
+ + + + + +
+
+ +
+
+ +
+
+ 搜索 + 返回 +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 推广公司推广员账号自动审核
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 @@
+
+ +
+ + + 已添加添加至常用设置 +
+ + + + + + if(C('COLOR_STYLE')=='blue_color') echo ' + + '; + + + + + + + + diff --git a/Application/Admin/View/StatementMangement/rewardManageSave.html b/Application/Admin/View/StatementMangement/rewardManageSave.html new file mode 100644 index 000000000..1cbf4feba --- /dev/null +++ b/Application/Admin/View/StatementMangement/rewardManageSave.html @@ -0,0 +1,186 @@ + + + + + + + + + + + + + +
+
奖惩编辑
+
    + +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • + + $account):?> + + + + + + + + + +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
+
+ + + +
+ + + \ No newline at end of file diff --git a/Application/Common/Common/function.php b/Application/Common/Common/function.php index 5f064edc8..a104b86c1 100644 --- a/Application/Common/Common/function.php +++ b/Application/Common/Common/function.php @@ -1455,3 +1455,21 @@ function getPromoteWithdrawSettlementType($type = null) return Admin\Model\WithdrawModel::$settlementTypeList; } } + +//获取推广公司列表 +function getPromoteCompanys() +{ + return M('promote_company', 'tab_')->field('id, company_name')->where(['status' => 1])->select(); +} + +function getPromoteCompanyName($companyId) +{ + $companyName = M('promote_company', 'tab_')->where(['id' => $companyId])->getField('company_name'); + + return $companyName ?? '未知'; +} + +function getGameTypes() +{ + return M('game_type', 'tab_')->field('id, type_name')->where(['status' => 1])->select(); +} \ No newline at end of file diff --git a/Data/update.sql b/Data/update.sql index 149fe0fee..c9e399ee7 100644 --- a/Data/update.sql +++ b/Data/update.sql @@ -1106,6 +1106,30 @@ ADD COLUMN `can_view_recharge` tinyint(1) NOT NULL default 0 COMMENT '是否显 ALTER TABLE `tab_cp_game_ratio` ADD COLUMN `instanceof` tinyint(2) NOT NULL DEFAULT 1 COMMENT '运算符(1:>= ; 2:>)' AFTER `game_id`; +-- 2020-02-04 +ALTER TABLE `tab_promote` +ADD COLUMN `auto_review_withdraw_status` tinyint(3) NOT NULL DEFAULT 0 COMMENT '提现自动审核状态:0-关闭 1-开启'; +ALTER TABLE `tab_promote` +ADD COLUMN `auto_review_withdraw_updated_time` int(10) NOT NULL DEFAULT 0 COMMENT '提现自动审核状态更新时间'; +ALTER TABLE `tab_promote` +ADD INDEX `auto_review_withdraw_status`(`auto_review_withdraw_status`) USING BTREE; + +-- 奖罚记录 +CREATE TABLE `tab_reward_record` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `reward_type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '奖罚类型 1奖励 2惩罚', + `company_type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '公司类型 1上游公司 2下游公司', + `company_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '公司ID 当公司类型为上游CP公司时,展示合作方管理下的公司,反之展示推广公司管理下的公司', + `accounts` json NOT NULL, + `relation_game_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '游戏id', + `content` varchar(1000) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '事件内容', + `money` double(11,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '金额', + `remark` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '备注', + `create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `creater_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + CREATE TABLE `tab_company_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `partner` varchar(60) NOT NULL COMMENT '合作方名称',