Pro/application/admin/controller/Apicloud.php
2026-01-28 15:54:52 +08:00

721 lines
34 KiB
PHP

<?php
namespace app\admin\controller;
use \think\Controller;
use \think\Request;
use \think\Db;
use \think\Lang;
use \think\Session;
use \think\Log;
class Apicloud extends Controller{
private function do_opening_dt($numberTab,$z){
$game_id = $numberTab['game_id'];
$table_id = $numberTab['table_id'];
$table_info = Db::name('table')->where(array('id' => $table_id))->find();
$boot_id = $numberTab['boot_id'];
$opening = $z['result'];
$pair = $z['pair'];
$bets = Db::name('bet')->where(array('number_tab_id' => $numberTab['id']))->select();
$oBets = $bets;
if(!empty($oBets)){
foreach($bets AS $key => $value){
$bet_win_total = $value['win_total'];
Db::execute("update `cg_user` set `money` = `money` - ".$bet_win_total." where `id`=".$value['user_id'].' limit 1');
}
//删除上一铺下注、洗码、分成
$vid = Db::name('bet')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('xima')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('cs')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('agent_commission')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('number_tab')->where(array('id' => $numberTab['id']))->limit(1)->update(array('result' => $opening));
//记录修改日志
$retreated_log_data = array();
$retreated_log_data['mode'] = 1;
$retreated_log_data['type'] = 1;
$retreated_log_data['create_time'] = time();
$retreated_log_data['gamei_id'] = $game_id;
$retreated_log_data['table_id'] = $table_id;
$retreated_log_data['table_name'] = $numberTab['table_name'];
$retreated_log_data['boot_id'] = $boot_id;
$retreated_log_data['boot_num'] = $numberTab['boot_num'];
$retreated_log_data['number_tab_id'] = $numberTab['id'];
$retreated_log_data['number'] = $numberTab['number'];
$str = '';
if($numberTab['result'] == 1) $str = '龙';
if($numberTab['result'] == 2) $str = '虎';
if($numberTab['result'] == 3) $str = '和';
$nstr = '';
if($opening == 1) $nstr = '龙';
if($opening == 2) $nstr = '虎';
if($opening == 3) $nstr = '和';
$retreated_log_data['remark'] = '该口原本结果为:'.$str.',更改为:'.$nstr;
Db::name('retreated_log')->insert($retreated_log_data);
foreach($oBets AS $k => $v){
$user_info = Db::name('user')->where(array('id' => intval($v['user_id'])))->find();
$agent_commission = $user_info['agent_commission_dt'] / 100;
if($user_info){
$amount = 0;
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'];
$win_money = 0;
// 双边洗码
$ximaliang = 0;
if($user_info['type_xima'] == 1){
$ximaliang = $v['banker_amount'] - $v['player_amount'];
$ximaliang = abs($ximaliang);
}
// 龙赢
if ($opening == 1) {
if($v['banker_amount'] > 0){
$win_money = round($v['banker_amount'] * (1 + $user_info['price_dragon'] - $agent_commission),2) + $win_money;
}
// 单边洗码
if($user_info['type_xima'] == 2){
$ximaliang = $v['player_amount'];
}
}
// 虎赢
if ($opening == 2 && $v['player_amount'] > 0) {
$win_money = round($v['player_amount'] * (1 + $user_info['price_tiger'] - $agent_commission),2) + $win_money;
// 单边洗码
if($user_info['type_xima'] == 2){
$ximaliang = $v['banker_amount'];
}
}
// 和
if ($opening == 3) {
$win_money = $v['banker_amount'] + $v['player_amount'] + $win_money;
$ximaliang = 0;
if($v['tie_amount'] > 0){
$win_money = $v['tie_amount'] * (1 + $user_info['price_tie_dt']) + $win_money;
}
}
// 计算最终赢钱还是输钱
$win_total = $win_money - $amount;
//更新user表余额
if($v['result'] == 0){
$money = $user_info['money'] + $win_total + $amount;
}else{
$money = $user_info['money'] + $win_total;
}
Db::name('user')->where(array('id' => $user_info['id']))->update(array('money' => $money));
//更新bet表
$insertV = $v;
unset($insertV['id']);
$insertBetData = $insertV;
$insertBetData['result'] = $opening;
$insertBetData['win_total'] = $win_total;
if($v['result'] > 0){
$insertBetData['is_edit'] = 1;
}else{
$insertBetData['is_edit'] = 0;
}
$insertBetData['is_end'] = 1;
Db::name('bet')->insert($insertBetData);
//写入cs表
$agent = explode(',', $user_info['agent_parent_id_path']); //切割多个代理ID为数组
krsort($agent);
$nextCs = 0;
$nextMaliang = 0;
foreach($agent as $key => $value){
$user_path_info = Db::name('user')->where(array('id' => $value))->find();
if($user_path_info){
$maliang = 0;
$ximalv = $user_path_info['agent_ximalv_dt'];
$maliang_true = 0;
if($ximalv > 0 && $ximaliang > 0){
$type = $key == 0 ? 1 : 0;
$maliang = round(($ximaliang * $ximalv) / 100,2);
$maliang_true = $maliang;
if($user_path_info['agent_cs'] > 0 && $user_path_info['share_xima'] == 2){
$maliang_true = $maliang - round($maliang * ($user_path_info['agent_cs'] / 100),2);
}
$net_maliang = $maliang - $nextMaliang;
$nextMaliang = $net_maliang + $nextMaliang;
$insert_xima_sql = "INSERT INTO `cg_xima` (`user_id`,`bet_user_id`,`bet_id`,`game_id`,`table_id`,`sumday_id`,`day`,`number_tab_id`,`boot_id`,`ximaliang`,`ximalv`,`maliang`,`maliang_true`,`total`,`win_total`,`create_time`,`type`,`net_maliang`) VALUES (".$value.",".$user_info['id'].",".$v['id'].",".$v['game_id'].",".$v['table_id'].",".$v['sumday_id'].",'".$v['day']."',".$v['number_tab_id'].",".$v['boot_id'].",".$ximaliang.",".$ximalv.",".$maliang.",".$maliang_true.",".$amount.",".$win_total.",".$v['create_time'].",".$type.",".$net_maliang.")";
Db::execute($insert_xima_sql);
}
//if($user_path_info['agent_cs'] > 0){
$type = $key == 0 ? 1 : 0;
$share_amount = to_number(round(($user_path_info['agent_cs'] * $win_total) / 100,2));
if($user_path_info['agent_cs'] > 0){
$share_amount_true = round(to_number($maliang + $win_total) * ($user_path_info['agent_cs'] / 100),2);
}else{
$share_amount_true = $maliang;
}
$net_cs = $share_amount - $nextCs;
$nextCs = $net_cs + $nextCs;
$insert_cs_sql = "INSERT INTO `cg_cs` (`user_id`,`bet_user_id`,`bet_id`,`game_id`,`table_id`,`number_tab_id`,`boot_id`,`sumday_id`,`day`,`share_amount`,`share_amount_true`,`share_percent`,`total`,`win_total`,`create_time`,`type`,`net_cs`,`maliang`) VALUES (".$value.",".$user_info['id'].",".$v['id'].",".$v['game_id'].",".$v['table_id'].",".$v['number_tab_id'].",".$v['boot_id'].",".$v['sumday_id'].",'".$v['day']."',".$share_amount.",".$share_amount_true.",".$user_path_info['agent_cs'].",".$amount.",".$win_total.",".$v['create_time'].",".$type.",".$net_cs.",".$maliang.")";
Db::execute($insert_cs_sql);
//}
}
}
// 代理抽水
if($opening == 1 && $v['banker_amount'] > 0 && $user_info['agent_commission'] > 0){
$parentIdPath = explode(',',$user_info['agent_parent_id_path']);
foreach($parentIdPath as $value){
$user = Db::name('user')->where('id',$value)->find();
$insert_commission_sql = "INSERT INTO `cg_agent_commission` (`user_id`,`username`,`agent_id`,`agent_username`,`game_id`,`game_name`,`table_id`,`table_name`,`boot_id`,`boot_num`,`number_tab_id`,`number`,`bet_id`,`amount`,`agent_commission`,`money_commission`,`result`,`create_time`) VALUES (".$user['id'].",'".$user['username']."',".$user['agent_parent_id'].",'".$user['agent_parent_username']."',2,'龙虎',".$table_info['id'].",'".$table_info['table_name']."',".$v['boot_id'].",".$v['boot_num'].",".$v['number_tab_id'].",".$v['number'].",".$v['id'].",".$v['banker_amount'].",".$agent_commission.",".$v['banker_amount'] * $agent_commission.",".$opening.",".$v['create_time'].")";
Db::execute($insert_commission_sql);
}
}
if($opening == 2 && $v['player_amount'] > 0 && $user_info['agent_commission'] > 0){
$parentIdPath = explode(',',$user_info['agent_parent_id_path']);
foreach($parentIdPath as $value){
$user = Db::name('user')->where('id',$value)->find();
$insert_commission_sql = "INSERT INTO `cg_agent_commission` (`user_id`,`username`,`agent_id`,`agent_username`,`game_id`,`game_name`,`table_id`,`table_name`,`boot_id`,`boot_num`,`number_tab_id`,`number`,`bet_id`,`amount`,`agent_commission`,`money_commission`,`result`,`create_time`) VALUES (".$user['id'].",'".$user['username']."',".$user['agent_parent_id'].",'".$user['agent_parent_username']."',2,'龙虎',".$table_info['id'].",'".$table_info['table_name']."',".$v['boot_id'].",".$v['boot_num'].",".$v['number_tab_id'].",".$v['number'].",".$v['id'].",".$v['player_amount'].",".$user_info['agent_commission'].",".$v['player_amount'] * $agent_commission.",".$opening.",".$v['create_time'].")";
Db::execute($insert_commission_sql);
}
}
}
}
}
}
private function do_opening_baccarat_win6($numberTab,$z){
$game_id = $numberTab['game_id'];
$table_id = $numberTab['table_id'];
$boot_id = $numberTab['boot_id'];
$opening = $z['result'];
$pair = $z['pair'];
$win6 = $z['win6'];
$bets = Db::name('bet')->where(array('number_tab_id' => $numberTab['id'], 'status' => 1))->select();
$oBets = $bets;
if(!empty($oBets)){
foreach($bets AS $key => $value){
$bet_win_total = $value['win_total'];
Db::execute("update `cg_user` set `money` = `money` - ".$bet_win_total." where `id`=".$value['user_id'].' limit 1');
}
//删除上一铺下注、洗码、分成
Db::name('bet')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('xima')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('cs')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('number_tab')->where(array('id' => $numberTab['id']))->limit(1)->update(array('result' => $opening, 'pair' => $pair, 'win6' => $win6));
//记录修改日志
$retreated_log_data = array();
$retreated_log_data['mode'] = 1;
$retreated_log_data['type'] = 1;
$retreated_log_data['create_time'] = time();
$retreated_log_data['gamei_id'] = $game_id;
$retreated_log_data['table_id'] = $table_id;
$retreated_log_data['table_name'] = $numberTab['table_name'];
$retreated_log_data['boot_id'] = $boot_id;
$retreated_log_data['boot_num'] = $numberTab['boot_num'];
$retreated_log_data['number_tab_id'] = $number_tab_id;
$retreated_log_data['number'] = $numberTab['number'];
$str = '';
if($numberTab['result'] == 1) $str = '庄';
if($numberTab['result'] == 2) $str = '闲';
if($numberTab['result'] == 3) $str = '和';
if($numberTab['pair'] == 1) $str = $str.'-庄对';
if($numberTab['pair'] == 2) $str = $str.'-闲对';
if($numberTab['pair'] == 3) $str = $str.'-庄闲对';
if($numberTab['win6'] == 1) $str = $str.'-赢6';
$nstr = '';
if($opening == 1) $nstr = '庄';
if($opening == 2) $nstr = '闲';
if($opening == 3) $nstr = '和';
if($pair == 1) $nstr = $nstr.'-庄对';
if($pair == 2) $nstr = $nstr.'-闲对';
if($pair == 3) $nstr = $nstr.'-庄闲对';
if($isWin6 == 1) $nstr = $nstr.'-赢6';
$retreated_log_data['remark'] = '该口原本结果为:'.$str.',更改为:'.$nstr;
Db::name('retreated_log')->insert($retreated_log_data);
foreach($oBets AS $k => $v){
$user_info = Db::name('user')->field(array('id','money','agent_parent_id_path'))->where(array('id' => intval($v['user_id'])))->find();
if($user_info){
$amount = 0;
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'] + $v['banker_pair_amount'] + $v['player_pair_amount'];
$win_money = 0;
$BPT_ximaliang = 0;
if($opening == 1){
// 庄赢
if($v['banker_amount'] > 0){
if($isWin6 === 1){
$win_money = $v['banker_amount'] * (1 + 0.5) + $win_money;
}else{
$win_money = $v['banker_amount'] * (1 + 1) + $win_money;
}
}
$BPT_ximaliang = $v['player_amount'] + $v['tie_amount'];
}elseif($opening == 2){
// 闲赢
if($v['player_amount'] > 0){
if($isWin6 === 1){
$win_money = $v['player_amount'] * (1 + 0.5) + $win_money;
}else{
$win_money = $v['player_amount'] * (1 + 1) + $win_money;
}
}
$BPT_ximaliang = $v['banker_amount'] + $v['tie_amount'];
}elseif($opening == 3) {
// 和赢
if($v['tie_amount'] > 0){
$win_money = $v['tie_amount'] * (1 + 8) + $win_money;
}
// 开 和,下注庄和闲不扣钱
if($v['banker_amount'] > 0 && $v['player_amount'] > 0){
$win_money = $v['player_amount'] + $v['banker_amount'] + $win_money;
}elseif($v['banker_amount'] > 0){
$win_money = $v['banker_amount'] + $win_money;
} elseif ($v['player_amount'] > 0){
$win_money = $v['player_amount'] + $win_money;
}
}
if($pair == 3){
// 计算庄对下注的赢钱金额
if ($v['banker_pair_amount'] > 0) {
$win_money = $v['banker_pair_amount'] * (1 + 11) + $win_money;
}
//计算闲对下注的赢钱金额
if ($v['player_pair_amount'] > 0) {
$win_money = $v['player_pair_amount'] * (1 + 11) + $win_money;
}
}elseif($pair == 1){
if ($v['banker_pair_amount'] > 0) {
$win_money = $v['banker_pair_amount'] * (1 + 11) + $win_money;
}
}elseif($pair == 2){
if ($v['player_pair_amount'] > 0) {
$win_money = $v['player_pair_amount'] * (1 + 11) + $win_money;
}
}
// 计算最终赢钱还是输钱
$win_total = $win_money - $amount;
//更新user表余额
if($v['result'] == 0){
$money = $user_info['money'] + $win_total + $amount;
}else{
$money = $user_info['money'] + $win_total;
}
Db::name('user')->where(array('id' => $user_info['id']))->update(array('money' => $money));
//更新bet表
$insertV = $v;
unset($insertV['id']);
$insertBetData = $insertV;
$insertBetData['result'] = $opening;
$insertBetData['pair'] = $pair;
$insertBetData['win_total'] = $win_total;
if($v['result'] > 0){
$insertBetData['is_edit'] = 1;
}else{
$insertBetData['is_edit'] = 0;
}
$insertBetData['is_end'] = 1;
Db::name('bet')->insert($insertBetData);
//写入cs表
$agent = explode(',', $user_info['agent_parent_id_path']); //切割多个代理ID为数组
krsort($agent);
$nextCs = 0;
foreach($agent as $key => $value){
$user_path_info = Db::name('user')->where(array('id' => $value))->find();
if($user_path_info){
if($user_path_info['agent_cs'] > 0){
$type = $key == 0 ? 1 : 0;
$share_amount = to_number(($user_path_info['agent_cs'] * $win_total) / 100);
$share_amount_true = 0;
$net_cs = $share_amount - $share_amount;
$nextCs = $net_cs + $nextCs;
$insert_cs_sql = "INSERT INTO `cg_cs` (`user_id`,`bet_user_id`,`bet_id`,`game_id`,`table_id`,`number_tab_id`,`boot_id`,`sumday_id`,`day`,`share_amount`,`share_amount_true`,`share_percent`,`total`,`win_total`,`create_time`,`type`,`net_cs`) VALUES (".$value.",".$user_info['id'].",".$v['id'].",".$v['game_id'].",".$v['table_id'].",".$v['number_tab_id'].",".$v['boot_id'].",".$v['sumday_id'].",'".$v['day']."',".$share_amount.",".$share_amount_true.",".$user_path_info['agent_cs'].",".$amount.",".$win_total.",".time().",".$type.",".$net_cs.")";
Db::execute($insert_cs_sql);
}
}
}
}
}
}
}
private function do_opening_baccarat($numberTab,$z){
$game_id = $numberTab['game_id'];
$table_id = $numberTab['table_id'];
$table_info = Db::name('table')->where(array('id' => $table_id))->find();
$boot_id = $numberTab['boot_id'];
$opening = $z['result'];
$pair = $z['pair'];
$bets = Db::name('bet')->where(array('number_tab_id' => $numberTab['id'], 'status' => 1))->select();
$oBets = $bets;
if(!empty($oBets)){
foreach($bets AS $key => $value){
$bet_win_total = $value['win_total'];
Db::execute("update `cg_user` set `money` = `money` - ".$bet_win_total." where `id`=".$value['user_id'].' limit 1');
}
//删除上一铺下注、洗码、分成
Db::name('bet')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('xima')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('cs')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('agent_commission')->where(array('game_id' => $game_id, 'table_id' => $table_id, 'boot_id' => $boot_id, 'number_tab_id' => $numberTab['id']))->delete();
Db::name('number_tab')->where(array('id' => $numberTab['id']))->limit(1)->update(array('result' => $opening, 'pair' => $pair));
//记录修改日志
$retreated_log_data = array();
$retreated_log_data['mode'] = 1;
$retreated_log_data['type'] = 1;
$retreated_log_data['create_time'] = time();
$retreated_log_data['gamei_id'] = $game_id;
$retreated_log_data['table_id'] = $table_id;
$retreated_log_data['table_name'] = $numberTab['table_name'];
$retreated_log_data['boot_id'] = $boot_id;
$retreated_log_data['boot_num'] = $numberTab['boot_num'];
$retreated_log_data['number_tab_id'] = $numberTab['id'];
$retreated_log_data['number'] = $numberTab['number'];
$str = '';
if($numberTab['result'] == 1) $str = '庄';
if($numberTab['result'] == 2) $str = '闲';
if($numberTab['result'] == 3) $str = '和';
if($numberTab['pair'] == 1) $str = $str.'-庄对';
if($numberTab['pair'] == 2) $str = $str.'-闲对';
if($numberTab['pair'] == 3) $str = $str.'-庄闲对';
$nstr = '';
if($opening == 1) $nstr = '庄';
if($opening == 2) $nstr = '闲';
if($opening == 3) $nstr = '和';
if($pair == 1) $nstr = $nstr.'-庄对';
if($pair == 2) $nstr = $nstr.'-闲对';
if($pair == 3) $nstr = $nstr.'-庄闲对';
$retreated_log_data['remark'] = '该口原本结果为:'.$str.',更改为:'.$nstr;
Db::name('retreated_log')->insert($retreated_log_data);
foreach($oBets AS $k => $v){
$user_info = Db::name('user')->where(array('id' => intval($v['user_id'])))->find();
$agent_commission = $user_info['agent_commission'] / 100;
if($user_info){
$amount = 0;
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'] + $v['banker_pair_amount'] + $v['player_pair_amount'];
$win_money = 0;
// 双边洗码
$ximaliang = 0;
if($user_info['type_xima'] == 1){
$ximaliang = $v['banker_amount'] - $v['player_amount'];
$ximaliang = abs($ximaliang);
}
if($opening == 1){
// 庄赢
if($v['banker_amount'] > 0){
if($table_info['mode'] == 1){
$win_money = round($v['banker_amount'] * (1 + $user_info['price_banker'] - $agent_commission),2) + $win_money;
}else{
$win_money = round($v['banker_amount'] * (1 + $user_info['price_banker']),2) + $win_money;
}
}
// 单边洗码
if($user_info['type_xima'] == 2){
$ximaliang = $v['player_amount'];
}
}elseif($opening == 2){
// 闲赢
if($v['player_amount'] > 0){
$win_money = $v['player_amount'] * (1 + $user_info['price_player']) + $win_money;
}
// 单边洗码
if($user_info['type_xima'] == 2){
$ximaliang = $v['banker_amount'];
}
}elseif($opening == 3) {
$ximaliang = 0;
// 和赢
if($v['tie_amount'] > 0){
$win_money = $v['tie_amount'] * (1 + $user_info['price_tie_baccarat']) + $win_money;
}
// 开 和,下注庄和闲不扣钱
if($v['banker_amount'] > 0 && $v['player_amount'] > 0){
$win_money = $v['player_amount'] + $v['banker_amount'] + $win_money;
}elseif($v['banker_amount'] > 0){
$win_money = $v['banker_amount'] + $win_money;
} elseif ($v['player_amount'] > 0){
$win_money = $v['player_amount'] + $win_money;
}
}
if($pair == 3){
// 计算庄对下注的赢钱金额
if ($v['banker_pair_amount'] > 0) {
$win_money = $v['banker_pair_amount'] * (1 + $user_info['price_pair']) + $win_money;
}
//计算闲对下注的赢钱金额
if ($v['player_pair_amount'] > 0) {
$win_money = $v['player_pair_amount'] * (1 + $user_info['price_pair']) + $win_money;
}
}elseif($pair == 1){
if ($v['banker_pair_amount'] > 0) {
$win_money = $v['banker_pair_amount'] * (1 + $user_info['price_pair']) + $win_money;
}
}elseif($pair == 2){
if ($v['player_pair_amount'] > 0) {
$win_money = $v['player_pair_amount'] * (1 + $user_info['price_pair']) + $win_money;
}
}
// 计算最终赢钱还是输钱
$win_total = $win_money - $amount;
//更新user表余额
if($v['result'] == 0){
$money = $user_info['money'] + $win_total + $amount;
}else{
$money = $user_info['money'] + $win_total;
}
Db::name('user')->where(array('id' => $user_info['id']))->update(array('money' => $money));
//更新bet表
$insertV = $v;
unset($insertV['id']);
$insertBetData = $insertV;
$insertBetData['result'] = $opening;
$insertBetData['pair'] = $pair;
$insertBetData['win_total'] = $win_total;
if($v['result'] > 0){
$insertBetData['is_edit'] = 1;
}else{
$insertBetData['is_edit'] = 0;
}
$insertBetData['is_end'] = 1;
Db::name('bet')->insert($insertBetData);
//写入码率表及cs表
$agent = explode(',', $user_info['agent_parent_id_path']);
krsort($agent);
$nextCs = 0;
$nextMaliang = 0;
foreach($agent as $key => $value){
$user_path_info = Db::name('user')->where(array('id' => $value))->find();
if($user_path_info){
$maliang = 0;
$ximalv = $user_path_info['agent_ximalv'];
$maliang_true = 0;
if($ximalv > 0 && $ximaliang > 0){
$type = $key == 0 ? 1 : 0;
$maliang = round(($ximaliang * $ximalv) / 100,2);
$maliang_true = $maliang;
if($user_path_info['agent_cs'] > 0 && $user_path_info['share_xima'] == 2){
$maliang_true = $maliang - round($maliang * ($user_path_info['agent_cs'] / 100),2);
}
$net_maliang = $maliang - $nextMaliang;
$nextMaliang = $net_maliang + $nextMaliang;
$insert_xima_sql = "INSERT INTO `cg_xima` (`user_id`,`bet_user_id`,`bet_id`,`game_id`,`table_id`,`sumday_id`,`day`,`number_tab_id`,`boot_id`,`ximaliang`,`ximalv`,`maliang`,`maliang_true`,`total`,`win_total`,`create_time`,`type`,`net_maliang`) VALUES (".$value.",".$user_info['id'].",".$v['id'].",".$v['game_id'].",".$v['table_id'].",".$v['sumday_id'].",'".$v['day']."',".$v['number_tab_id'].",".$v['boot_id'].",".$ximaliang.",".$ximalv.",".$maliang.",".$maliang_true.",".$amount.",".$win_total.",".$v['create_time'].",".$type.",".$net_maliang.")";
Db::execute($insert_xima_sql);
}
//if($user_path_info['agent_cs'] > 0){
$type = $key == 0 ? 1 : 0;
$share_amount = to_number(($user_path_info['agent_cs'] * $win_total) / 100);
if($user_path_info['agent_cs'] > 0){
$share_amount_true = round(to_number($maliang + $win_total) * ($user_path_info['agent_cs'] / 100),2);
}else{
$share_amount_true = $maliang;
}
$net_cs = $share_amount - $nextCs;
$nextCs = $net_cs + $nextCs;
$insert_cs_sql = "INSERT INTO `cg_cs` (`user_id`,`bet_user_id`,`bet_id`,`game_id`,`table_id`,`number_tab_id`,`boot_id`,`sumday_id`,`day`,`share_amount`,`share_amount_true`,`share_percent`,`total`,`win_total`,`create_time`,`type`,`net_cs`,`maliang`) VALUES (".$value.",".$user_info['id'].",".$v['id'].",".$v['game_id'].",".$v['table_id'].",".$v['number_tab_id'].",".$v['boot_id'].",".$v['sumday_id'].",'".$v['day']."',".$share_amount.",".$share_amount_true.",".$user_path_info['agent_cs'].",".$amount.",".$win_total.",".$v['create_time'].",".$type.",".$net_cs.",".$maliang.")";
Db::execute($insert_cs_sql);
//}
}
}
// 代理抽水
if($opening == 1 && $v['banker_amount'] > 0 && $user_info['agent_commission'] > 0 ){
$parentIdPath = explode(',',$user_info['agent_parent_id_path']);
foreach($parentIdPath as $value){
$user = Db::name('user')->where('id',$value)->find();
$insert_commission_sql = "INSERT INTO `cg_agent_commission` (`user_id`,`username`,`agent_id`,`agent_username`,`game_id`,`game_name`,`table_id`,`table_name`,`boot_id`,`boot_num`,`number_tab_id`,`number`,`bet_id`,`amount`,`agent_commission`,`money_commission`,`result`,`pair`,`create_time`) VALUES (".$user['id'].",'".$user['username']."',".$user['agent_parent_id'].",'".$user['agent_parent_username']."',1,'百家乐',".$table_info['id'].",'".$table_info['table_name']."',".$v['boot_id'].",".$v['boot_num'].",".$v['number_tab_id'].",".$v['number'].",".$v['id'].",".$v['banker_amount'].",".$user_info['agent_commission'].",".$v['banker_amount'] * $agent_commission.",".$opening.",".$pair.",".$v['create_time'].")";
Db::execute($insert_commission_sql);
}
}
}
}
}
}
public function get_number_tab_id(){
if(Request::instance()->isPost()){
$table_id = intval(Request::instance()->post('online_table_id'));
$table_token = Request::instance()->post('table_token');
$local_day = Request::instance()->post('day');
$local_boot_num = intval(Request::instance()->post('boot_num'));
$local_number = intval(Request::instance()->post('number'));
if($table_id > 0 && $local_day && $local_boot_num > 0 && $local_number > 0){
$table = Db::name('table')->where(array('id' => $table_id))->find();
$game_id = $table['game_id'];
if($game_id == 1){
$bootTableName = 'boot';
$numberTabTableName = 'number_tab';
$betTableName = 'bet';
}elseif($game_id == 2){
$bootTableName = 'boot';
$numberTabTableName = 'number_tab';
$betTableName = 'bet';
}else{
return json(array('Success' => 0, 'Msg' => 'game_error'));
}
if($table['table_token'] == $table_token){
$lastNumberTab = Db::name($numberTabTableName)->where(array('table_id' => $table_id))->order('id DESC')->find();
//var_dump($local_day);
//echo "<br>";
//var_dump($local_boot_num);
//echo "<br>";
//var_dump($local_number);
//echo "<br>";
//echo "<pre>";
//var_dump($lastNumberTab);
//echo "</pre>";
if($lastNumberTab){
if($local_day == $lastNumberTab['day'] && $lastNumberTab['boot_num'] == $local_boot_num && $lastNumberTab['number'] == $local_number){
return json(array('Success' => 1, 'lastNumberTabId' => $lastNumberTab['id']));
}else{
return json(array('Success' => 0, 'Msg' => 'bet_status_error'));
}
}else{
return json(array('Success' => 0, 'Msg' => 'not_number_tab'));
}
}else{
return json(array('Success' => 0, 'Msg' => 'table_error'));
}
}else{
return json(array('Success' => 0, 'Msg' => 'post_error'));
}
}
}
public function sync_data(){
if(Request::instance()->isPost()){
$post = Request::instance()->post();
$data = unserialize($post['data']);
$localTable = $data['table'];
$localSumday = $data['sumday'];
$localBoot = $data['boot'];
$localNumberTab = $data['number_tab'];
$online_table_id = intval($localTable['online_table_id']);
$onlineTable = Db::name('table')->where(array('id' => $online_table_id))->find();
$game_id = intval($onlineTable['game_id']);
if($game_id == 1){
$bootTableName = 'boot';
$numberTabTableName = 'number_tab';
$betTableName = 'bet';
}elseif($game_id == 2){
$bootTableName = 'boot';
$numberTabTableName = 'number_tab';
$betTableName = 'bet';
}else{
return json(array('Success' => 0, 'Msg' => 'no_table_info'));
}
/*
echo "<pre>";
print_r($localTable);
print_r($localSumday);
print_r($localBoot);
print_r($localNumberTab);
echo "</pre>";
exit();
*/
if($onlineTable && $onlineTable['table_token'] == $localTable['table_token']){
foreach($localSumday AS $k => $v){
$onlineSumday = Db::name('sumday')->where(array('table_id' => $online_table_id, 'day' => $v['day']))->find();
if($onlineSumday){
$lastOnlineSumdayID = $onlineSumday['id'];
$localSumdayID = $v['id'];
unset($v['id']);
$v['table_id'] = $online_table_id;
$v['table_name'] = $onlineTable['table_name'];
Db::name('sumday')->where(array('id' => $onlineSumday['id']))->update($v);
foreach($localBoot AS $key => $value){
if($value['sumday_id'] == $localSumdayID){
$boot = Db::name($bootTableName)->where(array('table_id' => $online_table_id, 'sumday_id' => $lastOnlineSumdayID, 'boot_num' => $value['boot_num']))->find();
$localBootID = $value['id'];
unset($value['id']);
$value['table_id'] = $online_table_id;
$value['table_name'] = $onlineTable['table_name'];
$value['sumday_id'] = $lastOnlineSumdayID;
if($boot){
Db::name($bootTableName)->where(array('id' => $boot['id']))->limit(1)->update($value);
foreach($localNumberTab AS $j => $z){
if($z['boot_id'] == $localBootID){
$numberTab = Db::name($numberTabTableName)->where(array('table_id' => $online_table_id, 'sumday_id' => $lastOnlineSumdayID, 'boot_id' => $boot['id'], 'number' => $z['number']))->find();
unset($z['id']);
unset($z['is_delete']);
unset($z['is_edit']);
if(isset($z['lucky_six'])){
unset($z['lucky_six']);
}
if(isset($z['lucky_six_number'])){
unset($z['lucky_six_number']);
}
unset($z['is_edit']);
$z['table_id'] = $online_table_id;
$z['table_name'] = $onlineTable['table_name'];
$z['sumday_id'] = $lastOnlineSumdayID;
$z['boot_id'] = $boot['id'];
if($numberTab){
Db::name($numberTabTableName)->where(array('id' => $numberTab['id']))->limit(1)->update($z);
//var_dump($numberTab);
//判断是否需要处理开结果
if($game_id == 1){
if($z['bet_status'] == 3 && ($numberTab['result'] != $z['result'] || $numberTab['pair'] != $z['pair'])){
if($onlineTable['mode'] == 2){
$this->do_opening_baccarat_win6($numberTab,$z);
}else{
$this->do_opening_baccarat($numberTab,$z);
}
}
}elseif($game_id == 2){
if($z['bet_status'] == 3 && $numberTab['result'] != $z['result']){
$this->do_opening_dt($numberTab,$z);
}
}
}else{
$insertNumberTabID = Db::name($numberTabTableName)->insertGetId($z);
}
}
}
}else{
$insertBootID = Db::name($bootTableName)->insertGetId($value);
foreach($localNumberTab AS $j => $z){
if($z['boot_id'] == $localBootID){
unset($z['id']);
unset($z['is_delete']);
unset($z['is_edit']);
if(isset($z['lucky_six'])){
unset($z['lucky_six']);
}
if(isset($z['lucky_six_number'])){
unset($z['lucky_six_number']);
}
$z['table_id'] = $online_table_id;
$z['table_name'] = $onlineTable['table_name'];
$z['sumday_id'] = $lastOnlineSumdayID;
$z['boot_id'] = $insertBootID;
$insertNumberTabID = Db::name($numberTabTableName)->insertGetId($z);
}
}
}
}
}
}else{
$localSumdayID = $v['id'];
unset($v['id']);
$v['table_id'] = $online_table_id;
$v['table_name'] = $onlineTable['table_name'];
$insertSumdayID = Db::name('sumday')->insertGetId($v);
foreach($localBoot AS $key => $value){
if($value['sumday_id'] == $localSumdayID){
$localBootID = $value['id'];
unset($value['id']);
$value['table_id'] = $online_table_id;
$value['table_name'] = $onlineTable['table_name'];
$value['sumday_id'] = $insertSumdayID;
$insertBootID = Db::name($bootTableName)->insertGetId($value);
foreach($localNumberTab AS $j => $z){
if($z['boot_id'] == $localBootID){
unset($z['id']);
unset($z['is_delete']);
unset($z['is_edit']);
if(isset($z['lucky_six'])){
unset($z['lucky_six']);
}
if(isset($z['lucky_six_number'])){
unset($z['lucky_six_number']);
}
$z['table_id'] = $online_table_id;
$z['table_name'] = $onlineTable['table_name'];
$z['sumday_id'] = $insertSumdayID;
$z['boot_id'] = $insertBootID;
$insertNumberTabID = Db::name($numberTabTableName)->insertGetId($z);
}
}
}
}
}
}
return json(array('Success' => 1, 'Msg' => 'sync_success'));
}else{
return json(array('Success' => 0, 'Msg' => 'no_table_info'));
}
}
}
}