Pro/application/agent/controller/Report.php

4162 lines
191 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\agent\controller;
use pay\Usdt;
use pay\Ybf;
use \think\Controller;
use think\Lang;
use \think\Session;
use \think\Request;
use \think\Db;
use \think\paginator\driver\Bootstrap;
class Report Extends Common{
// 上下水报表
public function agent(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 验证数据
$curUser = Session::get('user_info');
if ($curUser['account_type'] == 1 || $curUser['account_type'] == 2) {
return $lang['illegal_request'];
}
$get = Request::instance()->get();
$query = http_build_query($get);
// 接收参数
$startDate = trim(Request::instance()->get('startDate'));
$endDate = trim(Request::instance()->get('endDate'));
$username = trim(Request::instance()->get('username'));
$game_id = intval(Request::instance()->get('game_id'));
$export = intval(Request::instance()->get('export'));
// 转换日期时间默认今天07:00:00 ~ 明天06:59:59
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d') . ' 07:00:00');
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 06:59:59');
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
}
// 查询用户
if (!empty($username)) {
$userWhere = array();
$userWhere['username'] = $username;
if ($curUser['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('LIKE', '%,' . $curUser['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('LIKE', $curUser['id'] . ',%');
}
$user_info = Db::connect('DB2')->name('user')->where($userWhere)->find();
}
if (empty($user_info)) $user_info = $curUser;
$topAgentId = explode(',',$curUser['agent_parent_id_path'])[0];
$topAgent = Db::name('user')->where('id',$topAgentId)->find();
// 数据查询条件
$dataWhere = array();
$dataWhere['create_time'] = array('between', [$startTime, $endTime]);
if ($game_id > 0) $dataWhere['game_id'] = $game_id;
// 找出所有的下注会员
$where = array();
$where['is_delete'] = 0;
$where['id|agent_parent_id'] = $user_info['id'];
$list = Db::connect('DB2')->name('user')->where($where)->order('id asc')->select();
foreach ($list as &$child) {
$child['type_xima_msg'] = $child['type_xima'] == 2 ? "单边洗码" : "双边洗码";
$child['ximalv'] = $child['agent_ximalv'] . ' / ' . $child['agent_ximalv_dt'] . ' / ' . $child['agent_ximalv_nn'];
$amountAndWinTotalWhere = $dataWhere;
$amountAndWinTotalWhere['status'] = 1;
if($child['agent_parent_id'] > 0){
if($child['agent'] == 1){
$amountAndWinTotalWhere['agent_parent_id_path'] = array('LIKE','%,'.$child['id'].',%');
}else{
$amountAndWinTotalWhere['user_id'] = $child['id'];
}
}else{
if($child['agent'] == 1){
$amountAndWinTotalWhere['agent_parent_id_path'] = array('LIKE',$child['id'].',%');
}else{
$amountAndWinTotalWhere['user_id'] = $child['id'];
}
}
$child['amount'] = Db::connect('DB2')->name('bet')->where($amountAndWinTotalWhere)->sum('amount');
$child['win_total'] = Db::connect('DB2')->name('bet')->where($amountAndWinTotalWhere)->sum('win_total');
// 棋牌游戏
$qpWhere = [];
$qpWhere['createTime'] = array('between', [$startTime, $endTime]);
$qpWhere['userName'] = $child['username'];
$child['qp_amount'] = Db::connect('DB2')->name('game_log')->where($qpWhere)->sum('allBet');
$child['qp_win_total'] = Db::connect('DB2')->name('game_log')->where($qpWhere)->sum('gold');
// 查询洗码
$ximaWhere = $dataWhere;
$ximaWhere['status'] = 1;
$ximaWhere['user_id'] = $child['id'];
$child['ximaliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('ximaliang');
$child['maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('maliang');
$child['share_maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('share_maliang');
$child['cs'] = Db::connect('DB2')->name('cs')->where($ximaWhere)->sum('share_amount');
$child['income_maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('net_maliang');
$child['income_cs'] = Db::connect('DB2')->name('cs')->where($ximaWhere)->sum('net_cs');
// 查询返水
$rebateWhere = $dataWhere;
$rebateWhere['game_type'] = 1;
$rebateWhere['status'] = 1;
$rebateWhere['user_id'] = $child['id'];
$child['rebate_amount'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->sum('rebate_amount');
$child['rebate_amount_actual'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->sum('rebate_amount_actual');
// 棋牌返水
$rebateWhere['game_type'] = 2;
$child['qp_rebate_amount'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->sum('rebate_amount');
$child['qp_rebate_amount_actual'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->sum('rebate_amount_actual');
// 代理收益
if ($child['agent'] == 1) {
// 应收应付上级
$child['income_up'] = 0;
if ($child['agent_parent_id'] > 0) {
$upWhere = $dataWhere;
$upWhere['status'] = 1;
$upWhere['user_id'] = array('<', $child['id']);
if ($child['agent_parent_id'] > 0) {
$upWhere['agent_parent_id_path'] = array('LIKE', '%,' . $child['id'] . ',%');
} else {
$upWhere['agent_parent_id_path'] = array('LIKE', $child['id'] . ',%');
}
$child['income_up'] = Db::connect('DB2')->name('xima')->where($upWhere)->sum('net_maliang');
$child['income_up'] -= Db::connect('DB2')->name('xima')->where($upWhere)->sum('share_maliang');
$child['income_up'] += Db::connect('DB2')->name('cs')->where($upWhere)->sum('net_cs');
$child['income_up'] -= $child['rebate_amount'];
$child['income_up'] = $child['income_up'] * (-1);
// 收益
$child['income'] = $child['income_cs'] + $child['income_maliang'] - $child['share_maliang'] + $child['rebate_amount_actual'];
// 应收应付下级
$child['income_down'] = $child['win_total'] + $child['rebate_amount']-$child['rebate_amount_actual'];
$child['income_down'] += $child['qp_rebate_amount']-$child['qp_rebate_amount_actual'];
$child['income_down'] = to_number($child['income_down']);
$child['rebate_amount'] = $child['rebate_amount_actual'];
$child['qp_rebate_amount'] = $child['qp_rebate_amount_actual'];
}else{
$child['rebate_amount'] -= $child['rebate_amount_actual'];
$child['rebate_amount'] = to_number($child['rebate_amount']);
$child['qp_rebate_amount'] -= $child['qp_rebate_amount_actual'];
$child['qp_rebate_amount'] = to_number($child['qp_rebate_amount']);
// 收益
$child['income'] = $child['income_cs'] + $child['income_maliang'] - $child['share_maliang'] + $child['rebate_amount'];
// 应收应付下级
$child['income_down'] = $child['income'];
}
} else {
// 会员收益
$child['income'] = $child['win_total'] + $child['income_maliang']+$child['rebate_amount'] + $child['qp_win_total'];
$child['income_up'] = $child['income'];
$child['income_down'] = 0;
}
// 格式化
$child['amount'] = number_format($child['amount'], 2, '.', '');
$child['win_total'] = number_format($child['win_total'], 2, '.', '');
$child['ximaliang'] = number_format($child['ximaliang'], 2, '.', '');
$child['maliang'] = number_format($child['maliang'], 2, '.', '');
$child['share_maliang'] = number_format($child['share_maliang'], 2, '.', '');
$child['cs'] = number_format($child['cs'], 2, '.', '');
$child['income_maliang'] = number_format($child['income_maliang'], 2, '.', '');
$child['income_cs'] = number_format($child['income_cs'], 2, '.', '');
$child['income'] = number_format($child['income'], 2, '.', '');
$child['income_up'] = number_format($child['income_up'], 2, '.', '');
$child['income_down'] = number_format($child['income_down'], 2, '.', '');
$child['rebate_amount'] = number_format($child['rebate_amount'], 2, '.', '');
if ($child['agent'] == 0) {
// 格式化
$child['cs'] = '-';
$child['share_maliang'] = '-';
$child['income_cs'] = '-';
}
}
// 导出excel列表
if($export == 1){
if($list){
//重新组合
$excelData = array();
foreach($list AS $k => $v){
$excelData[$k][] = $v['agent'] == 1 ? $lang['agent'] : $lang['member'];
$excelData[$k][] = $v['nickname'];
$excelData[$k][] = $v['username'];
$excelData[$k][] = $v['money'];
$excelData[$k][] = $v['amount'];
$excelData[$k][] = $v['win_total'];
$excelData[$k][] = $v['income_down'];
$excelData[$k][] = $v['income_up'];
$excelData[$k][] = $v['ximaliang'];
$excelData[$k][] = $v['maliang'];
$excelData[$k][] = $v['share_maliang'];
$excelData[$k][] = $v['income_maliang'];
$excelData[$k][] = $v['income_cs'];
if($topAgent['agent_type'] == 1){
$excelData[$k][] = $v['rebate_amount'];
}
$excelData[$k][] = $v['income'];
$excelData[$k][] = $v['ximalv'];
$excelData[$k][] = $v['agent_cs'];
if($topAgent['agent_type'] == 1){
$excelData[$k][] = $v['rebate_rate'];
}
}
$title = array(
$lang['member_type'],
$lang['nickname'],
$lang['username'],
$lang['account_balance'],
$lang['all_bet'],
$lang['all_win'],
$lang['collect_pay_money_subordinates'],
$lang['collect_pay_money_superiors'],
$lang['code_washing_amount'],
$lang['code_amount'],
$lang['share_code_amount'],
$lang['code_income'],
$lang['share_income'],
$lang['all_income'],
$lang['baccarat'].'/'.$lang['dt'].'/'.$lang['cow'].'/'.$lang['three_card'].' '.$lang['washing_rate'].'%',
$lang['share_ratio'].'%'
);
if($topAgent['agent_type'] == 1){
$title[] = $lang['rebate_rate'];
}
if($startDate && $endDate){
$this->exportExcelCore($excelData, $lang['agent_daily_statement'].'-'.$startDate."_".$endDate, $title);
}else{
$this->exportExcelCore($excelData, $lang['agent_daily_statement'], $title);
}
exit($lang['already_exp']);
}else{
exit($lang['no_exp']);
}
}
// 渲染参数和模板
$this->assign('get',$get);
$this->assign('query',$query);
$this->assign('list',$list);
$this->assign('user_info',$user_info);
$this->assign('top_agent',$topAgent);
return $this->fetch();
}
// 会员日结表
public function player(){
$is_allow = Session::get('user_info');
if($is_allow['account_type'] == 1 || $is_allow['account_type'] == 2){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$game_id = Request::instance()->get('game_id');
$agent_id = Request::instance()->get('agent_id');
$is_under = Request::instance()->get('is_under');
$export = Request::instance()->get('export');
if($agent_id > 0){
// 获取查询代理信息
$user_info = Db::connect('DB2')->name('user')->where('id',$agent_id)->find();
}else{
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
}
if(!$is_under){
$is_under = 1;
$get['is_under'] = 1;
$this->assign('get',$get);
}
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 数据查询条件
$dataWhere = array();
$dataWhere['create_time'] = array('between',[$startTime,$endTime]);
if($game_id > 0){
$dataWhere['game_id'] = $game_id;
}
// 找出所有的下注会员
$user_bet = Db::connect('DB2')->name('bet')->where($dataWhere)->where(array('status' => 1))->group('user_id')->field('user_id')->select();
$user_bet = array_column($user_bet,'user_id');
$user_bet = array_unique($user_bet);
// 拼装搜索条件
$where = array();
$where['agent'] = 0;
$where['is_delete'] = 0;
if($username){
$where['username'] = $username;
}
if($is_under == 1){
if($user_info['agent_parent_id'] > 0){
// 非总代
$where['agent_parent_id_path'] = array('like','%,'.$user_info['id'].',%');
}else{
// 总代
$where['agent_parent_id_path'] = array('like',$user_info['id'].',%');
}
}else{
$where['agent_parent_id'] = $user_info['id'];
}
// 汇总数据
$totalData = array();
$totalData['count'] = 0;
$totalData['amount'] = 0;
$totalData['win_total'] = 0;
$totalData['ximaliang'] = 0;
$totalData['maliang'] = 0;
$totalData['income'] = 0;
$totalData['maliang_unbalanced'] = 0;
// 查询代理及数据统计
$player_list = Db::connect('DB2')->name('user')->where($where)->order('id asc')->whereIn('id',$user_bet)->select();
foreach($player_list as $k => $v){
// 循环获取数据
$v['count'] = 0;
$v['amount'] = 0;
$v['win_total'] = 0;
$dataWhere['user_id'] = $v['id'];
// 总笔数
$v['count'] = Db::connect('DB2')->name('bet')->where($dataWhere)->where(array('status' => 1))->count();
// 总押
$v['amount'] = Db::connect('DB2')->name('bet')->where($dataWhere)->where(array('status' => 1))->sum('amount');
// 总赢
$v['win_total'] = Db::connect('DB2')->name('bet')->where($dataWhere)->where(array('status' => 1))->sum('win_total');
// 洗码量
$dataWhere['user_id'] = $v['id'];
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where($dataWhere)->sum('ximaliang');
// 洗码费
$v['maliang'] = Db::connect('DB2')->name('xima')->where($dataWhere)->sum('net_maliang');
// 总收益(洗码 + 总赢)
$v['income'] = $v['maliang'] + $v['win_total'];
// 未结码量
$v['maliang_unbalanced'] = Db::connect('DB2')->name('xima')->where(['user_id'=>$v['id'],'is_checkout'=>0])->sum('net_maliang');
// 台类型
if($game_id == 1){
$v['table_name'] = '百家乐';
}elseif($game_id == 2){
$v['table_name'] = '龙虎';
}elseif($game_id == 4){
$v['table_name'] = '牛牛';
}elseif($game_id == 5){
$v['table_name'] = '三宝';
}else{
$v['table_name'] = '全部';
}
$v['ximalv'] = $v['agent_ximalv'].' / '.$v['agent_ximalv_dt'].' / '.$v['agent_ximalv_nn'].' / '.$v['agent_ximalv_tc'];
if($v['type_xima'] == 2){
$v['type_xima_msg'] = '单边洗码';
}else{
$v['type_xima_msg'] = '双边洗码';
}
// 格式化数据
$v['count'] = round($v['count'],2);
$v['amount'] = round($v['amount'],2);
$v['win_total'] = round($v['win_total'],2);
$v['ximaliang'] = round($v['ximaliang'],2);
$v['maliang'] = round($v['maliang'],2);
$v['maliang_unbalanced'] = round($v['maliang_unbalanced'],2);
$v['income'] = round($v['income'],2);
$v['money'] = round($v['money'],2);
$player_list[$k] = $v;
// 汇总数据
$totalData['count'] += $v['count'];
$totalData['amount'] += $v['amount'];
$totalData['win_total'] += $v['win_total'];
$totalData['ximaliang'] += $v['ximaliang'];
$totalData['maliang'] += $v['maliang'];
$totalData['income'] += $v['income'];
$totalData['maliang_unbalanced'] += $v['maliang_unbalanced'];
}
// 格式化数据
$totalData['count'] = round($totalData['count'],2);
$totalData['amount'] = round($totalData['amount'],2);
$totalData['win_total'] = round($totalData['win_total'],2);
$totalData['ximaliang'] = round($totalData['ximaliang'],2);
$totalData['maliang'] = round($totalData['maliang'],2);
$totalData['income'] = round($totalData['income'],2);
$totalData['maliang_unbalanced'] = round($totalData['maliang_unbalanced'],2);
// 导出excel列表
if($export == 1){
if($player_list){
//重新组合
$excelData = array();
foreach($player_list AS $k => $v){
$excelData[$k][0] = $v['table_name'];
$excelData[$k][1] = $v['nickname'];
$excelData[$k][2] = $v['username'];
$excelData[$k][3] = $v['money'];
$excelData[$k][4] = $v['count'];
$excelData[$k][5] = $v['amount'];
$excelData[$k][6] = $v['win_total'];
$excelData[$k][7] = $v['ximaliang'];
$excelData[$k][8] = $v['type_xima_msg'];
$excelData[$k][9] = $v['ximalv'];
$excelData[$k][10] = $v['maliang'];
$excelData[$k][11] = $v['income'];
$excelData[$k][12] = $v['maliang_unbalanced'];
}
$title = array('台类型','名称','账号','当前金额','下注次数','下注总额','总赢','洗码量','洗码方式','百/龙/牛牛/三宝洗码率%','洗码费','总收益','未结码量');
if($startDate && $endDate){
$this->exportExcelCore($excelData, '会员日结表-'.$startDate."".$endDate, $title);
}else{
$this->exportExcelCore($excelData, '会员日结表', $title);
}
exit('已导出支持列表,请不要重复刷新该页面!');
}else{
exit('没有可以导出的列表!');
}
}
// 渲染参数和模板
$this->assign('player_list',$player_list);
$this->assign('totalData',$totalData);
$this->assign('user_info',$user_info);
return $this->fetch();
}
// 台桌游戏查询
public function number_tab(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$table_id = Request::instance()->get('table_id');
$game_id = Request::instance()->get('game_id');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between',[$startTime,$endTime]);
if($table_id > 0){
$where['table_id'] = $table_id;
}
if($game_id > 0){
$where['game_id'] = $game_id;
$this->assign('get',$get);
}else{
$where['game_id'] = 1;
$game_id = 1;
$get['game_id'] = 1;
$this->assign('get',$get);
}
// 汇总
$total['win_total'] = 0;
// 百家乐
$bet = array();
if($game_id == 1){
if($user_info['agent_parent_id'] > 0){
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', '%,'.$user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}else{
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', $user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}
foreach($bet as $k => $v){
$betUser = Db::name('user')->where('id',$v['user_id'])->find();
$v['parent_username'] = $betUser['agent_parent_username'];
$v['username'] = $betUser['username'];
$v['nickname'] = $betUser['nickname'];
// 下注详情
$betDetail = '';
if($v['banker_amount'] > 0){
$betDetail .= ' '.$lang['banker'].':'.round($v['banker_amount'],2);
}
if($v['player_amount'] > 0){
$betDetail .= ' '.$lang['player'].':'.round($v['player_amount'],2);
}
if($v['tie_amount'] > 0){
$betDetail .= ' '.$lang['tie'].':'.round($v['tie_amount'],2);
}
if($v['banker_pair_amount'] > 0){
$betDetail .= ' '.$lang['banker_pair'].':'.round($v['banker_pair_amount'],2);
}
if($v['player_pair_amount'] > 0){
$betDetail .= ' '.$lang['player_pair'].':'.round($v['player_pair_amount'],2);
}
$v['bet_detail'] = $betDetail;
// 信息组装
if($v['result'] == 1){
$v['result'] = $lang['banker'];
$v['color'] = 'red';
}elseif($v['result'] == 2){
$v['result'] = $lang['player'];
$v['color'] = 'blue';
}elseif($v['result'] == 3){
$v['result'] = $lang['tie'];
$v['color'] = 'green';
}else{
$v['result'] = '-';
$v['color'] = '';
}
if($v['pair'] == 1){
$v['result'] .= '-'.$lang['banker_pair'];
}elseif($v['pair'] == 2){
$v['result'] .= '-'.$lang['player_pair'];
}elseif($v['pair'] == 3){
$v['result'] .= '-'.$lang['banker_player_pair'];
}
// 铺
$number_tab = Db::connect('DB2')->name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['end_time'] = date('Y-m-d H:i:s',$number_tab['end_time']);
if($number_tab['result_before_edit'] == 1){
$v['result_before_edit'] = $lang['banker'];
$v['color_result_before_edit'] = 'red';
}elseif($number_tab['result_before_edit'] == 2){
$v['result_before_edit'] = $lang['player'];
$v['color_result_before_edit'] = 'blue';
}elseif($number_tab['result'] == 3){
$v['result_before_edit'] = $lang['tie'];
$v['color_result_before_edit'] = 'green';
}else{
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
}
if($number_tab['pair_before_edit'] == 1){
$v['result_before_edit'] .= '-'.$lang['banker_pair'];
}elseif($number_tab['pair_before_edit'] == 2){
$v['result_before_edit'] .= '-'.$lang['player_pair'];
}elseif($number_tab['pair_before_edit'] == 3){
$v['result_before_edit'] .= '-'.$lang['banker_player_pair'];
}
// 是否开奖
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
}else{
$v['is_end'] = $lang['unlicensed'];
}
// 格式化
$v['win_total'] = round($v['win_total'],2);
if($v['win_total'] < 0){
$v['color_win_total'] = 'red';
}else{
$v['color_win_total'] = '';
}
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$bet[$k] = $v;
}
}elseif($game_id == 2){
// 龙虎
if($user_info['agent_parent_id'] > 0){
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', '%,'.$user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}else{
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', $user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}
foreach($bet as $k => $v){
$betUser = Db::name('user')->where('id',$v['user_id'])->find();
$v['parent_username'] = $betUser['agent_parent_username'];
$v['username'] = $betUser['username'];
$v['nickname'] = $betUser['nickname'];
// 下注详情
$betDetail = '';
if($v['banker_amount'] > 0){
$betDetail .= ' '.$lang['dragon'].':'.round($v['banker_amount'],2);
}
if($v['player_amount'] > 0){
$betDetail .= ' '.$lang['tiger'].':'.round($v['player_amount'],2);
}
if($v['tie_amount'] > 0){
$betDetail .= ' '.$lang['tie'].':'.round($v['tie_amount'],2);
}
$v['bet_detail'] = $betDetail;
// 信息组装
if($v['result'] == 1){
$v['result'] = $lang['dragon'];
$v['color'] = 'red';
}elseif($v['result'] == 2){
$v['result'] = $lang['tiger'];
$v['color'] = 'blue';
}elseif($v['result'] == 3){
$v['result'] = $lang['tie'];
$v['color'] = 'green';
}else{
$v['result'] = '-';
$v['color'] = '';
}
// 铺
$number_tab = Db::connect('DB2')->name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['end_time'] = date('Y-m-d H:i:s',$number_tab['end_time']);
if($number_tab['result_before_edit'] == 1){
$v['result_before_edit'] = $lang['dragon'];
$v['color_result_before_edit'] = 'red';
}elseif($number_tab['result_before_edit'] == 2){
$v['result_before_edit'] = $lang['tiger'];
$v['color_result_before_edit'] = 'blue';
}elseif($number_tab['result'] == 3){
$v['result_before_edit'] = $lang['tie'];
$v['color_result_before_edit'] = 'green';
}else{
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
}
// 是否开奖
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
}else{
$v['is_end'] = $lang['unlicensed'];
}
// 格式化
$v['win_total'] = round($v['win_total'],2);
if($v['win_total'] < 0){
$v['color_win_total'] = 'red';
}else{
$v['color_win_total'] = '';
}
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$bet[$k] = $v;
}
}elseif($game_id == 4 || $game_id == 5){
// 牛牛
if($user_info['agent_parent_id'] > 0){
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', '%,'.$user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}else{
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', $user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}
foreach($bet as $k => $v){
$betUser = Db::connect('DB2')->name('user')->where('id',$v['user_id'])->find();
$v['parent_username'] = $betUser['agent_parent_username'];
$v['username'] = $betUser['username'];
$v['nickname'] = $betUser['nickname'];
if($v['is_end'] == 1){
$result = '';
$v['color'] = '';
if($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result .= $lang['banker'].' &nbsp;&nbsp;';
$v['color'] = 'red';
}
if($v['win_player_1'] == 1){
$result .= $lang['player_1'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
if($v['win_player_2'] == 1){
$result .= $lang['player_2'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
if($v['win_player_3'] == 1){
$result .= $lang['player_3'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
$v['result'] = $result;
$result_detail = '(';
$result_detail .= $lang['player_1'].resultNn($v['result_player_1']).'&nbsp;&nbsp;';
$result_detail .= $lang['player_2'].resultNn($v['result_player_2']).'&nbsp;&nbsp;';
$result_detail .= $lang['player_3'].resultNn($v['result_player_3']).'&nbsp;&nbsp;';
$result_detail .= $lang['banker'].resultNn($v['result_banker']).'&nbsp;&nbsp;';
$result_detail .= ')';
$v['result'] .= $result_detail;
}else{
$v['result'] = '-';
$v['color'] = '';
}
// 下注详情
$v['bet_detail'] = '';
if($v['amount_player_1'] > 0){
$v['bet_detail'] .= $lang['player_1_flat'].round($v['amount_player_1'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_times'] > 0){
$v['bet_detail'] .= $lang['player_1_double'].round($v['amount_player_1_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_1_flat'].round($v['amount_player_1_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_1_double'].round($v['amount_player_1_banker_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2'] > 0){
$v['bet_detail'] .= $lang['player_2_flat'].round($v['amount_player_2'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_times'] > 0){
$v['bet_detail'] .= $lang['player_2_double'].round($v['amount_player_2_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_2_flat'].round($v['amount_player_2_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_2_double'].round($v['amount_player_2_banker_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3'] > 0){
$v['bet_detail'] .= $lang['player_3_flat'].round($v['amount_player_3'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_times'] > 0){
$v['bet_detail'] .= $lang['player_3_double'].round($v['amount_player_3_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_3_flat'].round($v['amount_player_3_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_3_double'].round($v['amount_player_3_banker_times'],2).'&nbsp;&nbsp;';
}
// 铺
$number_tab = Db::connect('DB2')->name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['end_time'] = date('Y-m-d H:i:s',$number_tab['end_time']);
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
// 是否开奖
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
}else{
$v['is_end'] = $lang['unlicensed'];
}
// 格式化
$v['win_total'] = round($v['win_total'],2);
if($v['win_total'] < 0){
$v['color_win_total'] = 'red';
}else{
$v['color_win_total'] = '';
}
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$bet[$k] = $v;
}
}else if($game_id == 6){
if($user_info['agent_parent_id'] > 0){
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', '%,'.$user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}else{
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', $user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}
foreach($bet as $k => $v) {
$betUser = Db::connect('DB2')->name('user')->where('id', $v['user_id'])->find();
$v['parent_username'] = $betUser['agent_parent_username'];
$v['username'] = $betUser['username'];
$v['nickname'] = $betUser['nickname'];
if($v['is_end'] == 1){
$v['color'] = '';
$v['result'] = $lang['toning_result_'.$v['toning_result']];
}else{
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['toning_amount'] = result_to_array($v['toning_amount']);
foreach ($v['toning_amount'] as $key => $val){
if($val > 0){
$v['bet_detail'] .= $lang[$key].':'.$val.'&nbsp;&nbsp;';
}
}
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
// 是否开奖
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
}else{
$v['is_end'] = $lang['unlicensed'];
}
// 格式化
$v['win_total'] = round($v['win_total'],2);
if($v['win_total'] < 0){
$v['color_win_total'] = 'red';
}else{
$v['color_win_total'] = '';
}
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$number_tab = Db::connect('DB2')->name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['end_time'] = date('Y-m-d H:i:s',$number_tab['end_time']);
$bet[$k] = $v;
}
}else if($game_id == 7){
if($user_info['agent_parent_id'] > 0){
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', '%,'.$user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}else{
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', $user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}
foreach($bet as $k => $v) {
$betUser = Db::connect('DB2')->name('user')->where('id', $v['user_id'])->find();
$v['parent_username'] = $betUser['agent_parent_username'];
$v['username'] = $betUser['username'];
$v['nickname'] = $betUser['nickname'];
if($v['is_end'] == 1){
$v['color'] = '';
$v['result'] = $v['dice_result'];
}else{
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['dice_amount'] = result_to_array($v['dice_amount']);
foreach ($v['dice_amount'] as $key => $val){
if($val > 0){
$v['bet_detail'] .= $lang['dice_'.$key].':'.$val.'&nbsp;&nbsp;';
}
}
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
// 是否开奖
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
}else{
$v['is_end'] = $lang['unlicensed'];
}
// 格式化
$v['win_total'] = round($v['win_total'],2);
if($v['win_total'] < 0){
$v['color_win_total'] = 'red';
}else{
$v['color_win_total'] = '';
}
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$number_tab = Db::connect('DB2')->name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['end_time'] = date('Y-m-d H:i:s',$number_tab['end_time']);
$bet[$k] = $v;
}
}else if($game_id == 8){
if($user_info['agent_parent_id'] > 0){
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', '%,'.$user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}else{
$bet = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', $user_info['id'].',%')->where($where)->where(array('status' => 1))->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}
foreach($bet as $k => $v) {
$betUser = Db::connect('DB2')->name('user')->where('id', $v['user_id'])->find();
$v['parent_username'] = $betUser['agent_parent_username'];
$v['username'] = $betUser['username'];
$v['nickname'] = $betUser['nickname'];
if($v['is_end'] == 1){
$v['color'] = '';
$v['result'] = $v['roulette_result'];
}else{
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['bet_detail'] = '';
$v['roulette_european_amount'] = result_to_array($v['roulette_european_amount']);
$v['roulette_french_amount'] = result_to_array($v['roulette_french_amount']);
if($v['roulette_european_amount']){
$v['bet_detail'] .= $lang['european'].'(';
foreach ($v['roulette_european_amount'] as $key => $val){
if($val > 0){
if(in_array($key,['low','high','odd','even','red','black','column_1','column_2','column_3','dozen_1','dozen_2','dozen_3'])){
$v['bet_detail'] .= $lang['roulette_'.$key].':'.$val.'&nbsp;&nbsp;';
}else{
$keyArray = explode("_", $key);
$v['bet_detail'] .= $lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']:'.$val.'&nbsp;&nbsp;';
}
}
}
$v['bet_detail'] .= ')<br/>';
}
if($v['roulette_french_amount']){
$v['bet_detail'] .= $lang['french'].'(';
foreach ($v['roulette_french_amount'] as $key => $val){
if($val > 0){
if(in_array($key,['zeroGame','neighborsOfZero','orphans','theThird'])){
$v['bet_detail'] .= $lang['roulette_'.$key].':'.$val.'&nbsp;&nbsp;';
}else{
$keyArray = explode("_", $key);
$v['bet_detail'] .= $lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']:'.$val.'&nbsp;&nbsp;';
}
}
}
$v['bet_detail'] .= ')';
}
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
// 是否开奖
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
}else{
$v['is_end'] = $lang['unlicensed'];
}
// 格式化
$v['win_total'] = round($v['win_total'],2);
if($v['win_total'] < 0){
$v['color_win_total'] = 'red';
}else{
$v['color_win_total'] = '';
}
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$number_tab = Db::connect('DB2')->name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['end_time'] = date('Y-m-d H:i:s',$number_tab['end_time']);
$bet[$k] = $v;
}
}
// 汇总信息
if($user_info['agent_parent_id'] > 0){
$total['win_total'] = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', '%,'.$user_info['id'].',%')->where($where)->where(array('status' => 1))->sum('win_total');
}else{
$total['win_total'] = Db::connect('DB2')->name('bet')->where('agent_parent_id_path', 'LIKE', $user_info['id'].',%')->where($where)->where(array('status' => 1))->sum('win_total');
}
// 获取所有的桌子
$table_list = Db::connect('DB2')->name('table')->where('game_id',$game_id)->select();
// 渲染参数和模板
$this->assign('table_list',$table_list);
$this->assign('bet',$bet);
$this->assign('user_info',$user_info);
$this->assign('total',$total);
return $this->fetch();
}
// 注单查询
public function bet(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1 || $user_info['account_type'] == 2){
return $lang['illegal_request'];
}
$topAgentId = explode(',',$user_info['agent_parent_id_path'])[0];
$topAgent = Db::name('user')->where('id',$topAgentId)->find();
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$game_id = Request::instance()->get('game_id');
$table_id = Request::instance()->get('table_id');
$username = Request::instance()->get('username');
$online = intval(Request::instance()->get('online'));
// 自动刷新设置
if($online == 1){
$refreshUrl = '/report/bet?username='.$username.'&game_id='.$game_id.'&online=1';
}else{
$refreshUrl = '/report/bet';
}
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between',[$startTime,$endTime]);
$where['status'] = 1;
if($table_id > 0 ) $where['table_id'] = $table_id;
if($game_id > 0 ){
$where['game_id'] = $game_id;
}else{
$game_id = 0;
$get['game_id'] = 0;
}
$total = array();
$total['amount'] = 0;
$total['win_total'] = 0;
$total['ximaliang'] = 0;
$total['maliang'] = 0;
$total['rebate_bet_amount'] = 0;
$total['rebate_amount'] = 0;
if($username){
$user = Db::connect('DB2')->name('user')->where(array('username' => $username))->find();
$agent_parent_id_path_arr = explode(',',$user['agent_parent_id_path']);
if(!in_array($user_info['id'],$agent_parent_id_path_arr)){
if($game_id > 0){
$table_list = Db::connect('DB2')->name('table')->where('game_id',$game_id)->select();
}else{
$table_list = Db::connect('DB2')->name('table')->select();
}
// 渲染参数和模板
$this->assign('get',$get);
$this->assign('query',$query);
$this->assign('table_list',$table_list);
$this->assign('bet',array());
$this->assign('user_info',$user_info);
$this->assign('total',$total);
$this->assign('online',$online);
$this->assign('refreshUrl',$refreshUrl);
return $this->fetch();
}else{
if($user['agent_parent_id'] > 0){
if($user['agent'] == 1){
$where['agent_parent_id_path'] = array('LIKE','%,'.$user['id'].',%');
}else{
$where['user_id'] = $user['id'];
}
}else{
if($user['agent'] == 1){
$where['agent_parent_id_path'] = array('LIKE',$user['id'].',%');
}else{
$where['user_id'] = $user['id'];
}
}
// 汇总信息
$total['amount'] = Db::connect('DB2')->name('bet')->where($where)->sum('amount');
$total['win_total'] = Db::connect('DB2')->name('bet')->where($where)->sum('win_total');
$ximaWhere = $where;
// if(isset($ximaWhere['user_id'])) unset($ximaWhere['user_id']);
// if(isset($ximaWhere['agent_parent_id_path'])) unset($ximaWhere['agent_parent_id_path']);
$total['ximaliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->where('user_id=bet_user_id')->sum('ximaliang');
$total['maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->where('user_id=bet_user_id')->sum('net_maliang');
$rebateWhere = $where;
$total['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->where('user_id=bet_user_id')->sum('amount');
$total['rebate_amount'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->where('user_id=bet_user_id')->sum('rebate_amount_actual');
}
}else{
if($user_info['agent_parent_id'] > 0){
if($user_info['agent'] == 1){
$where['agent_parent_id_path'] = array('LIKE','%,'.$user_info['id'].',%');
}else{
$where['user_id'] = $user_info['id'];
}
}else{
if($user_info['agent'] == 1){
$where['agent_parent_id_path'] = array('LIKE',$user_info['id'].',%');
}else{
$where['user_id'] = $user_info['id'];
}
}
// 汇总信息
$total['amount'] = Db::connect('DB2')->name('bet')->where($where)->sum('amount');
$total['win_total'] = Db::connect('DB2')->name('bet')->where($where)->sum('win_total');
$ximaWhere = $where;
// if(isset($ximaWhere['user_id'])) unset($ximaWhere['user_id']);
// if(isset($ximaWhere['agent_parent_id_path'])) unset($ximaWhere['agent_parent_id_path']);
$total['ximaliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->where('user_id=bet_user_id')->sum('ximaliang');
$total['maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->where('user_id=bet_user_id')->sum('net_maliang');
$rebateWhere = $where;
$total['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->where('user_id=bet_user_id')->sum('amount');
$total['rebate_amount'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->where('user_id=bet_user_id')->sum('rebate_amount_actual');
}
$this->assign('get',$get);
$this->assign('query',$query);
if($user_info['agent_parent_id'] > 0){
$bet = Db::connect('DB2')->name('bet')->where($where)->order('create_time DESC')->paginate(20,false,array('query'=>$get));
}else{
$bet = Db::connect('DB2')->name('bet')->where($where)->order('create_time desc')->paginate(20,false,array('query'=>$get));
}
if($game_id == 0)
{
foreach($bet as $k => $v){
$number_tab = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
// 返水
$v['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('amount');
$v['rebate_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('rebate_amount_actual');
$v['rebate_rate'] = Db::connect('DB2')->name('rebate')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('rebate_rate');
if(empty($v['rebate_bet_amount'])){
$v['rebate_rate'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('rebate_rate');
}
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
if($v['game_id'] == 1){
// 结果
if($number_tab['result_before_edit'] == 1){
$v['result_before_edit'] = $lang['banker'];
$v['result_before_color'] = 'red';
}elseif($number_tab['result_before_edit'] == 2){
$v['result_before_edit'] = $lang['player'];
$v['result_before_color'] = 'blue';
}elseif($number_tab['result_before_edit'] == 3){
$v['result_before_edit'] = $lang['tie'];
$v['result_before_color'] = 'green';
}else{
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
}
if($number_tab['pair_before_edit'] == 1){
$v['result_before_edit'] .= '-'.$lang['banker_pair'];
}elseif($number_tab['pair_before_edit'] == 2){
$v['result_before_edit'] .= '-'.$lang['player_pair'];
}elseif($number_tab['pair_before_edit'] == 3){
$v['result_before_edit'] .= '-'.$lang['banker_player_pair'];
}
if($number_tab['result'] == 1){
$v['result'] = $lang['banker'];
$v['color'] = 'red';
}elseif($number_tab['result'] == 2){
$v['result'] = $lang['player'];
$v['color'] = 'blue';
}elseif($number_tab['result'] == 3){
$v['result'] = $lang['tie'];
$v['color'] = 'green';
}else{
$v['result'] = '-';
$v['color'] = '';
}
if($number_tab['pair'] == 1){
$v['result'] .= '-'.$lang['banker_pair'];
}elseif($number_tab['pair'] == 2){
$v['result'] .= '-'.$lang['player_pair'];
}elseif($number_tab['pair'] == 3){
$v['result'] .= '-'.$lang['banker_player_pair'];
}
if($number_tab['luck_six'] == 2){
$v['result'] .= ','.$lang['luck_six'].'-2';
}else if($number_tab['luck_six'] == 3){
$v['result'] .= ','.$lang['luck_six'].'-3';
}
if($number_tab['big_small'] == 1){
$v['result'] .= ','.$lang['big'];
}else if($number_tab['big_small'] == 2){
$v['result'] .= ','.$lang['small'];
}
if($v['baccarat_type'] == 0){
$v['result'] .= "".$lang['commission']."";
}else if($v['baccarat_type'] == 1){
$v['result'] .= "".$lang['free_commission']."";
}
// 下注详情
$v['bet_detail'] = '';
if($v['banker_amount'] > 0){
$v['bet_detail'] .= $lang['banker'].round($v['banker_amount'],2).'&nbsp;&nbsp;';
}
if($v['player_amount'] > 0){
$v['bet_detail'] .= $lang['player'].round($v['player_amount'],2).'&nbsp;&nbsp;';
}
if($v['tie_amount'] > 0){
$v['bet_detail'] .= $lang['tie'].round($v['tie_amount'],2).'&nbsp;&nbsp;';
}
if($v['banker_pair_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['banker_pair'].round($v['banker_pair_amount'],2).'&nbsp;&nbsp;';
}
if($v['player_pair_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['player_pair'].round($v['player_pair_amount'],2).'&nbsp;&nbsp;';
}
if($v['luck_six_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['luck_six'].round($v['luck_six_amount'],2).'&nbsp;&nbsp;';
}
if($v['big_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['big'].round($v['big_amount'],2).'&nbsp;&nbsp;';
}
if($v['small_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['small'].round($v['small_amount'],2).'&nbsp;&nbsp;';
}
// 洗码量
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->sum('ximaliang');
//洗码率
$v['ximalv'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('ximalv');
if(empty($v['ximaliang'])){
// 不产生洗码量的时候 显示默认配置的系码率
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv');
}
// 注单码佣
$v['maliang'] = Db::connect('DB2')->name('xima')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('net_maliang');
}elseif($v['game_id'] == 2){
// 结果
if($number_tab['result_before_edit'] == 1){
$v['result_before_edit'] = $lang['dragon'];
$v['result_before_color'] = 'red';
}elseif($number_tab['result_before_edit'] == 2){
$v['result_before_edit'] = $lang['tiger'];
$v['result_before_color'] = 'blue';
}elseif($number_tab['result_before_edit'] == 3){
$v['result_before_edit'] = $lang['tie'];
$v['result_before_color'] = 'green';
}else{
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
}
if($number_tab['result'] == 1){
$v['result'] = $lang['dragon'];
$v['color'] = 'red';
}elseif($number_tab['result'] == 2){
$v['result'] = $lang['tiger'];
$v['color'] = 'blue';
}elseif($number_tab['result'] == 3){
$v['result'] = $lang['tie'];
$v['color'] = 'green';
}else{
$v['result'] = '-';
$v['color'] = '';
}
// 下注详情
$v['bet_detail'] = '';
if($v['banker_amount'] > 0){
$v['bet_detail'] .= $lang['dragon'].round($v['banker_amount'],2).'&nbsp;&nbsp;';
}
if($v['player_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['tiger'].round($v['player_amount'],2).'&nbsp;&nbsp;';
}
if($v['tie_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['tie'].round($v['tie_amount'],2).'&nbsp;&nbsp;';
}
// 洗码量
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->sum('ximaliang');
//洗码率
$v['ximalv'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('ximalv');
if(empty($v['ximaliang'])){
// 不产生洗码量的时候 显示默认配置的系码率
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_dt');
}
// 注单码佣
$v['maliang'] = Db::connect('DB2')->name('xima')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('net_maliang');
}elseif($v['game_id'] == 4 || $v['game_id'] == 5){
// 结果
$result = '';
$v['color'] = '';
if($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result .= $lang['banker'].' &nbsp;&nbsp;';
$v['color'] = 'red';
}
if($v['win_player_1'] == 1){
$result .= $lang['player_1'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
if($v['win_player_2'] == 1){
$result .= $lang['player_2'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
if($v['win_player_3'] == 1){
$result .= $lang['player_3'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
$v['result'] = $result;
$result_detail = '(';
$result_detail .= $lang['player_1'].resultNn($v['result_player_1']).'&nbsp;&nbsp;';
$result_detail .= $lang['player_2'].resultNn($v['result_player_2']).'&nbsp;&nbsp;';
$result_detail .= $lang['player_3'].resultNn($v['result_player_3']).'&nbsp;&nbsp;';
$result_detail .= $lang['banker'].resultNn($v['result_banker']).'&nbsp;&nbsp;';
$result_detail .= ')';
$v['result'] .= $result_detail;
// 下注详情
$v['bet_detail'] = '';
if($v['amount_player_1'] > 0){
$v['bet_detail'] .= $lang['player_1_flat'].round($v['amount_player_1'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_times'] > 0){
$v['bet_detail'] .= $lang['player_1_double'].round($v['amount_player_1_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_1_flat'].round($v['amount_player_1_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_1_double'].round($v['amount_player_1_banker_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2'] > 0){
$v['bet_detail'] .= $lang['player_2_flat'].round($v['amount_player_2'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_times'] > 0){
$v['bet_detail'] .= $lang['player_2_double'].round($v['amount_player_2_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_2_flat'].round($v['amount_player_2_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_2_double'].round($v['amount_player_2_banker_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3'] > 0){
$v['bet_detail'] .= $lang['player_3_flat'].round($v['amount_player_3'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_times'] > 0){
$v['bet_detail'] .= $lang['player_3_double'].round($v['amount_player_3_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_3_flat'].round($v['amount_player_3_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_3_double'].round($v['amount_player_3_banker_times'],2).'&nbsp;&nbsp;';
}
// 洗码量
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->sum('ximaliang');
//洗码率
$v['ximalv'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('ximalv');
if(empty($v['ximaliang'])){
// 不产生洗码量的时候 显示默认配置的系码率
if($v['game_id'] == 4){
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_nn');
}else if($v['game_id'] == 5){
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_tc');
}
}
// 注单码佣
$v['maliang'] = Db::connect('DB2')->name('xima')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('net_maliang');
}elseif($v['game_id'] == 6) {
if($v['is_end'] == 1){
$v['color'] = '';
$v['result'] = $lang['toning_result_'.$v['toning_result']];
}else{
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['toning_amount'] = result_to_array($v['toning_amount']);
foreach ($v['toning_amount'] as $key => $val){
if($val > 0){
$v['bet_detail'] .= $lang[$key].':'.$val.'&nbsp;&nbsp;';
}
}
$v['ximaliang'] = 0;
$v['ximalv'] = 0;
$v['maliang'] = 0;
}elseif($v['game_id'] == 7) {
if($v['is_end'] == 1){
$v['color'] = '';
$v['result'] = $v['dice_result'];
}else{
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['dice_amount'] = result_to_array($v['dice_amount']);
foreach ($v['dice_amount'] as $key => $val){
if($val > 0){
$v['bet_detail'] .= $lang['dice_'.$key].':'.$val.'&nbsp;&nbsp;';
}
}
$v['ximaliang'] = 0;
$v['ximalv'] = 0;
$v['maliang'] = 0;
}elseif($v['game_id'] == 8){
if($v['is_end'] == 1){
$v['color'] = '';
$v['result'] = $v['roulette_result'];
}else{
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['roulette_european_amount'] = result_to_array($v['roulette_european_amount']);
$v['roulette_french_amount'] = result_to_array($v['roulette_french_amount']);
if($v['roulette_european_amount']){
$v['bet_detail'] .= $lang['european'].'(';
foreach ($v['roulette_european_amount'] as $key => $val){
if($val > 0){
if(in_array($key,['low','high','odd','even','red','black','column_1','column_2','column_3','dozen_1','dozen_2','dozen_3'])){
$v['bet_detail'] .= $lang['roulette_'.$key].':'.$val.'&nbsp;&nbsp;';
}else{
$keyArray = explode("_", $key);
$v['bet_detail'] .= $lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']:'.$val.'&nbsp;&nbsp;';
}
}
}
$v['bet_detail'] .= ')';
}
if($v['roulette_french_amount']){
$v['bet_detail'] .= $lang['french'].'(';
foreach ($v['roulette_french_amount'] as $key => $val){
if($val > 0){
if(in_array($key,['zeroGame','neighborsOfZero','orphans','theThird'])){
$v['bet_detail'] .= $lang['roulette_'.$key].':'.$val.'&nbsp;&nbsp;';
}else{
$keyArray = explode("_", $key);
$v['bet_detail'] .= $lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']:'.$val.'&nbsp;&nbsp;';
}
}
}
$v['bet_detail'] .= ')';
}
$v['ximaliang'] = 0;
$v['ximalv'] = 0;
$v['maliang'] = 0;
}
// 结束状态
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
$v['is_end_color'] = 'red';
}else{
$v['is_end'] = $lang['unlicensed'];
$v['is_end_color'] = 'blue';
}
// 格式化数据
$v['win_total'] = round($v['win_total'],2);
$v['amount'] = round($v['amount'],2);
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['money'] = round($v['money_after_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$v['ximaliang'] = round($v['ximaliang'],2);
$v['maliang'] = round($v['maliang'],2);
$v['ximalv'] = round($v['ximalv'],2);
$bet[$k] = $v;
}
}elseif($game_id == 1){
foreach($bet as $k => $v){
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
// 信息组装
$number_tab = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
// 返水
$v['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('amount');
$v['rebate_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('rebate_amount_actual');
$v['rebate_rate'] = Db::connect('DB2')->name('rebate')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('rebate_rate');
if(empty($v['rebate_bet_amount'])){
$v['rebate_rate'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('rebate_rate');
}
if($number_tab['result_before_edit'] == 1){
$v['result_before_edit'] = $lang['banker'];
$v['result_before_color'] = 'red';
}elseif($number_tab['result_before_edit'] == 2){
$v['result_before_edit'] = $lang['player'];
$v['result_before_color'] = 'blue';
}elseif($number_tab['result_before_edit'] == 3){
$v['result_before_edit'] = $lang['tie'];
$v['result_before_color'] = 'green';
}else{
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
}
if($number_tab['pair_before_edit'] == 1){
$v['result_before_edit'] .= '-'.$lang['banker_pair'];
}elseif($number_tab['pair_before_edit'] == 2){
$v['result_before_edit'] .= '-'.$lang['player_pair'];
}elseif($number_tab['pair_before_edit'] == 3){
$v['result_before_edit'] .= '-'.$lang['banker_player_pair'];
}
// 结果
if($number_tab['result'] == 1){
$v['result'] = $lang['banker'];
$v['color'] = 'red';
}elseif($number_tab['result'] == 2){
$v['result'] = $lang['player'];
$v['color'] = 'blue';
}elseif($number_tab['result'] == 3){
$v['result'] = $lang['tie'];
$v['color'] = 'green';
}else{
$v['result'] = '-';
$v['color'] = '';
}
if($number_tab['pair'] == 1){
$v['result'] .= '-'.$lang['banker_pair'];
}elseif($number_tab['pair'] == 2){
$v['result'] .= '-'.$lang['player_pair'];
}elseif($number_tab['pair'] == 3){
$v['result'] .= '-'.$lang['banker_player_pair'];
}
if($number_tab['luck_six'] == 2){
$v['result'] .= ','.$lang['luck_six'].'-2';
}else if($number_tab['luck_six'] == 3){
$v['result'] .= ','.$lang['luck_six'].'-3';
}
if($number_tab['big_small'] == 1){
$v['result'] .= ','.$lang['big'];
}else if($number_tab['big_small'] == 2){
$v['result'] .= ','.$lang['small'];
}
if($v['baccarat_type'] == 0){
$v['result'] .= "".$lang['commission']."";
}else if($v['baccarat_type'] == 1){
$v['result'] .= "".$lang['free_commission']."";
}
// 下注详情
$v['bet_detail'] = '';
if($v['banker_amount'] > 0){
$v['bet_detail'] .= $lang['banker'].round($v['banker_amount'],2).'&nbsp;&nbsp;';
}
if($v['player_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['player'].round($v['player_amount'],2).'&nbsp;&nbsp;';
}
if($v['tie_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['tie'].round($v['tie_amount'],2).'&nbsp;&nbsp;';
}
if($v['banker_pair_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['banker_pair'].round($v['banker_pair_amount'],2).'&nbsp;&nbsp;';
}
if($v['player_pair_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['player_pair'].round($v['player_pair_amount'],2).'&nbsp;&nbsp;';
}
if($v['luck_six_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['luck_six'].round($v['luck_six_amount'],2).'&nbsp;&nbsp;';
}
if($v['big_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['big'].round($v['big_amount'],2).'&nbsp;&nbsp;';
}
if($v['small_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['small'].round($v['small_amount'],2).'&nbsp;&nbsp;';
}
// 洗码量
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->sum('ximaliang');
//洗码率
$v['ximalv'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('ximalv');
if(empty($v['ximaliang'])){
// 不产生洗码量的时候 显示默认配置的系码率
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv');
}
// 注单码佣
$v['maliang'] = Db::connect('DB2')->name('xima')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('net_maliang');
// 结束状态
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
$v['is_end_color'] = 'red';
}else{
$v['is_end'] = $lang['unlicensed'];
$v['is_end_color'] = 'blue';
}
// 格式化数据
$v['win_total'] = round($v['win_total'],2);
$v['amount'] = round($v['amount'],2);
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['money'] = round($v['money_after_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$v['ximaliang'] = round($v['ximaliang'],2);
$v['maliang'] = round($v['maliang'],2);
$v['ximalv'] = round($v['ximalv'],2);
$bet[$k] = $v;
}
}elseif($game_id == 2){
foreach($bet as $k => $v){
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
// 信息组装
$number_tab = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
$bet_user = Db::connect('DB2')->name('user')->where('id',$v['user_id'])->find();
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
// 返水
$v['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('amount');
$v['rebate_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('rebate_amount_actual');
$v['rebate_rate'] = Db::connect('DB2')->name('rebate')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('rebate_rate');
if(empty($v['rebate_bet_amount'])){
$v['rebate_rate'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('rebate_rate');
}
if($number_tab['result_before_edit'] == 1){
$v['result_before_edit'] = $lang['dragon'];
$v['result_before_color'] = 'red';
}elseif($number_tab['result_before_edit'] == 2){
$v['result_before_edit'] = $lang['tiger'];
$v['result_before_color'] = 'blue';
}elseif($number_tab['result_before_edit'] == 3){
$v['result_before_edit'] = $lang['tie'];
$v['result_before_color'] = 'green';
}else{
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
}
if($number_tab['result'] == 1){
$v['result'] = $lang['dragon'];
$v['color'] = 'red';
}elseif($number_tab['result'] == 2){
$v['result'] = $lang['tiger'];
$v['color'] = 'blue';
}elseif($number_tab['result'] == 3){
$v['result'] = $lang['tie'];
$v['color'] = 'green';
}else{
$v['result'] = '-';
$v['color'] = '';
}
// 下注详情
$v['bet_detail'] = '';
if($v['banker_amount'] > 0){
$v['bet_detail'] .= $lang['dragon'].round($v['banker_amount'],2).'&nbsp;&nbsp;';
}
if($v['player_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['tiger'].round($v['player_amount'],2).'&nbsp;&nbsp;';
}
if($v['tie_amount'] > 0){
$v['bet_detail'] .= ' '.$lang['tie'].round($v['tie_amount'],2).'&nbsp;&nbsp;';
}
// 洗码量
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->sum('ximaliang');
//洗码率
$v['ximalv'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('ximalv');
if(empty($v['ximaliang'])){
// 不产生洗码量的时候 显示默认配置的系码率
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_dt');
}
// 注单码佣
$v['maliang'] = Db::connect('DB2')->name('xima')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('net_maliang');
// 结束状态
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
$v['is_end_color'] = 'red';
}else{
$v['is_end'] = $lang['unlicensed'];
$v['is_end_color'] = 'blue';
}
// 格式化数据
$v['win_total'] = round($v['win_total'],2);
$v['amount'] = round($v['amount'],2);
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['money'] = round($v['money_after_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$v['ximaliang'] = round($v['ximaliang'],2);
$v['maliang'] = round($v['maliang'],2);
$v['ximalv'] = round($v['ximalv'],2);
$bet[$k] = $v;
}
}elseif($game_id == 4 || $game_id == 5){
foreach($bet as $k => $v){
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
// 返水
$v['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('amount');
$v['rebate_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('rebate_amount_actual');
$v['rebate_rate'] = Db::connect('DB2')->name('rebate')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('rebate_rate');
if(empty($v['rebate_bet_amount'])){
$v['rebate_rate'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('rebate_rate');
}
// 结果
if($v['is_end'] == 1){
$result = '';
$v['color'] = '';
if($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result .= $lang['banker'].' &nbsp;&nbsp;';
$v['color'] = 'red';
}
if($v['win_player_1'] == 1){
$result .= $lang['player_1'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
if($v['win_player_2'] == 1){
$result .= $lang['player_2'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
if($v['win_player_3'] == 1){
$result .= $lang['player_3'].' &nbsp;&nbsp;';
$v['color'] = 'blue';
}
$v['result'] = $result;
$result_detail = '(';
$result_detail .= $lang['player_1'].resultNn($v['result_player_1']).'&nbsp;&nbsp;';
$result_detail .= $lang['player_2'].resultNn($v['result_player_2']).'&nbsp;&nbsp;';
$result_detail .= $lang['player_3'].resultNn($v['result_player_3']).'&nbsp;&nbsp;';
$result_detail .= $lang['banker'].resultNn($v['result_banker']).'&nbsp;&nbsp;';
$result_detail .= ')';
$v['result'] .= $result_detail;
}else{
$v['result'] = '-';
$v['color'] = '';
}
// 下注详情
$v['bet_detail'] = '';
if($v['amount_player_1'] > 0){
$v['bet_detail'] .= $lang['player_1_flat'].round($v['amount_player_1'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_times'] > 0){
$v['bet_detail'] .= $lang['player_1_double'].round($v['amount_player_1_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_1_flat'].round($v['amount_player_1_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_1_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_1_double'].round($v['amount_player_1_banker_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2'] > 0){
$v['bet_detail'] .= $lang['player_2_flat'].round($v['amount_player_2'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_times'] > 0){
$v['bet_detail'] .= $lang['player_2_double'].round($v['amount_player_2_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_2_flat'].round($v['amount_player_2_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_2_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_2_double'].round($v['amount_player_2_banker_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3'] > 0){
$v['bet_detail'] .= $lang['player_3_flat'].round($v['amount_player_3'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_times'] > 0){
$v['bet_detail'] .= $lang['player_3_double'].round($v['amount_player_3_times'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_banker'] > 0){
$v['bet_detail'] .= $lang['banker_player_3_flat'].round($v['amount_player_3_banker'],2).'&nbsp;&nbsp;';
}
if($v['amount_player_3_banker_times'] > 0){
$v['bet_detail'] .= $lang['banker_player_3_double'].round($v['amount_player_3_banker_times'],2).'&nbsp;&nbsp;';
}
// 洗码量
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->sum('ximaliang');
//洗码率
$v['ximalv'] = Db::connect('DB2')->name('xima')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('ximalv');
if(empty($v['ximaliang'])){
// 不产生洗码量的时候 显示默认配置的系码率
if($v['game_id'] == 4){
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_nn');
}else if($v['game_id'] == 5){
$v['ximalv'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_tc');
}
}
// 注单码佣
$v['maliang'] = Db::connect('DB2')->name('xima')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('net_maliang');
// 结束状态
if($v['is_end'] == 1){
$v['is_end'] = $lang['awarded'];
$v['is_end_color'] = 'red';
}else{
$v['is_end'] = $lang['unlicensed'];
$v['is_end_color'] = 'blue';
}
// 格式化数据
$v['win_total'] = round($v['win_total'],2);
$v['amount'] = round($v['amount'],2);
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['money'] = round($v['money_after_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$v['ximaliang'] = round($v['ximaliang'],2);
$v['maliang'] = round($v['maliang'],2);
$v['ximalv'] = round($v['ximalv'],2);
$bet[$k] = $v;
}
}elseif($game_id == 6){
foreach($bet as $k => $v) {
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
// 返水
$v['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('amount');
$v['rebate_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('rebate_amount_actual');
$v['rebate_rate'] = Db::connect('DB2')->name('rebate')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('rebate_rate');
if(empty($v['rebate_bet_amount'])){
$v['rebate_rate'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('rebate_rate');
}
if ($v['is_end'] == 1) {
$result = '';
$v['color'] = '';
$v['result'] = $lang['toning_result_' . $v['toning_result']];
} else {
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['toning_amount'] = result_to_array($v['toning_amount']);
foreach ($v['toning_amount'] as $key => $val) {
if ($val > 0) {
$v['bet_detail'] .= $lang[$key] . ':' . $val . '&nbsp;&nbsp;';
}
}
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
// 是否开奖
if ($v['is_end'] == 1) {
$v['is_end'] = $lang['awarded'];
$v['is_end_color'] = 'red';
} else {
$v['is_end'] = $lang['unlicensed'];
$v['is_end_color'] = 'blue';
}
// 格式化
$v['win_total'] = round($v['win_total'], 2);
if ($v['win_total'] < 0) {
$v['color_win_total'] = 'red';
} else {
$v['color_win_total'] = '';
}
$v['win_total'] = round($v['win_total'],2);
$v['amount'] = round($v['amount'],2);
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['money'] = round($v['money_after_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$v['ximaliang'] = 0;
$v['maliang'] = 0;
$v['ximalv'] = 0;
$bet[$k] = $v;
}
}elseif($game_id == 7){
foreach($bet as $k => $v) {
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
// 返水
$v['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('amount');
$v['rebate_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('rebate_amount_actual');
$v['rebate_rate'] = Db::connect('DB2')->name('rebate')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('rebate_rate');
if(empty($v['rebate_bet_amount'])){
$v['rebate_rate'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('rebate_rate');
}
if ($v['is_end'] == 1) {
$result = '';
$v['color'] = '';
$v['result'] = $v['dice_result'];
} else {
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['dice_amount'] = result_to_array($v['dice_amount']);
foreach ($v['dice_amount'] as $key => $val) {
if ($val > 0) {
$v['bet_detail'] .= $lang['dice_'.$key] . ':' . $val . '&nbsp;&nbsp;';
}
}
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
// 是否开奖
if ($v['is_end'] == 1) {
$v['is_end'] = $lang['awarded'];
$v['is_end_color'] = 'red';
} else {
$v['is_end'] = $lang['unlicensed'];
$v['is_end_color'] = 'blue';
}
// 格式化
$v['win_total'] = round($v['win_total'], 2);
if ($v['win_total'] < 0) {
$v['color_win_total'] = 'red';
} else {
$v['color_win_total'] = '';
}
$v['win_total'] = round($v['win_total'],2);
$v['amount'] = round($v['amount'],2);
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['money'] = round($v['money_after_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$v['ximaliang'] = 0;
$v['maliang'] = 0;
$v['ximalv'] = 0;
$bet[$k] = $v;
}
}elseif($game_id == 8){
foreach($bet as $k => $v) {
$v['result_before_edit'] = '-';
$v['result_before_color'] = '';
// 返水
$v['rebate_bet_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('amount');
$v['rebate_amount'] = Db::connect('DB2')->name('rebate')->where(['game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']])->sum('rebate_amount_actual');
$v['rebate_rate'] = Db::connect('DB2')->name('rebate')->where(array('game_id'=>$v['game_id'],'table_id'=>$v['table_id'],'bet_id'=>$v['id'],'user_id'=>$v['user_id'],'bet_user_id'=>$v['user_id']))->value('rebate_rate');
if(empty($v['rebate_bet_amount'])){
$v['rebate_rate'] = Db::connect('DB2')->name('user')->where(array('id'=>$v['user_id']))->value('rebate_rate');
}
if($v['is_end'] == 1){
$v['color'] = '';
$v['result'] = $v['roulette_result'];
}else{
$v['result'] = '-';
$v['color'] = '';
}
$v['bet_detail'] = '';
$v['roulette_european_amount'] = result_to_array($v['roulette_european_amount']);
$v['roulette_french_amount'] = result_to_array($v['roulette_french_amount']);
if($v['roulette_european_amount']){
$v['bet_detail'] .= $lang['european'].'(';
foreach ($v['roulette_european_amount'] as $key => $val){
if($val > 0){
if(in_array($key,['low','high','odd','even','red','black','column_1','column_2','column_3','dozen_1','dozen_2','dozen_3'])){
$v['bet_detail'] .= $lang['roulette_'.$key].':'.$val.'&nbsp;&nbsp;';
}else{
$keyArray = explode("_", $key);
$v['bet_detail'] .= $lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']:'.$val.'&nbsp;&nbsp;';
}
}
}
$v['bet_detail'] .= ')';
}
if($v['roulette_french_amount']){
$v['bet_detail'] .= $lang['french'].'(';
foreach ($v['roulette_french_amount'] as $key => $val){
if($val > 0){
if(in_array($key,['zeroGame','neighborsOfZero','orphans','theThird'])){
$v['bet_detail'] .= $lang['roulette_'.$key].':'.$val.'&nbsp;&nbsp;';
}else{
$keyArray = explode("_", $key);
$v['bet_detail'] .= $lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']:'.$val.'&nbsp;&nbsp;';
}
}
}
$v['bet_detail'] .= ')';
}
$v['result_before_edit'] = '-';
$v['color_result_before_edit'] = '';
// 是否开奖
if ($v['is_end'] == 1) {
$v['is_end'] = $lang['awarded'];
$v['is_end_color'] = 'red';
} else {
$v['is_end'] = $lang['unlicensed'];
$v['is_end_color'] = 'blue';
}
// 格式化
$v['win_total'] = round($v['win_total'], 2);
if ($v['win_total'] < 0) {
$v['color_win_total'] = 'red';
} else {
$v['color_win_total'] = '';
}
$v['win_total'] = round($v['win_total'],2);
$v['amount'] = round($v['amount'],2);
$v['money_before_bet'] = round($v['money_before_bet'],2);
$v['money'] = round($v['money_after_bet'],2);
$v['end_money'] = round($v['end_money'],2);
$v['ximaliang'] = 0;
$v['maliang'] = 0;
$v['ximalv'] = 0;
$bet[$k] = $v;
}
}
// 获取所有的桌子
if($game_id > 0){
$table_list = Db::connect('DB2')->name('table')->where('game_id',$game_id)->select();
}else{
$table_list = Db::connect('DB2')->name('table')->select();
}
// 渲染参数和模板
$this->assign('table_list',$table_list);
$this->assign('bet',$bet);
$this->assign('user_info',$user_info);
$this->assign('total',$total);
$this->assign('online',$online);
$this->assign('refreshUrl',$refreshUrl);
$this->assign('top_agent',$topAgent);
return $this->fetch();
}
// 棋牌游戏查询
public function game_log(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$gameType = Request::instance()->get('game_type');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 拼装搜索条件
$where = array();
$where['r.createTime'] = array('between',[$startTime,$endTime]);
if(!empty($username)){
$where['r.userName'] = array('like', '%'.$username.'%');
}
if($gameType > 0){
$where['r.gameID'] = $gameType;
}
if($user_info['agent_parent_id'] > 0){
$list = Db::connect('DB2')->name('game_log')->alias('r')->join('cg_user u','r.userName=u.username and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or u.id='.$user_info['id'].')')->where($where)->order('r.id desc')->paginate(20,false,array('query'=>$get));
}else{
$list = Db::connect('DB2')->name('game_log')->alias('r')->join('cg_user u','r.userName=u.username and (u.agent_parent_id_path like "'.$user_info['id'].',%" or u.id='.$user_info['id'].')')->where($where)->order('r.id desc')->paginate(20,false,array('query'=>$get));
}
$gameType = [
102 => '百人牛牛',
103 => '抢庄牛牛',
104 => '红黑大战',
105 => '龙虎斗',
106 => '百家乐',
107 => '捕鱼',
110 => '飞禽走兽',
111 => '奔驰宝马',
117 => '九线拉王',
122 => '二十一点',
126 => '十三水',
127 => '骰宝',
131 => '牌九',
133 => '红包扫雷',
145 => '财神到',
147 => '三公',
148 => '糖果派对',
149 => '李逵劈鱼',
153 => '海王捕鱼',
154 => '色碟',
156 => '越南骰大小',
157 => '南方上进',
160 => '鱼虾蟹',
161 => '扶董天王',
163 => '越南牌九',
212 => '水浒传',
214 => '金蟾捕鱼',
230 => '越南彩',
];
foreach($list as $k => $v){
// 信息组装
$v['createTime'] = date('Y-m-d H:i:s',$v['createTime']);
$v['gameName'] = $lang['game_'.$v['gameID']];
$list[$k] = $v;
}
// 汇总金额
if($user_info['agent_parent_id'] > 0){
$total = Db::connect('DB2')->name('game_log')->alias('r')
->field('sum(water) as water, sum(allBet) as allBet, sum(validBet) as validBet, sum(tax) as tax, sum(gold) as gold')
->join('cg_user u','r.userName=u.username and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or u.id='.$user_info['id'].')')
->where($where)->find();
}else{
$total = Db::connect('DB2')->name('game_log')->alias('r')
->field('sum(water) as water, sum(allBet) as allBet, sum(validBet) as validBet, sum(tax) as tax, sum(gold) as gold')
->join('cg_user u','r.userName=u.username and (u.agent_parent_id_path like "'.$user_info['id'].',%" or u.id='.$user_info['id'].')')
->where($where)->find();
}
// 渲染参数和模板
$this->assign('list',$list);
$this->assign('game_type',$gameType);
$this->assign('user_info',$user_info);
$this->assign('total',$total);
return $this->fetch();
}
// 棋牌游戏上下分查询
public function score_log(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$gameType = Request::instance()->get('game_type');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 拼装搜索条件
$where = array();
$where['r.createTime'] = array('between',[$startTime,$endTime]);
if(!empty($username)){
$where['r.account'] = array('like', '%'.$username.'%');
}
if($gameType > 0){
$where['r.gameID'] = $gameType;
}
if($user_info['agent_parent_id'] > 0){
$list = Db::connect('DB2')->name('score_log')->alias('r')->field('r.*')->join('cg_user u','r.account=u.username and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or u.id='.$user_info['id'].')')->where($where)->order('r.id desc')->paginate(20,false,array('query'=>$get));
}else{
$list = Db::connect('DB2')->name('score_log')->alias('r')->field('r.*')->join('cg_user u','r.account=u.username and (u.agent_parent_id_path like "'.$user_info['id'].',%" or u.id='.$user_info['id'].')')->where($where)->order('r.id desc')->paginate(20,false,array('query'=>$get));
}
$typeText = [
'11' => '上分',
'12' => '下分',
];
$statusText = [
'0' => '未支付',
'1' => '已支付',
'2' => '支付失败',
];
foreach($list as $k => $v){
// 信息组装
$v['createTime'] = date('Y-m-d H:i:s',$v['createTime']);
$v['payTime'] = date('Y-m-d H:i:s',$v['payTime']);
$v['typeText'] = $typeText[$v['type']] ?? '';
$v['statusText'] = $statusText[$v['status']] ?? '';
$list[$k] = $v;
}
// 汇总金额
if($user_info['agent_parent_id'] > 0){
$total = Db::connect('DB2')->name('score_log')->alias('r')
->field('sum(r.money) as money, sum(r.gold) as gold')
->join('cg_user u','r.account=u.username and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or u.id='.$user_info['id'].')')
->where($where)->find();
}else{
$total = Db::connect('DB2')->name('score_log')->alias('r')
->field('sum(r.money) as money, sum(r.gold) as gold')
->join('cg_user u','r.account=u.username and (u.agent_parent_id_path like "'.$user_info['id'].',%" or u.id='.$user_info['id'].')')
->where($where)->find();
}
// 渲染参数和模板
$this->assign('list',$list);
$this->assign('user_info',$user_info);
$this->assign('total',$total);
return $this->fetch();
}
// 充值提现查询
public function recharge(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$mode = Request::instance()->get('mode');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between',[$startTime,$endTime]);
if($username){
$user = Db::connect('DB2')->name('user')->where(['username'=>$username,'is_delete'=>0])->find();
if($user){
$where['user_id'] = $user['id'];
}
}
if($mode == 1 || $mode == 2){
$where['mode'] = $mode;
}
if($user_info['agent_parent_id'] > 0){
$recharge_list = Db::connect('DB2')->name('recharge')->alias('r')->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')->where($where)->order('r.id desc')->paginate(20,false,array('query'=>$get));
}else{
$recharge_list = Db::connect('DB2')->name('recharge')->alias('r')->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')->where($where)->order('r.id desc')->paginate(20,false,array('query'=>$get));
}
foreach($recharge_list as $k => $v){
// 信息组装
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
if($v['type'] == 1){
$v['type_msg'] = '&nbsp;(上分/下分)';
}elseif($v['type'] == 2){
$v['type_msg'] = '&nbsp;(洗码结算)';
}elseif($v['type'] == 3){
$v['type_msg'] = '&nbsp;(分成结算)';
}elseif($v['type'] == 4){
$v['type_msg'] = '&nbsp;(在线充值)';
}elseif($v['type'] == 5){
$v['type_msg'] = '&nbsp;(<font style="color:#f00;">充值-送分</font>)';
}elseif($v['type'] == 6){
$v['type_msg'] = '&nbsp;(代理抽水)';
}else{
$v['type_msg'] = '&nbsp;(未知)';
}
if($v['mode'] == 1){
$v['mode_msg'] = '上分'.$v['type_msg'];
}elseif($v['mode'] == 2){
$v['mode_msg'] = '下分'.$v['type_msg'];
$v['amount'] = to_number($v['amount']);
}
// 操作人
if($v['agent_or_admin'] == 1 && strlen($v['admin_user_name']) > 0){
$v['controller_username'] = $v['admin_user_name'];
}
if ($v['agent_or_admin'] == 1) {
$v['agent_or_admin_msg'] = '总台操作';
} else if ($v['agent_or_admin'] == 2) {
$v['agent_or_admin_msg'] = '代理操作';
} else if ($v['agent_or_admin'] == 4) {
$v['agent_or_admin_msg'] = '即时结算系统操作';
} else if ($v['agent_or_admin'] == 5) {
$v['agent_or_admin_msg'] = '定时结算系统操作';
} else {
$v['agent_or_admin_msg'] = '-';
}
// 数据格式转换
$v['amount'] = round($v['amount'],2);
$v['old_money'] = round($v['old_money'],2);
$v['new_money'] = round($v['new_money'],2);
$recharge_list[$k] = $v;
}
// 汇总金额
$totalAmount = 0;
if($user_info['agent_parent_id'] > 0){
$rechargeAll = Db::connect('DB2')->name('recharge')->alias('r')->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')->where($where)->order('r.id desc')->select();
}else{
$rechargeAll = Db::connect('DB2')->name('recharge')->alias('r')->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')->where($where)->order('r.id desc')->select();
}
foreach($rechargeAll as $v){
if($v['mode'] == 2){
$v['amount'] = to_number($v['amount']);
}
$totalAmount += round($v['amount'],2);
}
// 渲染参数和模板
$this->assign('recharge_list',$recharge_list);
$this->assign('user_info',$user_info);
$this->assign('totalAmount',$totalAmount);
return $this->fetch();
}
// 充值查询
public function user_recharge(){
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return '非法请求';
}
// 总代类型判断 1现金线
$topAgentId = explode(',',$user_info['agent_parent_id_path'])[0];
$topAgent = Db::name('user')->where('id',$topAgentId)->find();
if($topAgent['agent_type'] != 1){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = 0;
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
}
// 拼装搜索条件
$where = array();
$whereStr = '';
$where['create_time'] = array('between',[$startTime,$endTime]);
if($username){
$user = Db::connect('DB2')->name('user')->where(['username'=>$username,'is_delete'=>0])->find();
if($user){
// $where['user_id'] = $user['id'];
$whereStr = "find_in_set({$user['id']},u.agent_parent_id_path)";
}else{
$where['user_id'] = 0;
}
}
if($user_info['agent_parent_id'] > 0){
$list = Db::connect('DB2')->name('user_recharge')
->alias('r')
->field('r.*,u.username,u.nickname')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->order('r.id desc')
->paginate(20,false,array('query'=>$get));
}else{
$list = Db::connect('DB2')->name('user_recharge')
->alias('r')
->field('r.*,u.username,u.nickname')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->order('r.id desc')
->paginate(20,false,array('query'=>$get));
}
$type_text = [
1 => '充值上分',
2 => '返水上分',
];
foreach($list as $k => $v){
// 信息组装
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
// 数据格式转换
$v['type_text'] = $type_text[$v['type']];
$v['amount'] = round($v['amount'],2);
$v['old_money'] = round($v['old_money'],2);
$v['new_money'] = round($v['new_money'],2);
$list[$k] = $v;
}
// 汇总金额
if($user_info['agent_parent_id'] > 0){
$total = Db::connect('DB2')
->name('user_recharge')
->alias('r')
->field('sum(r.amount) as amount, sum(r.money) as money')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->find();
}else{
$total = Db::connect('DB2')
->name('user_recharge')
->alias('r')
->field('sum(r.amount) as amount, sum(r.money) as money')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->find();
}
// 渲染参数和模板
$this->assign('list',$list);
$this->assign('user_info',$user_info);
$this->assign('total',$total);
return $this->fetch();
}
// 提现查询
public function user_withdraw(){
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return '非法请求';
}
// 总代类型判断 1现金线
$topAgentId = explode(',',$user_info['agent_parent_id_path'])[0];
$topAgent = Db::name('user')->where('id',$topAgentId)->find();
if($topAgent['agent_type'] != 1){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$mode = Request::instance()->get('mode');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = 0;
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
}
// 拼装搜索条件
$where = array();
$whereStr = '';
$where['create_time'] = array('between',[$startTime,$endTime]);
if($username){
$user = Db::connect('DB2')->name('user')->where(['username'=>$username,'is_delete'=>0])->find();
if($user){
// $where['user_id'] = $user['id'];
$whereStr = "find_in_set({$user['id']},u.agent_parent_id_path)";
}else{
$where['user_id'] = 0;
}
}
if($user_info['agent_parent_id'] > 0){
$list = Db::connect('DB2')->name('user_withdraw')
->alias('r')
->field('r.*,u.username,u.nickname')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->order('r.id desc')
->paginate(20,false,array('query'=>$get));
}else{
$list = Db::connect('DB2')->name('user_withdraw')
->alias('r')
->field('r.*,u.username,u.nickname')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->order('r.id desc')
->paginate(20,false,array('query'=>$get));
}
// 提现状态
$status = [
'SUCCESS' => "提现成功",
'FAIL' => "提现失败",
'WAIT' => "等待审核",
'AGREE' => "已同意",
'DISAGREE' => "已拒绝",
'CANCEL' => "已取消",
];
foreach($list as $k => $v){
// 信息组装
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
// 提现状态
$v['status_msg'] = $status[$v['status']];
// 操作类型
if($v['operator_source'] == 1){
$v['operator_source_msg'] = '总台操作';
}else if($v['operator_source'] == 2){
$v['operator_source_msg'] = '代理操作';
}else{
$v['operator_source_msg'] = '';
}
// 数据格式转换
$v['amount'] = round($v['amount'],2);
$v['old_money'] = round($v['old_money'],2);
$v['new_money'] = round($v['new_money'],2);
$list[$k] = $v;
}
// 汇总金额
if($user_info['agent_parent_id'] > 0){
$total = Db::connect('DB2')
->name('user_withdraw')
->alias('r')
->field('sum(r.amount) as amount, sum(r.service_fee) as service_fee, sum(r.money) as money, sum(r.service_fee_money) as service_fee_money')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->find();
}else{
$total = Db::connect('DB2')
->name('user_withdraw')
->alias('r')
->field('sum(r.amount) as amount, sum(r.service_fee) as service_fee, sum(r.money) as money, sum(r.service_fee_money) as service_fee_money')
->join('cg_user u','r.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or r.user_id='.$user_info['id'].')')
->where($where)
->where($whereStr)
->find();
}
// 渲染参数和模板
$this->assign('list',$list);
$this->assign('user_info',$user_info);
$this->assign('total',$total);
return $this->fetch();
}
// 处理提现
public function doUserWithdraw()
{
if(Request::instance()->isPost()){
// 总代类型判断 1现金线
$user_info = Session::get('user_info');
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$topAgentId = explode(',',$user_info['agent_parent_id_path'])[0];
$topAgent = Db::name('user')->where('id',$topAgentId)->find();
if($topAgent['agent_type'] != 1){
return '非法请求';
}
$id = Request::instance()->post('id');
$user_info = Session::get('user_info');
$user_info = Db::name('user')->where('id',$user_info['id'])->find();
if($user_info['agent_level'] != 1){
die(json_encode(['code'=>0,'msg'=>'无权限操作!']));
}
$withdraw = Db::name('user_withdraw')->where('id',$id)->find();
if(empty($withdraw) || $withdraw['status'] != "WAIT"){
die(json_encode(['code'=>0,'msg'=>'非待审核状态无法操作!']));
}
// 审核通过
$withdrawChannel = "YBF";
$withdrawResult = [];
if($withdrawChannel == "USDT"){
$Usdt = new Usdt();
$res = $Usdt->applyUserWithdraw($withdraw['order_no'],$withdraw['to_address'],$withdraw['amount']);
$withdrawResult = [
'status' => $res['code'] == 0 ? true : false,
'type' => $res['processor']['asset'],
'from_address' => $res['processor']['from_addr'],
'err_msg' => $res['debug'],
];
}else if($withdrawChannel == "YBF"){
$YBF = new Ybf();
$res = $YBF->withdraw($withdraw['order_no'],$withdraw['to_address'],$withdraw['amount']);
$withdrawResult = [
'status' => $res['code'] == 200 ? true : false,
'type' => 'YBF',
'err_msg' => $res['message'],
];
}
if(empty($withdrawResult)){
die(json_encode(['code'=>0,'msg'=>'未配置支付渠道!']));
}
if($withdrawResult['status']){
Db::name('user_withdraw')->where('id',$id)->update([
'status' => 'AGREE',
'type' => $withdrawResult['type'] ?? '',
'from_address' => $withdrawResult['from_address'] ?? '',
'audit_time' => time(),
'operator_source' => 2,
'operator_id' => $user_info['id'],
'operator_username' => $user_info['username'],
'operator_nickname' => $user_info['nickname']
]);
die(json_encode(['code'=>1,'msg'=>'审核通过!']));
}else{
Db::startTrans();
// 退返余额
$user = Db::name('user')->where('id',$withdraw['user_id'])->lock(true)->find();
$money = $user['money'] + $withdraw['money'] + $withdraw['service_fee_money'];
Db::name('user')->where('id',$withdraw['user_id'])->update(['money' => $money]);
// 更新记录
Db::name('user_withdraw')->where('id',$id)->update([
'status' => 'FAIL',
'err_msg' => $withdrawResult['err_msg'],
'audit_time' => time(),
'operator_source' => 2,
'operator_id' => $user_info['id'],
'operator_username' => $user_info['username'],
'operator_nickname' => $user_info['nickname']
]);
Db::commit();
die(json_encode(['code'=>0,'msg'=>'提现失败!']));
}
}
}
// 取消提现
public function cancelUserWithdraw()
{
if(Request::instance()->isPost()){
// 总代类型判断 1现金线
$user_info = Session::get('user_info');
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$topAgentId = explode(',',$user_info['agent_parent_id_path'])[0];
$topAgent = Db::name('user')->where('id',$topAgentId)->find();
if($topAgent['agent_type'] != 1){
return '非法请求';
}
$id = Request::instance()->post('id');
$user_info = Session::get('user_info');
$user_info = Db::name('user')->where('id',$user_info['id'])->find();
if($user_info['agent_level'] != 1){
die(json_encode(['code'=>0,'msg'=>'无权限操作!']));
}
$withdraw = Db::name('user_withdraw')->where('id',$id)->find();
if(empty($withdraw) || $withdraw['status'] != "WAIT"){
die(json_encode(['code'=>0,'msg'=>'非待审核状态无法操作!']));
}
// 取消提现
Db::startTrans();
// 退返余额
$user = Db::name('user')->where('id',$withdraw['user_id'])->lock(true)->find();
$money = $user['money'] + $withdraw['money'] + $withdraw['service_fee_money'];
Db::name('user')->where('id',$withdraw['user_id'])->update(['money' => $money]);
// 更新记录
Db::name('user_withdraw')->where('id',$id)->update([
'status' => 'CANCEL',
'audit_time' => time(),
'operator_source' => 2,
'operator_id' => $user_info['id'],
'operator_username' => $user_info['username'],
'operator_nickname' => $user_info['nickname']
]);
Db::commit();
die(json_encode(['code'=>1,'msg'=>'取消成功!']));
}
}
/**
* 在线充值查询
* @return string
* DateTime: 2019/8/26 17:14
*/
public function online_recharge(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return $lang['illegal_request'];
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between',[$startTime,$endTime]);
if($username){
$user = Db::connect('DB2')->name('user')->where(['username'=>$username,'is_delete'=>0])->find();
$where['user_id'] = $user?$user['id']:0;
}
$where['type'] = 4;//在线充值
$where['mode'] = 1;//充值类型
// $rechargeList = Db::connect('DB2')->name('recharge')->alias('r')->join('cg_user u','u.id = r.user_id')->where($where)->order('r.create_time DESC')->paginate(20,false,array('query'=>$get));
$rechargeList = Db::connect('DB2')->name('recharge')->where($where)->order('create_time DESC')->paginate(20,false,array('query'=>$get));
// 渲染参数和模板
$this->assign('rechargeList',$rechargeList);
return $this->fetch();
}
// 结算报表
public function settle()
{
$curUser = Session::get('user_info');
if ($curUser['account_type'] == 1 || $curUser['account_type'] == 2) {
return '非法请求';
}
$get = Request::instance()->get();
$query = http_build_query($get);
// 接收参数
$startDate = trim(Request::instance()->get('startDate'));
$endDate = trim(Request::instance()->get('endDate'));
$username = trim(Request::instance()->get('username'));
$export = intval(Request::instance()->get('export'));
// 转换日期时间
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
}
// 查询用户
if (!empty($username)) {
$userWhere = array();
$userWhere['username'] = $username;
if ($curUser['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('LIKE', '%,' . $curUser['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('LIKE', $curUser['id'] . ',%');
}
$user_info = Db::connect('DB2')->name('user')->where($userWhere)->find();
}
if (empty($user_info)) $user_info = $curUser;
$topAgentId = explode(',',$curUser['agent_parent_id_path'])[0];
$topAgent = Db::name('user')->where('id',$topAgentId)->find();
// 数据查询条件
$dataWhere = array();
$dataWhere['create_time'] = array('between', [$startTime, $endTime]);
// 找出所有的下注会员
$where = array();
$where['is_delete'] = 0;
$where['id|agent_parent_id'] = $user_info['id'];
$list = Db::connect('DB2')->name('user')->where($where)->order('id asc')->select();
$listIds = [];
foreach ($list as $k => $v){
$listIds[] = $v['id'];
}
// 汇总数据
$total = [];
$total['maliang_checkout'] = Db::connect('DB2')->name('xima_log')->where($dataWhere)->where(['user_id' => ['in', $listIds]])->sum('maliang');
foreach ($list as &$child) {
$child['type_xima_msg'] = $child['type_xima'] == 2 ? "单边洗码" : "双边洗码";
//$child['ximalv'] = $child['agent_ximalv'] . ' / ' . $child['agent_ximalv_dt'] . ' / ' . $child['agent_ximalv_nn'] . ' / ' . $child['agent_ximalv_tc'];
$child['ximalv'] = $child['agent_ximalv'] . ' / ' . $child['agent_ximalv_dt'] . ' / ' . $child['agent_ximalv_nn'];
// 查询cs
$csWhere = $dataWhere;
$csWhere['user_id'] = $child['id'];
$csWhere['status'] = 1;
// $child['amount'] = Db::connect('DB2')->name('cs')->where($csWhere)->sum('total');
// $child['win_total'] = Db::connect('DB2')->name('cs')->where($csWhere)->sum('win_total');
$amountAndWinTotalWhere = $dataWhere;
$amountAndWinTotalWhere['status'] = 1;
if($child['agent_parent_id'] > 0){
if($child['agent'] == 1){
$amountAndWinTotalWhere['agent_parent_id_path'] = array('LIKE','%,'.$child['id'].',%');
}else{
$amountAndWinTotalWhere['user_id'] = $child['id'];
}
}else{
if($child['agent'] == 1){
$amountAndWinTotalWhere['agent_parent_id_path'] = array('LIKE',$child['id'].',%');
}else{
$amountAndWinTotalWhere['user_id'] = $child['id'];
}
}
$child['amount'] = Db::connect('DB2')->name('bet')->where($amountAndWinTotalWhere)->sum('amount');
$child['win_total'] = Db::connect('DB2')->name('bet')->where($amountAndWinTotalWhere)->sum('win_total');
// 查询洗码
$ximaWhere = $dataWhere;
$ximaWhere['status'] = 1;
$ximaWhere['user_id'] = $child['id'];
$child['ximaliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('ximaliang');
$child['maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('maliang');
$child['share_maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('share_maliang');
$child['net_maliang'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->sum('net_maliang');
$child['cs'] = Db::connect('DB2')->name('cs')->where($ximaWhere)->sum('share_amount');
$child['net_cs'] = Db::connect('DB2')->name('cs')->where($ximaWhere)->sum('net_cs');
$child['cs_income'] = $child['net_cs'] - $child['share_maliang'];
$child['maliang_unsettled'] = Db::connect('DB2')->name('xima')->where($ximaWhere)->where('is_checkout', 0)->sum('maliang');
$child['cs_unsettled'] = Db::connect('DB2')->name('cs')->where($ximaWhere)->where('is_checkout', 0)->sum('net_cs');
$child['cs_unsettled'] -= Db::connect('DB2')->name('cs')->where($ximaWhere)->where('is_checkout', 0)->sum('share_maliang');
$checkoutWhere = $dataWhere;
$checkoutWhere['user_id'] = $child['id'];
$child['maliang_checkout'] = Db::connect('DB2')->name('xima_log')->where($checkoutWhere)->sum('maliang');
$child['cs_checkout'] = Db::connect('DB2')->name('cs_log')->where($checkoutWhere)->sum('share_amount');
$child['cs_checkout'] -= Db::connect('DB2')->name('cs_log')->where($checkoutWhere)->sum('share_maliang');
// 查询返水
$rebateWhere = $dataWhere;
$rebateWhere['user_id'] = $child['id'];
$rebateWhere['game_type'] = 1;
$child['rebate'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->sum('rebate_amount_actual');
$child['rebate_checkout'] = Db::connect('DB2')->name('rebate_log')->where($rebateWhere)->sum('rebate_amount');
// 棋牌返水
$rebateWhere['game_type'] = 2;
$child['qp_rebate'] = Db::connect('DB2')->name('rebate')->where($rebateWhere)->sum('rebate_amount_actual');
$child['qp_rebate_checkout'] = Db::connect('DB2')->name('rebate_log')->where($rebateWhere)->sum('rebate_amount');
// 格式化
$child['agent_cs'] = number_format($child['agent_cs'], 2, '.', '');
$child['amount'] = number_format($child['amount'], 2, '.', '');
$child['win_total'] = number_format($child['win_total'], 2, '.', '');
$child['maliang'] = number_format($child['maliang'], 2, '.', '');
$child['net_maliang'] = number_format($child['net_maliang'], 2, '.', '');
$child['cs'] = number_format($child['cs'], 2, '.', '');
$child['maliang_unsettled'] = number_format($child['maliang_unsettled'], 2, '.', '');
$child['cs_unsettled'] = number_format($child['cs_unsettled'], 2, '.', '');
$child['maliang_checkout'] = number_format($child['maliang_checkout'], 2, '.', '');
$child['cs_checkout'] = number_format($child['cs_checkout'], 2, '.', '');
$child['rebate'] = number_format($child['rebate'], 2, '.', '');
$child['rebate_checkout'] = number_format($child['rebate_checkout'], 2, '.', '');
$child['qp_rebate'] = number_format($child['qp_rebate'], 2, '.', '');
$child['qp_rebate_checkout'] = number_format($child['qp_rebate_checkout'], 2, '.', '');
if ($child['agent'] == 0) {
// 格式化
$child['share_maliang'] = '-';
$child['agent_cs'] = '-';
$child['net_cs'] = '-';
$child['cs'] = '-';
$child['cs_income'] = '-';
$child['cs_unsettled'] = '-';
$child['cs_checkout'] = '-';
}
}
// 导出excel列表
if ($export == 1) {
if ($list) {
//重新组合
$excelData = array();
foreach ($list AS $k => $v) {
$excelData[$k][] = $v['agent'] == 1 ? '代理' : '会员';
$excelData[$k][] = $v['username'];
$excelData[$k][] = $v['nickname'];
$excelData[$k][] = $v['money'];
$excelData[$k][] = $v['amount'];
$excelData[$k][] = $v['win_total'];
$excelData[$k][] = $v['ximaliang'];
$excelData[$k][] = $v['maliang'];
$excelData[$k][] = $v['maliang_checkout'];
$excelData[$k][] = $v['maliang_unsettled'];
$excelData[$k][] = $v['net_maliang'];
$excelData[$k][] = $v['ximalv'];
$excelData[$k][] = $v['cs'];
$excelData[$k][] = $v['cs_checkout'];
// $excelData[$k][] = $v['share_maliang_checkout'];
$excelData[$k][] = $v['cs_unsettled'];
// $excelData[$k][] = $v['share_maliang_unsettled'];
$excelData[$k][] = $v['net_cs'];
$excelData[$k][] = $v['agent_cs'];
}
$title = array('会员类型', '账号', '名称', '余额', '总押码', '会员总赢', '洗码量', '码量', '已结码量', '未结码量', '码费收益', '百/龙/牛牛洗码率%', '占股金额', '已结占股', '未结占股', '占股收益', '占股%');
if ($startDate && $endDate) {
$this->exportExcelCore($excelData, '结算报表-' . $startDate . "" . $endDate, $title);
} else {
$this->exportExcelCore($excelData, '结算报表', $title);
}
exit('已导出支持列表,请不要重复刷新该页面!');
} else {
exit('没有可以导出的列表!');
}
}
// 渲染参数和模板
$this->assign('get', $get);
$this->assign('query', $query);
$this->assign('list', $list);
$this->assign('total', $total);
$this->assign('user_info', $user_info);
$this->assign('top_agent', $topAgent);
return $this->fetch();
}
// 洗码查询
public function xima()
{
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id', $user_info['id'])->find();
$user_info['account_type'] = $account_type;
if ($user_info['account_type'] == 1) {
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get', $get);
$this->assign('query', $query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
// 转换日期时间
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
$this->assign('get', $get);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
$this->assign('get', $get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between', [$startTime, $endTime]);
if ($username) {
if ($username == $user_info['username']) {
$where['user_id'] = $user_info['id'];
} else {
$userWhere = [];
$userWhere['username'] = $username;
$userWhere['is_delete'] = 0;
if ($user_info['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('like', '%,' . $user_info['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('like', '%' . $user_info['id'] . ',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if ($user) {
$where['user_id'] = $user['id'];
} else {
$where['userid'] = 0;
}
}
}
// 列表
$list = Db::connect('DB2')->name('xima')->alias('x')
->field('x.*,u.username')
->join('user u', 'u.id=x.user_id')
->where($where)->order('x.id desc')
->paginate(20, false, array('query' => $get));
foreach ($list as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
$list[$k] = $v;
}
// 汇总数据
$total = Db::connect('DB2')->name('xima')
->field('
sum(total) as total,
sum(win_total) as win_total,
sum(ximaliang) as ximaliang,
sum(maliang) as maliang,
sum(share_maliang) as share_maliang,
sum(net_maliang) as net_maliang
')
->where($where)->find();
// 渲染参数和模板
$this->assign('list', $list);
$this->assign('user_info', $user_info);
$this->assign('total', $total);
return $this->fetch();
}
// 洗码结算查询
public function xima_log()
{
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id', $user_info['id'])->find();
$user_info['account_type'] = $account_type;
if ($user_info['account_type'] == 1) {
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get', $get);
$this->assign('query', $query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
// 转换日期时间
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
$this->assign('get', $get);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
$this->assign('get', $get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between', [$startTime, $endTime]);
if ($username) {
if ($username == $user_info['username']) {
$where['user_id'] = $user_info['id'];
} else {
$userWhere = [];
$userWhere['username'] = $username;
$userWhere['is_delete'] = 0;
if ($user_info['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('like', '%,' . $user_info['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('like', '%' . $user_info['id'] . ',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if ($user) {
$where['user_id'] = $user['id'];
} else {
$where['userid'] = 0;
}
}
}
// 列表
$list = Db::connect('DB2')->name('xima_log')->where($where)->order('id desc')->paginate(20, false, array('query' => $get));
foreach ($list as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
// 操作人
if ($v['admin_or_agent'] == 1) {
$v['connection_username'] = $v['admin_username'];
$v['admin_or_agent_msg'] = '总台操作';
} else if ($v['admin_or_agent'] == 2) {
$v['admin_or_agent_msg'] = '代理操作';
} else if ($v['admin_or_agent'] == 4) {
$v['admin_or_agent_msg'] = '即时结算系统操作';
}else if ($v['admin_or_agent'] == 5) {
$v['admin_or_agent_msg'] = '定时结算系统操作';
}else {
$v['agent_or_admin_msg'] = '-';
}
if ($v['type'] == 1) {
$v['type_msg'] = '余额上分';
} elseif ($v['type'] == 2) {
$v['type_msg'] = '现金结算';
} else {
$v['type_msg'] = '-';
}
$list[$k] = $v;
}
// 汇总数据
$total = Db::connect('DB2')->name('xima_log')
->field('
sum(ximaliang) as ximaliang,
sum(maliang) as maliang
')
->where($where)->find();
// 渲染参数和模板
$this->assign('list', $list);
$this->assign('user_info', $user_info);
$this->assign('total', $total);
return $this->fetch();
}
// 占股查询
public function cs()
{
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id', $user_info['id'])->find();
$user_info['account_type'] = $account_type;
if ($user_info['account_type'] == 1) {
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get', $get);
$this->assign('query', $query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
// 转换日期时间
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
$this->assign('get', $get);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
$this->assign('get', $get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between', [$startTime, $endTime]);
if ($username) {
if ($username == $user_info['username']) {
$where['user_id'] = $user_info['id'];
} else {
$userWhere = [];
$userWhere['username'] = $username;
$userWhere['is_delete'] = 0;
if ($user_info['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('like', '%,' . $user_info['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('like', '%' . $user_info['id'] . ',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if ($user) {
$where['user_id'] = $user['id'];
} else {
$where['userid'] = 0;
}
}
}
// 列表
$list = Db::connect('DB2')->name('cs')->alias('c')
->field('c.*,u.username')
->join('user u', 'u.id=c.user_id')
->where($where)->order('c.id desc')
->paginate(20, false, array('query' => $get));
foreach ($list as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
$list[$k] = $v;
}
// 汇总数据
$total = Db::connect('DB2')->name('cs')
->field('
sum(total) as total,
sum(win_total) as win_total,
sum(net_cs) as net_cs
')
->where($where)->find();
$total['share_maliang'] = Db::connect('DB2')->name('xima')->where($where)->sum('share_maliang');
// 渲染参数和模板
$this->assign('list', $list);
$this->assign('user_info', $user_info);
$this->assign('total', $total);
return $this->fetch();
}
// 占股结算查询
public function cs_log()
{
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id', $user_info['id'])->find();
$user_info['account_type'] = $account_type;
if ($user_info['account_type'] == 1) {
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get', $get);
$this->assign('query', $query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
// 转换日期时间
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
$this->assign('get', $get);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
$this->assign('get', $get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between', [$startTime, $endTime]);
if ($username) {
if ($username == $user_info['username']) {
$where['user_id'] = $user_info['id'];
} else {
$userWhere = [];
$userWhere['username'] = $username;
$userWhere['is_delete'] = 0;
if ($user_info['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('like', '%,' . $user_info['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('like', '%' . $user_info['id'] . ',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if ($user) {
$where['user_id'] = $user['id'];
} else {
$where['userid'] = 0;
}
}
}
// 列表
$list = Db::connect('DB2')->name('cs_log')->where($where)->order('id desc')->paginate(20, false, array('query' => $get));
foreach ($list as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
$v['income'] = $v['share_amount'] - $v['share_maliang'];
// 操作人
if ($v['admin_or_agent'] == 1) {
$v['connection_username'] = $v['admin_username'];
$v['admin_or_agent_msg'] = '总台操作';
} else if ($v['admin_or_agent'] == 2){
$v['admin_or_agent_msg'] = '代理操作';
} else if ($v['admin_or_agent'] == 4){
$v['admin_or_agent_msg'] = '即时结算系统操作';
}else if ($v['admin_or_agent'] == 5){
$v['admin_or_agent_msg'] = '定时结算系统操作';
}else {
$v['agent_or_admin_msg'] = '-';
}
if ($v['type'] == 1) {
$v['type_msg'] = '上分下分';
} elseif ($v['type'] == 2) {
$v['type_msg'] = '现金结算';
} else {
$v['type_msg'] = '-';
}
$list[$k] = $v;
}
// 汇总数据
$total = Db::connect('DB2')->name('cs_log')
->field('
sum(share_amount) as share_amount,
sum(share_maliang) as share_maliang
')
->where($where)->find();
$total['income'] = $total['share_amount'] - $total['share_maliang'];
// 渲染参数和模板
$this->assign('list', $list);
$this->assign('user_info', $user_info);
$this->assign('total', $total);
return $this->fetch();
}
// 返水查询
public function rebate()
{
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id', $user_info['id'])->find();
$user_info['account_type'] = $account_type;
if ($user_info['account_type'] == 1) {
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get', $get);
$this->assign('query', $query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$gameType = Request::instance()->get('game_type');
if(empty($gameType)){
$gameType = 1;
}
// 转换日期时间
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
$this->assign('get', $get);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
$this->assign('get', $get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between', [$startTime, $endTime]);
$where['game_type'] = $gameType;
if ($username) {
if ($username == $user_info['username']) {
$where['user_id'] = $user_info['id'];
} else {
$userWhere = [];
$userWhere['username'] = $username;
$userWhere['is_delete'] = 0;
if ($user_info['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('like', '%,' . $user_info['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('like', '%' . $user_info['id'] . ',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if ($user) {
$where['user_id'] = $user['id'];
} else {
$where['userid'] = 0;
}
}
}
// 列表
$list = Db::connect('DB2')->name('rebate')->alias('x')
->field('x.*,u.username')
->join('user u', 'u.id=x.user_id')
->where($where)->order('x.id desc')
->paginate(20, false, array('query' => $get));
foreach ($list as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
$list[$k] = $v;
}
// 汇总数据
$total = Db::connect('DB2')->name('rebate')
->field('
sum(amount) as amount,
sum(rebate_amount_actual) as rebate_amount_actual
')
->where($where)->find();
// 渲染参数和模板
$this->assign('list', $list);
$this->assign('user_info', $user_info);
$this->assign('total', $total);
$this->assign('game_type', $gameType);
return $this->fetch();
}
// 返水结算查询
public function rebate_log()
{
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id', $user_info['id'])->find();
$user_info['account_type'] = $account_type;
if ($user_info['account_type'] == 1) {
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get', $get);
$this->assign('query', $query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$gameType = Request::instance()->get('game_type');
if(empty($gameType)){
$gameType = 1;
}
// 转换日期时间
if ($startDate) {
$startTime = strtotime($startDate);
} else {
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s', $startTime);
$this->assign('get', $get);
}
if ($endDate) {
$endTime = strtotime($endDate);
} else {
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s', $endTime);
$this->assign('get', $get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between', [$startTime, $endTime]);
$where['game_type'] = $gameType;
if ($username) {
if ($username == $user_info['username']) {
$where['user_id'] = $user_info['id'];
} else {
$userWhere = [];
$userWhere['username'] = $username;
$userWhere['is_delete'] = 0;
if ($user_info['agent_parent_id'] > 0) {
$userWhere['agent_parent_id_path'] = array('like', '%,' . $user_info['id'] . ',%');
} else {
$userWhere['agent_parent_id_path'] = array('like', '%' . $user_info['id'] . ',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if ($user) {
$where['user_id'] = $user['id'];
} else {
$where['user_id'] = 0;
}
}
}
// 列表
$list = Db::connect('DB2')->name('rebate_log')->where($where)->order('id desc')->paginate(20, false, array('query' => $get));
foreach ($list as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
// 操作人
if ($v['admin_or_agent'] == 1) {
$v['connection_username'] = $v['admin_username'];
$v['admin_or_agent_msg'] = '总台操作';
} else if ($v['admin_or_agent'] == 2) {
$v['admin_or_agent_msg'] = '代理操作';
} else if ($v['admin_or_agent'] == 4) {
$v['admin_or_agent_msg'] = '即时结算系统操作';
}else if ($v['admin_or_agent'] == 5) {
$v['admin_or_agent_msg'] = '定时结算系统操作';
}else {
$v['agent_or_admin_msg'] = '-';
}
if ($v['type'] == 1) {
$v['type_msg'] = '余额上分';
} elseif ($v['type'] == 2) {
$v['type_msg'] = '现金结算';
} else {
$v['type_msg'] = '-';
}
$list[$k] = $v;
}
// 汇总数据
$total = Db::connect('DB2')->name('rebate_log')
->field('
sum(amount) as amount,
sum(rebate_amount) as rebate_amount
')
->where($where)->find();
// 渲染参数和模板
$this->assign('list', $list);
$this->assign('user_info', $user_info);
$this->assign('total', $total);
$this->assign('game_type', $gameType);
return $this->fetch();
}
// 下级查询
public function child(){
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1 || $user_info['account_type'] == 2){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = trim(Request::instance()->get('username'));
$export = trim(Request::instance()->get('export'));
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 验证查询用户
$is_child = false;
$user = Db::connect('DB2')->name('user')->where('username',$username)->find();
$agent_parent_id_path = array();
if($user){
$agent_parent_id_path = explode(',',$user['agent_parent_id_path']);
if(in_array($user_info['id'],$agent_parent_id_path)){
$is_child = true;
// 拼装搜索条件
$where = array();
$where['is_delete'] = 0;
if($user['agent'] == 1){
if($user['agent_parent_id'] > 0){
// 非总代
$where['agent_parent_id_path'] = array('like','%,'.$user['id'].',%');
$child_list = Db::connect('DB2')->name('user')->where($where)->whereOr('id',$user['id'])->order('id asc')->select();
}else{
// 总代
$where['agent_parent_id_path'] = array('like',$user['id'].',%');
$child_list = Db::connect('DB2')->name('user')->where($where)->whereOr('id',$user['id'])->order('id asc')->select();
}
}else{
// 会员
$child_list = Db::connect('DB2')->name('user')->where('username',$username)->whereOr('id',$user['id'])->order('id asc')->select();
}
}else{
$child_list = array();
}
}else{
$child_list = array();
}
// 层级关系
$relation = '';
foreach($agent_parent_id_path as $k => $v){
$relation_user = Db::connect('DB2')->name('user')->where('id',$v)->find();
$agent = '会员';
if($relation_user['agent'] == 1){
$agent = '代理';
}
if($k == 0){
$relation .= $relation_user['username'].'('.$agent.')';
}else{
$relation .= ' > '.$relation_user['username'].'('.$agent.')';
}
}
// 数据查询条件
$dataWhere = array();
$dataWhere['status'] = 1;
$dataWhere['create_time'] = array('between',[$startTime,$endTime]);
// 找出所有的下注会员
$user_bet = Db::connect('DB2')->name('bet')->where($dataWhere)->group('user_id')->field('user_id')->select();
$user_bet = array_column($user_bet,'user_id');
$user_bet = array_unique($user_bet);
// 查询代理及数据统计
foreach($child_list as $k => $v){
// 循环获取数据
$v['amount'] = 0;
$v['win_total'] = 0;
foreach($user_bet as $key => $val){
$betUser = Db::connect('DB2')->name('user')->where('id',$val)->find();
$parentIdPath = explode(',',$betUser['agent_parent_id_path']);
if(in_array($v['id'],$parentIdPath)){
$dataWhere['user_id'] = $val;
// 总押
$v['amount'] += Db::connect('DB2')->name('bet')->where($dataWhere)->sum('amount');
// 总赢
$v['win_total'] += Db::connect('DB2')->name('bet')->where($dataWhere)->sum('win_total');
}
}
$dataWhere['user_id'] = $v['id'];
// 洗码量
$dataWhere['user_id'] = $v['id'];
$v['ximaliang'] = Db::connect('DB2')->name('xima')->where($dataWhere)->sum('ximaliang');
// 洗码费
$v['maliang'] = Db::connect('DB2')->name('xima')->where($dataWhere)->sum('net_maliang');
// 未结码量
$v['maliang_unbalanced'] = Db::connect('DB2')->name('xima')->where(['user_id'=>$v['id'],'is_checkout'=>0])->sum('net_maliang');
//占股收益
$v['cs'] = Db::connect('DB2')->name('cs')->where($dataWhere)->sum('share_amount');
//占股收益未结
$v['cs_unbalanced'] = Db::connect('DB2')->name('cs')->where(array('user_id' => $v['id'],'is_checkout' => 0))->sum('share_amount');
// 抽水
$v['commission'] = Db::connect('DB2')->name('agent_commission')->where($dataWhere)->sum('money_commission');
// 未结抽水
$v['commission_unbalanced'] = Db::connect('DB2')->name('agent_commission')->where(['agent_id'=>$v['id'],'is_checkout'=>0])->sum('money_commission');
//代理收益 = 占股收益 + 洗码费 + 抽水
$v['income'] = $v['cs'] + $v['maliang'] + $v['commission'];
if($v['agent'] == 1){
$v['agent_msg'] = '代理';
}else{
$v['agent_msg'] = '会员';
}
// 剩余额度
$v['money'] = round($v['money'],2);
$v['money_child'] = 0;
// 下级总剩余额度
$moneyWhere = array();
$moneyWhere['is_delete'] = 0;
if($v['agent'] == 1){
if($v['agent_parent_id'] > 0){
// 非总代
$moneyWhere['agent_parent_id_path'] = array('like','%,'.$v['id'].',%');
$money_list = Db::connect('DB2')->name('user')->where($moneyWhere)->select();
}else{
// 总代
$where['agent_parent_id_path'] = array('like',$v['id'].',%');
$money_list = Db::connect('DB2')->name('user')->where($where)->select();
}
}else{
// 会员
$money_list = Db::connect('DB2')->name('user')->where('id',$v['id'])->select();
}
foreach($money_list as $i){
$v['money_child'] += Db::connect('DB2')->name('user')->where('id',$i['id'])->value('money');
}
// 洗码率
$v['ximalv'] = $v['agent_ximalv'].' / '.$v['agent_ximalv_dt'];
$child_list[$k] = $v;
}
// 导出excel列表
if($export == 1){
if($child_list){
//重新组合
$excelData = array();
foreach($child_list AS $k => $v){
$excelData[$k][0] = $v['agent_msg'];
$excelData[$k][1] = $v['nickname'];
$excelData[$k][2] = $v['username'];
$excelData[$k][3] = $v['agent_parent_username'];
$excelData[$k][4] = $v['money'];
$excelData[$k][5] = $v['money_child'];
$excelData[$k][6] = $v['amount'];
$excelData[$k][7] = $v['win_total'];
$excelData[$k][8] = $v['ximaliang'];
$excelData[$k][9] = $v['ximalv'];
$excelData[$k][10] = $v['agent_cs'];
$excelData[$k][11] = $v['maliang'];
$excelData[$k][12] = $v['win_total'] + $v['maliang'];
$excelData[$k][13] = $v['cs'];
$excelData[$k][14] = $v['maliang_unbalanced'];
$excelData[$k][15] = $v['cs_unbalanced'];
$excelData[$k][16] = $v['commission'];
$excelData[$k][17] = $v['commission_unbalanced'];
}
$title = array('账户类型','名称','账号','上级代理','下级总剩余额度','总押码','总赢','总洗码','百/龙/牛洗码率%','占股%','洗码费','实际总赢','占股收益','洗码费(未结)','占股收益(未结)','代理抽水','代理抽水(未结)');
if($startDate && $endDate){
$this->exportExcelCore($excelData, '下级数据表-'.$startDate."".$endDate, $title);
}else{
$this->exportExcelCore($excelData, '下级数据表', $title);
}
exit('已导出支持列表,请不要重复刷新该页面!');
}else{
exit('没有可以导出的列表!');
}
}
// 渲染参数和模板
$this->assign('child_list',$child_list);
$this->assign('user_info',$user_info);
$this->assign('user',$user);
$this->assign('is_child',$is_child);
$this->assign('relation',$relation);
return $this->fetch();
}
// 代理抽水
public function commission(){
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$agent_username = Request::instance()->get('agent_username');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between',[$startTime,$endTime]);
if($agent_username){
if($agent_username == $user_info['username']){
$where['user_id'] = $user_info['id'];
}else{
$userWhere = [];
$userWhere['username'] = $agent_username;
$userWhere['is_delete'] = 0;
if($user_info['agent_parent_id'] > 0){
$userWhere['agent_parent_id_path'] = array('like','%,'.$user_info['id'].',%');
}else{
$userWhere['agent_parent_id_path'] = array('like','%'.$user_info['id'].',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if($user){
$where['user_id'] = $user['id'];
}
}
}
// 汇总金额
if($user_info['agent_parent_id'] > 0){
$commission_list = Db::name('agent_commission_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->field('c.*,u.agent_parent_id_path')->paginate(10,false,array('query'=>$get));
}else{
$commission_list = Db::name('agent_commission_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->field('c.*,u.agent_parent_id_path')->paginate(10,false,array('query'=>$get));
}
foreach($commission_list as $k => $v){
// 信息组装
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
if($v['type'] == 1){
$v['type_msg'] = '充值上分';
}elseif($v['type'] == 2){
$v['type_msg'] = '现金结算';
}else{
$v['type_msg'] = '-';
}
// 数据格式转换
$v['amount'] = round($v['amount'],2);
$v['agent_commission'] = round($v['agent_commission'],2);
$v['money_commission'] = round($v['money_commission'],2);
$commission_list[$k] = $v;
}
// 汇总信息
$totalMoney = Db::connect('DB2')->name('agent_commission_log')->where($where)->sum('money_commission');
if($user_info['agent_parent_id'] > 0){
$totalMoney = Db::connect('DB2')->name('agent_commission_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->sum('money_commission');
}else{
$totalMoney = Db::connect('DB2')->name('agent_commission_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->sum('money_commission');
}
// 渲染参数和模板
$this->assign('commission_list',$commission_list);
$this->assign('user_info',$user_info);
$this->assign('totalMoney',$totalMoney);
return $this->fetch();
}
// 代理抽佣
public function commission_banker(){
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return '非法请求';
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
$username = Request::instance()->get('username');
$agent_username = Request::instance()->get('agent_username');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 拼装搜索条件
$where = array();
$where['create_time'] = array('between',[$startTime,$endTime]);
if($agent_username){
if($agent_username == $user_info['username']){
$where['user_id'] = $user_info['id'];
}else{
$userWhere = [];
$userWhere['username'] = $agent_username;
$userWhere['is_delete'] = 0;
if($user_info['agent_parent_id'] > 0){
$userWhere['agent_parent_id_path'] = array('like','%,'.$user_info['id'].',%');
}else{
$userWhere['agent_parent_id_path'] = array('like','%'.$user_info['id'].',%');
}
$user = Db::connect('DB2')->name('user')->where($userWhere)->find();
if($user){
$where['user_id'] = $user['id'];
}
}
}
// 汇总金额
if($user_info['agent_parent_id'] > 0){
$commission_list = Db::name('agent_commission_banker_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->field('c.*,u.agent_parent_id_path')->paginate(10,false,array('query'=>$get));
}else{
$commission_list = Db::name('agent_commission_banker_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->field('c.*,u.agent_parent_id_path')->paginate(10,false,array('query'=>$get));
}
foreach($commission_list as $k => $v){
// 信息组装
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
if($v['type'] == 1){
$v['type_msg'] = '充值上分';
}elseif($v['type'] == 2){
$v['type_msg'] = '现金结算';
}else{
$v['type_msg'] = '-';
}
// 数据格式转换
$v['amount'] = round($v['amount'],2);
$v['agent_commission'] = round($v['agent_commission'],2);
$v['money_commission'] = round($v['money_commission'],2);
$commission_list[$k] = $v;
}
// 汇总信息
$totalMoney = Db::connect('DB2')->name('agent_commission_banker_log')->where($where)->sum('money_commission');
if($user_info['agent_parent_id'] > 0){
$totalMoney = Db::connect('DB2')->name('agent_commission_banker_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "%,'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->sum('money_commission');
}else{
$totalMoney = Db::connect('DB2')->name('agent_commission_banker_log')->alias('c')->join('cg_user u','c.user_id=u.id and (u.agent_parent_id_path like "'.$user_info['id'].',%" or c.user_id='.$user_info['id'].')')->where($where)->order('c.id desc')->sum('money_commission');
}
// 渲染参数和模板
$this->assign('commission_list',$commission_list);
$this->assign('user_info',$user_info);
$this->assign('totalMoney',$totalMoney);
return $this->fetch();
}
/**
* 游戏报表
* @return string
* DateTime: 2019/8/26 17:14
*/
public function win_total(){
$langType = cookie('think_var');
$lang = Lang::get('agent');
$jsonlang = json_encode($lang);
$this->assign('langType',$langType);
$this->assign('lang',$lang);
$this->assign('jsonlang',$jsonlang);
// 登录用户信息
$user_info = Session::get('user_info');
$account_type = $user_info['account_type'];
$user_info = Db::connect('DB2')->name('user')->where('id',$user_info['id'])->find();
$user_info['account_type'] = $account_type;
if($user_info['account_type'] == 1){
return $lang['illegal_request'];
}
// 用于分页和搜索查询的数据
$get = Request::instance()->get();
$query = http_build_query($get);
$this->assign('get',$get);
$this->assign('query',$query);
// 接收参数
$startDate = Request::instance()->get('startDate');
$endDate = Request::instance()->get('endDate');
// 转换日期时间
if($startDate){
$startTime = strtotime($startDate);
}else{
$startTime = strtotime(date('Y-m-d'));
$get['startDate'] = date('Y-m-d H:i:s',$startTime);
$this->assign('get',$get);
}
if($endDate){
$endTime = strtotime($endDate);
}else{
$endTime = time();
$get['endDate'] = date('Y-m-d H:i:s',$endTime);
$this->assign('get',$get);
}
// 拼装搜索条件
$where['user_id'] = ['>',TEST_PLAYER];
if($user_info['agent_parent_id'] > 0){//非一级代理
$sqlWhere = 'agent_parent_id_path like "%,'.$user_info['id'].',%" or user_id='.$user_info['id'];
}else{//一级代理
$sqlWhere = 'agent_parent_id_path like "'.$user_info['id'].',%" or user_id='.$user_info['id'];
}
$where['create_time'] = array('between',[$startTime,$endTime]);
$where['status'] = 1;
$betList = Db::connect('DB2')->name('bet')->where($where)->where($sqlWhere)->select();
//1-百家乐2-龙虎, 4-牛牛 5-三宝
$win_total = $maliang_total = 0;
$data = [
'baccarat_win'=>0,
'dt_win'=>0,
'bull_win'=>0,
'sanka_win'=>0,
'color_plate_win'=>0,
'sic_bo_win'=>0,
'roulette_win'=>0,
];
foreach($betList as $key=>$bet){
if(in_array($bet['game_id'],[1,2,4,5,6,7,8])){
//统计马量
$maliang_total += Db::connect('DB2')->name('xima')->where(['bet_id'=>$bet['id'],'user_id'=>$bet['user_id']])->sum('bet_maliang');
//统计总赢
$win_total +=$bet['win_total'];
//统计单个游戏总赢
switch($bet['game_id']){
case 1:
$data['baccarat_win'] += $bet['win_total'];break;
case 2:
$data['dt_win'] += $bet['win_total'];break;
case 4:
$data['bull_win'] += $bet['win_total'];break;
case 5:
$data['sanka_win'] += $bet['win_total'];break;
case 6:
$data['color_plate_win'] += $bet['win_total'];break;
case 7:
$data['sic_bo_win'] += $bet['win_total'];break;
case 8:
$data['roulette_win'] += $bet['win_total'];break;
}
}
}
// 所有下级
if($user_info['agent_parent_id'] > 0){//非一级代理
$sqlWhere = 'agent_parent_id_path like "%,'.$user_info['id'].',%" or id='.$user_info['id'];
}else{//一级代理
$sqlWhere = 'agent_parent_id_path like "'.$user_info['id'].',%" or id='.$user_info['id'];
}
$userWhere = [];
$userWhere['id'] = ['>',TEST_PLAYER];
$userNames = Db::connect('DB2')->name('user')->where($userWhere)->where($sqlWhere)->column('username');
// 棋牌总赢
$qpWhere = [];
$qpWhere['userName'] = array('in',$userNames);
$qpWhere['createTime'] = array('between',[$startTime,$endTime]);
$data['qp_win'] = Db::connect('DB2')->name('game_log')->where($qpWhere)->sum('gold');
$win_total += $data['qp_win'];
$this->assign('win_total',$win_total);
$this->assign('maliang_total',$maliang_total);
$this->assign('data',$data);
// 渲染参数和模板
return $this->fetch();
}
}