Pro/application/onlinechip/controller/Pcapi.php
2026-02-25 01:50:31 +08:00

4426 lines
226 KiB
PHP
Executable File
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\onlinechip\controller;
use pay\Usdt;
use pay\Ybf;
use think\Cache;
use \think\Controller;
use \think\Request;
use \think\Db;
use \think\Lang;
use \think\Session;
use \think\Log;
use \think\Config;
use Waybill\WaybillDice;
use Waybill\WaybillToning;
use Waybill\WaybillRoulette;
class Pcapi extends Controller{
public function __construct(){
parent::__construct();
$actionName = Request::instance()->action();
if(in_array($actionName,['doregister'])){
if(Session::has('is_post') && Session::get($actionName.'_is_post') == 0){
return ['status'=>false,'msg'=>'请勿重复提交'];
}
Session::set('is_post',0);
}
}
public function __destruct(){
$actionName = Request::instance()->action();
if(in_array($actionName,['doregister'])){
Session::set($actionName.'_is_post',1);
}
}
public function get_version(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
return json(config('app_version'));
}
public function get_system_info(){
if(Request::instance()->isPost()){
$system_info = Db::name('system')->where(array('id' => 1))->find();
return json(['Success' => 1, 'Data' => $system_info]);
}
}
private function create_online_token($user){
return md5($user['encrypt'].$user['password']);
}
//试玩登录
public function demologin(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$token = trim($json_arr['token']);
$client = intval($json_arr['client']);
$sw_users = Db::name('user')->where(array('is_sw' => 1, 'is_delete' => 0, 'status' => 1, 'agent' => 0))->select();
if(!$sw_users){
return json(['Success' => 0, 'Msg' => '怎不能提供试玩']);
}
$randNum = array_rand($sw_users,1);
$find = $sw_users[$randNum];
if($token == 'shiwanlogin'){
$online_token = $this->create_online_token($find);
$find['online_token'] = $online_token;
$update = array();
$update['isout'] = 0;
$update['login_token'] = $online_token;
$update['money'] = 100000;
$update['last_login_time'] = time();
$update['login_count'] = $find['login_count'] + 1;
$api_token = create_api_token($find['username'],$find['nickname']);
$update['api_token'] = $api_token;
Db::name('user')->where(array('id' => $find['id']))->limit(1)->update($update);
$find['api_token'] = $api_token;
$find['money'] = 2000;
//获取公告
$memo = Db::name('memo')->where(array('type' => 1, 'table_id' => 0, 'status' => 1, 'position' => 3))->order('create_time DESC')->select();
$find['memo'] = $memo;
//存入session
Db::name('session')->where(array('last_time' => array('<', time() - Config::get('session_life_time'))))->delete();
$DBSession = Db::name('session')->where(array('session_id' => $api_token))->find();
if($DBSession){
Db::name('session')->where(array('session_id' => $api_token))->update(array('last_time' => time(), 'user_id' => $find['id'],'client'=>$client));
}else{
Db::name('session')->where(array('user_id' => $find['id']))->delete();
Db::name('session')->insert(array('session_id' =>$api_token, 'last_time' => time(), 'user_id' => $find['id'],'client'=>$client));
}
unset($find['password']);
unset($find['encrypt']);
$data = encrypt_data($find);
return json(['Success' => 1, 'Msg' => '登录成功', 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '登录失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '登录出错']);
}
}
}
//保持在线--心跳
public function keepOnline(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
//清除过期session
Db::name('session')->where(array('last_time' => array('<', time() - Config::get('session_life_time'))))->delete();
$api_token = trim($json_arr['api_token']);
$userId = intval($json_arr['user_id']);
$tableId = intval($json_arr['table_id']);
$client = intval($json_arr['client']);
if($api_token && $userId && $client){
$findSession = Db::name('session')->where(['session_id' => $api_token])->find();
$findUser = Db::name('user')->where(array('id' => $userId, 'is_delete' => 0, 'status' => 1, 'agent' => 0))->find();
if($findSession && $findUser && $api_token == $findUser['api_token']){//验证token
Db::name('session')->where(['session_id' => $api_token])->update(['last_time' => time(), 'user_id' => $userId,'client'=>$client,'table_id'=>$tableId]);
return json(['Success'=>1,'Msg'=>'更新成功']);
}
}
}
}
return json(['Success'=>0,'Msg'=>'更新失败']);
}
//登录optimum
public function login(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$username = trim($json_arr['username']);
$password = trim($json_arr['password']);
$client = intval($json_arr['client']);
if(empty($username) || empty($password)){
return json(['Success' => 0, 'Msg' => '请填写账号密码']);
}
$find = Db::name('user')->where(array('username' => $username, 'is_delete' => 0, 'status' => 1, 'agent' => 0))->find();
if($find){
if(think_ucenter_md5($password, UC_AUTH_KEY) === $find['password'] && $find['password']){
$user_log = array();
$user_log['user_id'] = $find['id'];
$user_log['username'] = $find['username'];
$user_log['nickname'] = $find['nickname'];
$user_log['ip'] = getIP();
$user_log['ip_location'] = '';
$user_log['client'] = 'PC或H5';
$user_log['create_time'] = time();
$user_log['remark'] = '登录';
Db::name('user_log')->insert($user_log);
$online_token = $this->create_online_token($find);
$find['online_token'] = $online_token;
$find['login_token'] = $online_token;
$update = array();
$update['isout'] = 0;
$update['login_token'] = $online_token;
$update['last_login_time'] = time();
$update['login_count'] = $find['login_count'] + 1;
$update['last_login_ip'] = getIP();
$api_token = create_api_token($find['username'],$find['nickname']);
$update['api_token'] = $api_token;
Db::name('user')->where(array('id' => $find['id']))->limit(1)->update($update);
$find['api_token'] = $api_token;
//获取公告
$memo = Db::name('memo')->where(array('type' => 1, 'table_id' => 0, 'status' => 1, 'position' => 3))->order('create_time DESC')->select();
$find['memo'] = $memo;
//存入session
Db::name('session')->where(array('last_time' => array('<', time() - Config::get('session_life_time'))))->delete();
$DBSession = Db::name('session')->where(array('session_id' => $api_token))->find();
if($DBSession){
Db::name('session')->where(array('session_id' => $api_token))->update(array('last_time' => time(), 'user_id' => $find['id'],'client'=>$client));
}else{
Db::name('session')->where(array('user_id' => $find['id']))->delete();
Db::name('session')->insert(array('session_id' =>$api_token, 'last_time' => time(), 'user_id' => $find['id'],'client'=>$client));
}
unset($find['password']);
unset($find['encrypt']);
// 钱包地址
$find['wallet'] = Db::name('user_wallet')->where('user_id',$find['id'])->find();
// 支付渠道
$agentParentIds = explode(',',$find['agent_parent_id_path']);
$topAgent = Db::name('user')->where('id', $agentParentIds[0])->find();
$find['pay_channel'] = '';
$find['pay_channel_currency'] = [];
$find['pay_channel_coin_chain'] = [];
if($topAgent['agent_type'] == 1){
// 现金线走支付渠道
$find['pay_channel'] = $topAgent['pay_channel'];
$find['pay_channel_currency'] = [];
$find['pay_channel_coin_chain'] = [];
if($find['pay_channel']){
$payChannelInfo = Db::name('pay_channel')->where('key',$find['pay_channel'])->find();
if($payChannelInfo && $payChannelInfo['currency']){
$find['pay_channel_currency'] = json_decode($payChannelInfo['currency'],true);
}
if($payChannelInfo && $payChannelInfo['coin_chain']){
$find['pay_channel_coin_chain'] = json_decode($payChannelInfo['coin_chain'],true);
}
}
} elseif ($topAgent['agent_type'] == 2 && $topAgent['pay_channel'] == 'OPR') { // 人工转帐上分,前端显示充值信息
$find['pay_channel'] = $topAgent['pay_channel'];
$find['pay_channel_address'] = $topAgent['pay_channel_address'];
}
$find['manager'] = [];
if($find['bet_type'] == 2){
if($find['manager_id']){
$managerInfo = Db::name('manager')->where('id',$find['manager_id'])->where('status',1)->find();
if($managerInfo){
$find['manager']['id'] = $managerInfo['id'];
$find['manager']['nickname'] = $managerInfo['nickname'];
$find['manager']['telegram'] = $managerInfo['telegram'];
$find['manager']['mobile'] = $managerInfo['mobile'];
}
}
}
$data = encrypt_data($find);
return json(['Success' => 1, 'Msg' => '登录成功', 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '账号或者密码错误']);
}
}else{
return json(['Success' => 0, 'Msg' => '账号或者密码错误']);
}
}else{
return json(['Success' => 0, 'Msg' => '登录出错']);
}
}
}
// 获取用户信息
public function get_user_info(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$api_token = trim($json_arr['api_token']);
$user_id = Db::name('session')->where(array('session_id' =>$api_token))->value('user_id');
$find = Db::name('user')->where(array('id' => $user_id, 'is_delete' => 0, 'status' => 1, 'agent' => 0))->find();
if($find){
$online_token = $this->create_online_token($find);
$find['online_token'] = $online_token;
$find['login_token'] = $online_token;
$find['api_token'] = $api_token;
//获取公告
$memo = Db::name('memo')->where(array('type' => 1, 'table_id' => 0, 'status' => 1, 'position' => 3))->order('create_time DESC')->select();
$find['memo'] = $memo;
unset($find['password']);
unset($find['encrypt']);
// 钱包地址
$find['wallet'] = Db::name('user_wallet')->where('user_id',$find['id'])->find();
// 支付渠道
$agentParentIds = explode(',',$find['agent_parent_id_path']);
$topAgent = Db::name('user')->where('id', $agentParentIds[0])->find();
$find['pay_channel'] = '';
$find['pay_channel_currency'] = [];
$find['pay_channel_coin_chain'] = [];
if($topAgent['agent_type'] == 1){
// 现金线走支付渠道
$find['pay_channel'] = $topAgent['pay_channel'];
$find['pay_channel_currency'] = [];
$find['pay_channel_coin_chain'] = [];
if($find['pay_channel']){
$payChannelInfo = Db::name('pay_channel')->where('key',$find['pay_channel'])->find();
if($payChannelInfo && $payChannelInfo['currency']){
$find['pay_channel_currency'] = json_decode($payChannelInfo['currency'],true);
}
if($payChannelInfo && $payChannelInfo['coin_chain']){
$find['pay_channel_coin_chain'] = json_decode($payChannelInfo['coin_chain'],true);
}
}
}
$find['manager'] = [];
if($find['bet_type'] == 2){
if($find['manager_id']){
$managerInfo = Db::name('manager')->where('id',$find['manager_id'])->where('status',1)->find();
if($managerInfo){
$find['manager']['id'] = $managerInfo['id'];
$find['manager']['nickname'] = $managerInfo['nickname'];
$find['manager']['telegram'] = $managerInfo['telegram'];
$find['manager']['mobile'] = $managerInfo['mobile'];
}
}
}
$data = encrypt_data($find);
return json(['Success' => 1, 'Msg' => '操作成功', 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '暂无数据']);
}
}else{
return json(['Success' => 0, 'Msg' => '操作错误']);
}
}
}
//用户钱
public function user_money(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
if($user_id > 0){
$user = Db::name('user')->field(array('money','api_token'))->where(array('id' => $user_id))->find();
if($user['api_token'] == $json_arr['api_token']){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
unset($user['api_token']);
$data = encrypt_data($user);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
}
//修改密码
public function update_password(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$password_now = trim($json_arr['password_now']);
$password_new = trim($json_arr['password_new']);
$password_reply = trim($json_arr['password_reply']);
$api_token = trim($json_arr['api_token']);
if($user_id > 0){
$find = Db::name('user')->where(array('id' => $user_id))->find();
if($find && $find['api_token'] == $api_token){
if(empty($password_now) || empty($password_new) || empty($password_reply) || strlen($password_new) < 6){
return json(['Success' => 0, 'Msg' => '请填写当前密码以及新密码,新密码不能小于6个字符']);
}
if($password_new != $password_reply){
return json(['Success' => 0, 'Msg' => '两次密码不一致']);
}
if(think_ucenter_md5($password_now, UC_AUTH_KEY) == $find['password'] && $find['password']){
$newpass = think_ucenter_md5($password_new, UC_AUTH_KEY);
Db::name('user')->where(array('id' => $user_id))->limit(1)->update(array('password' => $newpass, 'update_time' => time()));
return json(['Success' => 1, 'Msg' => '修改密码成功']);
}else{
return json(['Success' => 0, 'Msg' => '旧密码输入错误']);
}
}else{
return json(['Success' => 0, 'Msg' => '修改密码失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '修改密码失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '修改密码失败']);
}
}
}
//打赏
public function to_tip(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$table_id = intval($json_arr['table_id']);
$table_name = $json_arr['table_name'];
$api_token = trim($json_arr['api_token']);
$money = intval($json_arr['money']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $table_id > 0 && $user['api_token'] == $api_token){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
if($money > 0){
if($user['money'] > $money){
$newMoney = $user['money'] - $money;
$insertData = array();
$insertData['user_id'] = $user_id;
$insertData['username'] = $user['username'];
$insertData['table_id'] = $table_id;
$insertData['table_name'] = $table_name;
$insertData['create_time'] = time();
$insertData['money'] = $money;
Db::name('tip')->insert($insertData);
Db::name('user')->where(array('id' => $user_id))->limit(1)->update(array('money' => $newMoney));
$data = array('money' => $newMoney);
$data = encrypt_data($data);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '您的余额不足']);
}
}else{
return json(['Success' => 0, 'Msg' => '打赏金额必须大于0']);
}
}else{
return json(['Success' => 0, 'Msg' => '打赏失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '打赏失败']);
}
}
}
//好路
public function good_road(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$table_id = 0;
$game_id = 1;
$user = Db::name('user')->where(array('id' => $user_id, 'is_delete' => 0, 'status' => 1))->find();
if($user && $user['api_token'] == $api_token){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
$tablesData = array();
$tables = Db::name('waybill_remind')->alias('w')->join('table t','w.table_id = t.id')->where(array('t.game_id' => $game_id, 't.table_type' => 0))->order('w.id ASC')->where('t.bet_type = 1 or t.bet_type = 3')->field(array('w.*','t.table_type','t.bet_type'))->select();
$num = 0;
foreach($tables AS $key => $value){
$table = false;
$table = Db::name('table')->where(array('id' => $value['table_id']))->find();
if($table['table_type'] == 0){
$tablesData[$num]['table_id'] = $table['id'];
$tablesData[$num]['waybill_type'] = $value['waybill_type'];
$num++;
}
}
$data = encrypt_data($tablesData);
return json(array('Success' => 1, 'Data' => $data));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
}
//返回全部桌子
public function all_table(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
// 增加类型过滤, 2023/12/11
// table_type_d, 后续跟 table_type 合并
// table_type_d = 0, 点击, 默认
// table_type_d = 1, 三合一
//$table_type_d = isset($json_arr['table_type_d'])? intval($json_arr['table_type_d']) : 0;
$table_type_d = 0;
if (is_null($table_type_d) || ($table_type_d !=0 && $table_type_d != 1)) {
$table_type_d = 0;
}
// 【识别测试】增加类型过滤。旧版不显示识别台2024/03/06
$ui_version = isset($json_arr['version'])? $json_arr['version'] : '';
if($user && $user['api_token'] == $api_token){
$tableWhere = [];
$tableWhere['status'] = 1;
$tableWhere['table_type'] = 0;
$tableWhere['table_type_d'] = $table_type_d;
$tableWhere['bet_type'] = $user['bet_type'];
if ($ui_version != 'v8') {
$tables = Db::name('table')->where($tableWhere)->where('scanner_type != 2')->order('sort DESC')->select();
} else {
$tables = Db::name('table')->where($tableWhere)->order('sort DESC')->select();
}
foreach($tables AS $key => $value){
$value['repeatBet'] = array();
$bootTabTable = 'boot';
$numberTabTable = 'number_tab';
$betTable = 'bet';
$boot = Db::name($bootTabTable)->where('table_id',$value['id'])->order('id DESC')->find();
if($value['game_id'] == 1 || $value['game_id'] == 2)
{
if($boot){
$value['bet_amount_msg']['banker_amount'] = 0;
$value['bet_amount_msg']['player_amount'] = 0;
$value['bet_amount_msg']['tie_amount'] = 0;
$value['bet_amount_msg']['banker_pair_amount'] = 0;
$value['bet_amount_msg']['player_pair_amount'] = 0;
$value['boot_num'] = $boot['boot_num'];
$value['boot_id'] = $boot['id'];
$value['playerCount'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'result' => 2))->count();
$value['tieCount'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'result' => 3))->count();
$value['bankerCount'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'result' => 1))->count();
if($value['game_id'] == 1){
$value['player_pair_Count'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'pair' => 2))->count();
$value['banker_pair_Count'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'pair' => 1))->count();
$all_pair = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'pair' => 3))->count();
$value['banker_pair_Count'] = $value['banker_pair_Count'] + $all_pair;
$value['player_pair_Count'] = $value['player_pair_Count'] + $all_pair;
}
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id'=>$boot['id'],'bet_status'=>3))->order('start_time ASC,id ASC')->select();
if($number_tab){
$value['ludan'] = waybill($number_tab);
$number_tab_add_banker = $number_tab;
$number_tab_add_player = $number_tab;
$number_tab_add_banker[] = array('result' => 1, 'pair' => 0);
$number_tab_add_player[] = array('result' => 2, 'pair' => 0);
$value['ludan_banker'] = waybill($number_tab_add_banker);
$value['ludan_player'] = waybill($number_tab_add_player);
}else{
$value['ludan'] = array();
$value['ludan_banker'] = array();
$value['ludan_player'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$value['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$value['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$value['previous_number_tab_id'] = 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$value['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
$value['bet_amount_msg']['banker_amount'] = intval($bet['banker_amount']) > 0 ? intval($bet['banker_amount']) : 0;
$value['bet_amount_msg']['player_amount'] = intval($bet['player_amount']) > 0 ? intval($bet['player_amount']) : 0;
$value['bet_amount_msg']['tie_amount'] = intval($bet['tie_amount']) > 0 ? intval($bet['tie_amount']) : 0;
if($value['game_id'] == 1){
$value['bet_amount_msg']['banker_pair_amount'] = intval($bet['banker_pair_amount']) > 0 ? intval($bet['banker_pair_amount']) : 0;
$value['bet_amount_msg']['player_pair_amount'] = intval($bet['player_pair_amount']) > 0 ? intval($bet['player_pair_amount']) : 0;
}else{
$value['bet_amount_msg']['banker_pair_amount'] = 0;
$value['bet_amount_msg']['player_pair_amount'] = 0;
}
}
//自动台返回牌型
if($value['is_scavenging'] == 1 && $cur_number_tab['bet_status'] == 2){
$card_info = getRedisCardByPosition($cur_number_tab['id']);
if($card_info){
$value['card_info']['banker_1'] = $card_info['banker_1'];
if($value['game_id'] == 1){
$value['card_info']['banker_2'] = $card_info['banker_2'];
$value['card_info']['banker_3'] = $card_info['banker_3'];
}
$value['card_info']['player_1'] = $card_info['player_1'];
if($value['game_id'] == 1){
$value['card_info']['player_2'] = $card_info['player_2'];
$value['card_info']['player_3'] = $card_info['player_3'];
}
}else{
$value['card_info']['banker_1'] = 0;
if($value['game_id'] == 1){
$value['card_info']['banker_2'] = 0;
$value['card_info']['banker_3'] = 0;
}
$value['card_info']['player_1'] = 0;
if($value['game_id'] == 1){
$value['card_info']['player_2'] = 0;
$value['card_info']['player_3'] = 0;
}
}
}else{
$value['card_info']['banker_1'] = 0;
if($value['game_id'] == 1){
$value['card_info']['banker_2'] = 0;
$value['card_info']['banker_3'] = 0;
}
$value['card_info']['player_1'] = 0;
if($value['game_id'] == 1){
$value['card_info']['player_2'] = 0;
$value['card_info']['player_3'] = 0;
}
}
}else{
$value['bet_amount_msg']['banker_amount'] = 0;
$value['bet_amount_msg']['player_amount'] = 0;
$value['bet_amount_msg']['tie_amount'] = 0;
$value['bet_amount_msg']['banker_pair_amount'] = 0;
$value['bet_amount_msg']['player_pair_amount'] = 0;
$value['boot_num'] = 1;
$value['boot_id'] = 0;
$value['number_tab_number'] = 1;
$value['number_tab_id'] = 0;
$value['previous_number_tab_id'] = 0;
$value['playerCount'] = 0;
$value['tieCount'] = 0;
$value['bankerCount'] = 0;
$value['ludan'] = array();
$value['ludan_banker'] = array();
$value['ludan_player'] = array();
$value['bet_status'] = 0;
}
}
elseif($value['game_id'] == 4){
if($boot){
$value['bet_amount_msg']['amount_player_1'] = 0;
$value['bet_amount_msg']['amount_player_1_times'] = 0;
$value['bet_amount_msg']['amount_player_1_banker'] = 0;
$value['bet_amount_msg']['amount_player_1_banker_times'] = 0;
$value['bet_amount_msg']['amount_player_2'] = 0;
$value['bet_amount_msg']['amount_player_2_times'] = 0;
$value['bet_amount_msg']['amount_player_2_banker'] = 0;
$value['bet_amount_msg']['amount_player_2_banker_times'] = 0;
$value['bet_amount_msg']['amount_player_3'] = 0;
$value['bet_amount_msg']['amount_player_3_times'] = 0;
$value['bet_amount_msg']['amount_player_3_banker'] = 0;
$value['bet_amount_msg']['amount_player_3_banker_times'] = 0;
$value['boot_num'] = $boot['boot_num'];
$value['boot_id'] = $boot['id'];
$value['player_1_count'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'win_player_1' => 1))->count();
$value['player_2_count'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'win_player_2' => 1))->count();
$value['player_3_count'] = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'win_player_3' => 1))->count();
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'bet_status' => 3))->field('result_banker,result_player_1,result_player_2,result_player_3,win_player_1,win_player_2,win_player_3')->order('start_time ASC,id ASC')->select();
if($number_tab){
$value['ludan'] = nn_waybill($number_tab);
}else{
$value['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$value['amount_total']['amount_player_1'] = $cur_number_tab['amount_player_1'];
$value['amount_total']['amount_player_2'] = $cur_number_tab['amount_player_2'];
$value['amount_total']['amount_player_3'] = $cur_number_tab['amount_player_3'];
$value['amount_total']['amount_player_1_times'] = $cur_number_tab['amount_player_1_times'];
$value['amount_total']['amount_player_2_times'] = $cur_number_tab['amount_player_2_times'];
$value['amount_total']['amount_player_3_times'] = $cur_number_tab['amount_player_3_times'];
$value['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$value['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$value['previous_number_tab_id'] = 0;
$value['bet_status'] = $cur_number_tab['bet_status'];
$value['rob_status'] = $cur_number_tab['rob_status'];
$value['rob_banker_id'] = $cur_number_tab['rob_banker_id'];
$value['rob_banker_username'] = $cur_number_tab['rob_banker_username'];
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
if($bet){
$value['bet_amount_msg']['amount_player_1'] = intval($bet['amount_player_1']) > 0 ? intval($bet['amount_player_1']) : 0;
$value['bet_amount_msg']['amount_player_1_times'] = intval($bet['amount_player_1_times']) > 0 ? intval($bet['amount_player_1_times']) : 0;
$value['bet_amount_msg']['amount_player_1_banker'] = intval($bet['amount_player_1_banker']) > 0 ? intval($bet['amount_player_1_banker']) : 0;
$value['bet_amount_msg']['amount_player_1_banker_times'] = intval($bet['amount_player_1_banker_times']) > 0 ? intval($bet['amount_player_1_banker_times']) : 0;
$value['bet_amount_msg']['amount_player_2'] = intval($bet['amount_player_2']) > 0 ? intval($bet['amount_player_2']) : 0;
$value['bet_amount_msg']['amount_player_2_times'] = intval($bet['amount_player_2_times']) > 0 ? intval($bet['amount_player_2_times']) : 0;
$value['bet_amount_msg']['amount_player_2_banker'] = intval($bet['amount_player_2_banker']) > 0 ? intval($bet['amount_player_2_banker']) : 0;
$value['bet_amount_msg']['amount_player_2_banker_times'] = intval($bet['amount_player_2_banker_times']) > 0 ? intval($bet['amount_player_2_banker_times']) : 0;
$value['bet_amount_msg']['amount_player_3'] = intval($bet['amount_player_3']) > 0 ? intval($bet['amount_player_3']) : 0;
$value['bet_amount_msg']['amount_player_3_times'] = intval($bet['amount_player_3_times']) > 0 ? intval($bet['amount_player_3_times']) : 0;
$value['bet_amount_msg']['amount_player_3_banker'] = intval($bet['amount_player_3_banker']) > 0 ? intval($bet['amount_player_3_banker']) : 0;
$value['bet_amount_msg']['amount_player_3_banker_times'] = intval($bet['amount_player_3_banker_times']) > 0 ? intval($bet['amount_player_3_banker_times']) : 0;
}
$value['card_info']['card_first'] = 0;
$value['card_info']['player_1_card_1'] = 0;
$value['card_info']['player_1_card_2'] = 0;
$value['card_info']['player_1_card_3'] = 0;
$value['card_info']['player_1_card_4'] = 0;
$value['card_info']['player_1_card_5'] = 0;
$value['card_info']['player_2_card_1'] = 0;
$value['card_info']['player_2_card_2'] = 0;
$value['card_info']['player_2_card_3'] = 0;
$value['card_info']['player_2_card_4'] = 0;
$value['card_info']['player_2_card_5'] = 0;
$value['card_info']['player_3_card_1'] = 0;
$value['card_info']['player_3_card_2'] = 0;
$value['card_info']['player_3_card_3'] = 0;
$value['card_info']['player_3_card_4'] = 0;
$value['card_info']['player_3_card_5'] = 0;
$value['card_info']['banker_card_1'] = 0;
$value['card_info']['banker_card_2'] = 0;
$value['card_info']['banker_card_3'] = 0;
$value['card_info']['banker_card_4'] = 0;
$value['card_info']['banker_card_5'] = 0;
$value['nn_result']['player_1_result'] = 0;
$value['nn_result']['player_2_result'] = 0;
$value['nn_result']['player_3_result'] = 0;
$value['nn_result']['banker_result'] = 0;
if($value['is_scavenging'] == 1 && $cur_number_tab['bet_status'] == 2){
$card_info = getRedisCard($cur_number_tab['id']);
if($card_info){
$value['card_info']['card_first'] = $card_info['card_first'];
$value['card_info']['player_1_card_1'] = $card_info['player_1_card_1'];
$value['card_info']['player_1_card_2'] = $card_info['player_1_card_2'];
$value['card_info']['player_1_card_3'] = $card_info['player_1_card_3'];
$value['card_info']['player_1_card_4'] = $card_info['player_1_card_4'];
$value['card_info']['player_1_card_5'] = $card_info['player_1_card_5'];
$value['card_info']['player_2_card_1'] = $card_info['player_2_card_1'];
$value['card_info']['player_2_card_2'] = $card_info['player_2_card_2'];
$value['card_info']['player_2_card_3'] = $card_info['player_2_card_3'];
$value['card_info']['player_2_card_4'] = $card_info['player_2_card_4'];
$value['card_info']['player_2_card_5'] = $card_info['player_2_card_5'];
$value['card_info']['player_3_card_1'] = $card_info['player_3_card_1'];
$value['card_info']['player_3_card_2'] = $card_info['player_3_card_2'];
$value['card_info']['player_3_card_3'] = $card_info['player_3_card_3'];
$value['card_info']['player_3_card_4'] = $card_info['player_3_card_4'];
$value['card_info']['player_3_card_5'] = $card_info['player_3_card_5'];
$value['card_info']['banker_card_1'] = $card_info['banker_card_1'];
$value['card_info']['banker_card_2'] = $card_info['banker_card_2'];
$value['card_info']['banker_card_3'] = $card_info['banker_card_3'];
$value['card_info']['banker_card_4'] = $card_info['banker_card_4'];
$value['card_info']['banker_card_5'] = $card_info['banker_card_5'];
if($card_info['player_1_card_5'] > 0){
$player_1_card = array($card_info['player_1_card_1'],$card_info['player_1_card_2'],$card_info['player_1_card_3'],$card_info['player_1_card_4'],$card_info['player_1_card_5']);
$player_1_result = JudgeCowCow($player_1_card);
$value['nn_result']['player_1_result'] = $player_1_result['word'];
}else{
$value['nn_result']['player_1_result'] = 0;
}
if($card_info['player_2_card_5'] > 0){
$player_2_card = array($card_info['player_2_card_1'],$card_info['player_2_card_2'],$card_info['player_2_card_3'],$card_info['player_2_card_4'],$card_info['player_2_card_5']);
$player_2_result = JudgeCowCow($player_2_card);
$value['nn_result']['player_2_result'] = $player_2_result['word'];
}else{
$value['nn_result']['player_2_result'] = 0;
}
if($card_info['player_3_card_5'] > 0){
$player_3_card = array($card_info['player_3_card_1'],$card_info['player_3_card_2'],$card_info['player_3_card_3'],$card_info['player_3_card_4'],$card_info['player_3_card_5']);
$player_3_result = JudgeCowCow($player_3_card);
$value['nn_result']['player_3_result'] = $player_3_result['word'];
}else{
$value['nn_result']['player_3_result'] = 0;
}
if($card_info['banker_card_5'] > 0){
$banker_card = array($card_info['banker_card_1'],$card_info['banker_card_2'],$card_info['banker_card_3'],$card_info['banker_card_4'],$card_info['banker_card_5']);
$banker_result = JudgeCowCow($banker_card);
$value['nn_result']['banker_result'] = $banker_result['word'];
}else{
$value['nn_result']['banker_result'] = 0;
}
}
}
}else{
$value['bet_amount_msg']['amount_player_1'] = 0;
$value['bet_amount_msg']['amount_player_1_times'] = 0;
$value['bet_amount_msg']['amount_player_1_banker'] = 0;
$value['bet_amount_msg']['amount_player_1_banker_times'] = 0;
$value['bet_amount_msg']['amount_player_2'] = 0;
$value['bet_amount_msg']['amount_player_2_times'] = 0;
$value['bet_amount_msg']['amount_player_2_banker'] = 0;
$value['bet_amount_msg']['amount_player_2_banker_times'] = 0;
$value['bet_amount_msg']['amount_player_3'] = 0;
$value['bet_amount_msg']['amount_player_3_times'] = 0;
$value['bet_amount_msg']['amount_player_3_banker'] = 0;
$value['bet_amount_msg']['amount_player_3_banker_times'] = 0;
$value['boot_num'] = 1;
$value['boot_id'] = 0;
$value['number_tab_number'] = 1;
$value['number_tab_id'] = 0;
$value['previous_number_tab_id'] = 0;
$value['bet_status'] = 0;
$value['rob_status'] = 0;
$value['rob_banker_id'] = 0;
$value['rob_banker_username'] = '';
}
}
elseif($value['game_id'] == 5){
$value['bet_amount_msg']['amount_player_1'] = 0;
$value['bet_amount_msg']['amount_player_1_times'] = 0;
$value['bet_amount_msg']['amount_player_1_banker'] = 0;
$value['bet_amount_msg']['amount_player_1_banker_times'] = 0;
$value['bet_amount_msg']['amount_player_2'] = 0;
$value['bet_amount_msg']['amount_player_2_times'] = 0;
$value['bet_amount_msg']['amount_player_2_banker'] = 0;
$value['bet_amount_msg']['amount_player_2_banker_times'] = 0;
$value['bet_amount_msg']['amount_player_3'] = 0;
$value['bet_amount_msg']['amount_player_3_times'] = 0;
$value['bet_amount_msg']['amount_player_3_banker'] = 0;
$value['bet_amount_msg']['amount_player_3_banker_times'] = 0;
if($boot){
$value['boot_num'] = $boot['boot_num'];
$value['boot_id'] = $boot['id'];
$value['player_1_count'] = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'win_player_1' => 1))->count();
$value['player_2_count'] = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'win_player_2' => 1))->count();
$value['player_3_count'] = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'win_player_3' => 1))->count();
$number_tab = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'bet_status' => 3))->field('result_banker,result_player_1,result_player_2,result_player_3,win_player_1,win_player_2,win_player_3')->order('start_time ASC,id ASC')->select();
if($number_tab){
$value['ludan'] = nn_waybill($number_tab);
}else{
$value['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('boot_id'=>$boot['id']))->order('id DESC')->find();
$value['amount_total']['amount_player_1'] = $cur_number_tab['amount_player_1'];
$value['amount_total']['amount_player_2'] = $cur_number_tab['amount_player_2'];
$value['amount_total']['amount_player_3'] = $cur_number_tab['amount_player_3'];
$value['amount_total']['amount_player_1_times'] = $cur_number_tab['amount_player_1_times'];
$value['amount_total']['amount_player_2_times'] = $cur_number_tab['amount_player_2_times'];
$value['amount_total']['amount_player_3_times'] = $cur_number_tab['amount_player_3_times'];
$value['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$value['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$value['previous_number_tab_id'] = 0;
$value['bet_status'] = $cur_number_tab['bet_status'];
$value['rob_status'] = $cur_number_tab['rob_status'];
$value['rob_banker_id'] = $cur_number_tab['rob_banker_id'];
$value['rob_banker_username'] = $cur_number_tab['rob_banker_username'];
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
if($bet){
$value['bet_amount_msg']['amount_player_1'] = intval($bet['amount_player_1']) > 0 ? intval($bet['amount_player_1']) : 0;
$value['bet_amount_msg']['amount_player_1_times'] = intval($bet['amount_player_1_times']) > 0 ? intval($bet['amount_player_1_times']) : 0;
$value['bet_amount_msg']['amount_player_1_banker'] = intval($bet['amount_player_1_banker']) > 0 ? intval($bet['amount_player_1_banker']) : 0;
$value['bet_amount_msg']['amount_player_1_banker_times'] = intval($bet['amount_player_1_banker_times']) > 0 ? intval($bet['amount_player_1_banker_times']) : 0;
$value['bet_amount_msg']['amount_player_2'] = intval($bet['amount_player_2']) > 0 ? intval($bet['amount_player_2']) : 0;
$value['bet_amount_msg']['amount_player_2_times'] = intval($bet['amount_player_2_times']) > 0 ? intval($bet['amount_player_2_times']) : 0;
$value['bet_amount_msg']['amount_player_2_banker'] = intval($bet['amount_player_2_banker']) > 0 ? intval($bet['amount_player_2_banker']) : 0;
$value['bet_amount_msg']['amount_player_2_banker_times'] = intval($bet['amount_player_2_banker_times']) > 0 ? intval($bet['amount_player_2_banker_times']) : 0;
$value['bet_amount_msg']['amount_player_3'] = intval($bet['amount_player_3']) > 0 ? intval($bet['amount_player_3']) : 0;
$value['bet_amount_msg']['amount_player_3_times'] = intval($bet['amount_player_3_times']) > 0 ? intval($bet['amount_player_3_times']) : 0;
$value['bet_amount_msg']['amount_player_3_banker'] = intval($bet['amount_player_3_banker']) > 0 ? intval($bet['amount_player_3_banker']) : 0;
$value['bet_amount_msg']['amount_player_3_banker_times'] = intval($bet['amount_player_3_banker_times']) > 0 ? intval($bet['amount_player_3_banker_times']) : 0;
}
if($value['is_scavenging'] == 1 && $cur_number_tab['bet_status'] == 2){
$card_info = getRedisCard($cur_number_tab['id']);
if($card_info){
$value['card_info']['card_first'] = $card_info['card_first'];
$value['card_info']['player_1_card_1'] = $card_info['player_1_card_1'];
$value['card_info']['player_1_card_2'] = $card_info['player_1_card_2'];
$value['card_info']['player_1_card_3'] = $card_info['player_1_card_3'];
$value['card_info']['player_2_card_1'] = $card_info['player_2_card_1'];
$value['card_info']['player_2_card_2'] = $card_info['player_2_card_2'];
$value['card_info']['player_2_card_3'] = $card_info['player_2_card_3'];
$value['card_info']['player_3_card_1'] = $card_info['player_3_card_1'];
$value['card_info']['player_3_card_2'] = $card_info['player_3_card_2'];
$value['card_info']['player_3_card_3'] = $card_info['player_3_card_3'];
$value['card_info']['banker_card_1'] = $card_info['banker_card_1'];
$value['card_info']['banker_card_2'] = $card_info['banker_card_2'];
$value['card_info']['banker_card_3'] = $card_info['banker_card_3'];
if($card_info['player_1_card_3'] > 0){
$player_1_card = array($card_info['player_1_card_1'],$card_info['player_1_card_2'],$card_info['player_1_card_3']);
$player_1_result = ThredCardCowCow($player_1_card);
$value['tc_result']['player_1_result'] = $player_1_result['word'];
}else{
$value['tc_result']['player_1_result'] = 0;
}
if($card_info['player_2_card_3'] > 0){
$player_2_card = array($card_info['player_2_card_1'],$card_info['player_2_card_2'],$card_info['player_2_card_3']);
$player_2_result = ThredCardCowCow($player_2_card);
$value['tc_result']['player_2_result'] = $player_2_result['word'];
}else{
$value['tc_result']['player_2_result'] = 0;
}
if($card_info['player_3_card_3'] > 0){
$player_3_card = array($card_info['player_3_card_1'],$card_info['player_3_card_2'],$card_info['player_3_card_3']);
$player_3_result = ThredCardCowCow($player_3_card);
$value['tc_result']['player_3_result'] = $player_3_result['word'];
}else{
$value['tc_result']['player_3_result'] = 0;
}
if($card_info['banker_card_3'] > 0){
$banker_card = array($card_info['banker_card_1'],$card_info['banker_card_2'],$card_info['banker_card_3']);
$banker_result = ThredCardCowCow($banker_card);
$value['tc_result']['banker_result'] = $banker_result['word'];
}else{
$value['tc_result']['banker_result'] = 0;
}
}else{
$value['card_info']['card_first'] = 0;
$value['card_info']['player_1_card_1'] = 0;
$value['card_info']['player_1_card_2'] = 0;
$value['card_info']['player_1_card_3'] = 0;
$value['card_info']['player_2_card_1'] = 0;
$value['card_info']['player_2_card_2'] = 0;
$value['card_info']['player_2_card_3'] = 0;
$value['card_info']['player_3_card_1'] = 0;
$value['card_info']['player_3_card_2'] = 0;
$value['card_info']['player_3_card_3'] = 0;
$value['card_info']['banker_card_1'] = 0;
$value['card_info']['banker_card_2'] = 0;
$value['card_info']['banker_card_3'] = 0;
$value['tc_result']['player_1_result'] = 0;
$value['tc_result']['player_2_result'] = 0;
$value['tc_result']['player_3_result'] = 0;
$value['tc_result']['banker_result'] = 0;
}
}else{
$value['card_info']['card_first'] = 0;
$value['card_info']['player_1_card_1'] = 0;
$value['card_info']['player_1_card_2'] = 0;
$value['card_info']['player_1_card_3'] = 0;
$value['card_info']['player_2_card_1'] = 0;
$value['card_info']['player_2_card_2'] = 0;
$value['card_info']['player_2_card_3'] = 0;
$value['card_info']['player_3_card_1'] = 0;
$value['card_info']['player_3_card_2'] = 0;
$value['card_info']['player_3_card_3'] = 0;
$value['card_info']['banker_card_1'] = 0;
$value['card_info']['banker_card_2'] = 0;
$value['card_info']['banker_card_3'] = 0;
$value['tc_result']['player_1_result'] = 0;
$value['tc_result']['player_2_result'] = 0;
$value['tc_result']['player_3_result'] = 0;
$value['tc_result']['banker_result'] = 0;
}
}else{
$value['boot_id'] = 1;
$value['boot_num'] = 1;
$value['number_tab_number'] = 1;
$value['number_tab_id'] = 1;
$value['previous_number_tab_id'] = 0;
$value['player_1_count'] = 0;
$value['player_2_count'] = 0;
$value['player_3_count'] = 0;
$value['ludan'] = array();
$value['bet_status'] = 0;
$value['rob_status'] = 0;
$value['rob_banker_id'] = 0;
$value['rob_banker_username'] = '';
}
}
elseif($value['game_id'] == 6){
$betAmountMsg = [
'toning_zero' => 0,
'toning_four' => 0,
'toning_one' => 0,
'toning_three' => 0,
'toning_big' => 0,
'toning_small' => 0,
'toning_singular' => 0,
'toning_plural' => 0
];
$value['bet_amount_msg'] = $betAmountMsg;
if($boot){
$value['boot_num'] = $boot['boot_num'];
$value['boot_id'] = $boot['id'];
$toningCountArray = tonging_count_to_array($boot['toning_count']);
$value['count'] = $toningCountArray;
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id'=>$boot['id'],'bet_status'=>3))->order('start_time ASC,id ASC')->select();
if($number_tab){
$value['ludan'] = WaybillToning::createWaybill($number_tab);
}else{
$value['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$value['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$value['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$value['previous_number_tab_id'] = 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$value['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
$amountArray = result_to_array($bet['toning_amount']);
$value['bet_amount_msg'] = $amountArray;
}
}else{
$value['boot_num'] = 1;
$value['boot_id'] = 0;
$value['number_tab_number'] = 1;
$value['number_tab_id'] = 0;
$value['previous_number_tab_id'] = 0;
$value['zero_count'] = 0;
$value['one_count'] = 0;
$value['two_count'] = 0;
$value['three_count'] = 0;
$value['four_count'] = 0;
$value['big_count'] = 0;
$value['small_count'] = 0;
$value['singular_count'] = 0;
$value['plural_count'] = 0;
$value['ludan'] = array();
$value['bet_status'] = 0;
}
}
elseif($value['game_id'] == 7){
$betAmountMsg = [
'small' => 0,
'big' => 0,
'singular' => 0,
'plural' => 0,
'two_11' => 0,
'two_22' => 0,
'two_33' => 0,
'two_44' => 0,
'two_55' => 0,
'two_66' => 0,
'leopard' => 0,
'three_111' => 0,
'three_222' => 0,
'three_333' => 0,
'three_444' => 0,
'three_555' => 0,
'three_666' => 0,
'number_4' => 0,
'number_5' => 0,
'number_6' => 0,
'number_7' => 0,
'number_8' => 0,
'number_9' => 0,
'number_10' => 0,
'number_11' => 0,
'number_12' => 0,
'number_13' => 0,
'number_14' => 0,
'number_15' => 0,
'number_16' => 0,
'number_17' => 0,
'two_12' => 0,
'two_13' => 0,
'two_14' => 0,
'two_15' => 0,
'two_16' => 0,
'two_23' => 0,
'two_24' => 0,
'two_25' => 0,
'two_26' => 0,
'two_34' => 0,
'two_35' => 0,
'two_36' => 0,
'two_45' => 0,
'two_46' => 0,
'two_56' => 0,
'living_1' => 0,
'living_2' => 0,
'living_3' => 0,
'living_4' => 0,
'living_5' => 0,
'living_6' => 0,
];
$value['bet_amount_msg'] = $betAmountMsg;
if($boot){
$value['boot_num'] = $boot['boot_num'];
$value['boot_id'] = $boot['id'];
$diceCountArray = dice_count_to_array($boot['dice_count']);
$value['count'] = $diceCountArray;
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id'=>$boot['id'],'bet_status'=>3))->order('start_time ASC,id ASC')->select();
if($number_tab){
//路单留空
$value['ludan'] = WaybillDice::createWaybill($number_tab);
}else{
$value['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$value['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$value['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$value['previous_number_tab_id'] = 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$value['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
$amountArray = result_to_array($bet['dice_amount']);
$value['bet_amount_msg'] = $amountArray;
}
}else{
$value['boot_num'] = 1;
$value['boot_id'] = 0;
$value['number_tab_number'] = 1;
$value['number_tab_id'] = 0;
$value['previous_number_tab_id'] = 0;
$value['count']['leopard_count'] = 0;
$value['count']['small_count'] = 0;
$value['count']['big_count'] = 0;
$value['count']['singular_count'] = 0;
$value['count']['plural_count'] = 0;
$value['ludan'] = array();
$value['bet_status'] = 0;
}
}
elseif($value['game_id'] == 8){
$betAmountMsg = [
'roulette_type' => '',
'amount' => []
];
$value['bet_amount_msg'] = $betAmountMsg;
if($boot){
$value['boot_num'] = $boot['boot_num'];
$value['boot_id'] = $boot['id'];
$rouletteCountArray = roulette_count_to_array($boot['roulette_count']);
$value['count'] = $rouletteCountArray;
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id'=>$boot['id'],'bet_status'=>3))->order('start_time ASC,id ASC')->select();
if($number_tab){
//路单留空
$value['ludan'] = WaybillRoulette::createWaybill($number_tab);
}else{
$value['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$value['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$value['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$value['previous_number_tab_id'] = 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$value['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
if($bet['roulette_european_amount']){
$value['bet_amount_msg']['roulette_type'] = 'european';
$value['bet_amount_msg']['amount'] = result_to_array($bet['roulette_european_amount']);
}
if($bet['roulette_french_amount']){
$value['bet_amount_msg']['roulette_type'] = 'french';
$value['bet_amount_msg']['amount'] = result_to_array($bet['roulette_french_amount']);
}
}
}else{
$value['boot_num'] = 1;
$value['boot_id'] = 0;
$value['number_tab_number'] = 1;
$value['number_tab_id'] = 0;
$value['previous_number_tab_id'] = 0;
$value['count']['low_count'] = 0;
$value['count']['high_count'] = 0;
$value['count']['even_count'] = 0;
$value['count']['odd_count'] = 0;
$value['count']['red_count'] = 0;
$value['count']['black_count'] = 0;
$value['count']['zero_count'] = 0;
$value['ludan'] = array();
$value['bet_status'] = 0;
}
}
//赔率
$value['price_banker'] = $user['price_banker'];
$value['price_player'] = $user['price_player'];
$value['price_tie_baccarat'] = $user['price_tie_baccarat'];
$value['price_pair'] = $user['price_pair'];
$value['price_dragon'] = $user['price_dragon'];
$value['price_tiger'] = $user['price_tiger'];
$value['price_tie_dt'] = $user['price_tie_dt'];
$value['price_n7_n9'] = $user['price_n7_n9'];
$value['price_nn'] = $user['price_nn'];
$value['price_5n'] = $user['price_5n'];
$value['price_bomb'] = $user['price_bomb'];
$value['price_tc_n1'] = $user['price_tc_n1'];
$value['price_tc_n2'] = $user['price_tc_n2'];
$value['price_tc_n3'] = $user['price_tc_n3'];
$value['price_tc_n4'] = $user['price_tc_n4'];
$value['price_tc_n5'] = $user['price_tc_n5'];
$value['price_tc_n6'] = $user['price_tc_n6'];
$value['price_tc_n7'] = $user['price_tc_n7'];
$value['price_tc_n8'] = $user['price_tc_n8'];
$value['price_tc_n9'] = $user['price_tc_n9'];
$value['price_tc_nn'] = $user['price_tc_nn'];
$value['price_tc_bz'] = $user['price_tc_bz'];
$value['price_tc_ths'] = $user['price_tc_ths'];
$value['price_tc_hjths'] = $user['price_tc_hjths'];
$value['price_toning'] = $user['price_toning'];
$value['price_toning_0'] = $user['price_toning_0'];
$value['price_toning_1'] = $user['price_toning_1'];
$value['countDown'] = 0;
$value['bankerIsWin'] = false;
$value['playerIsWin'] = false;
$value['tieIsWin'] = false;
$value['bpIsWin'] = false;
$value['ppIsWin'] = false;
$value['sendMode'] = '';
$value['chatdata'] = array();
$tables[$key] = $value;
}
$data = encrypt_data($tables);
return json(array('Success' => 1, 'Data' => $data));
}else{
return json(array('Success' => 1, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 1, 'Msg' => '获取信息失败'));
}
} else {
return json(array('Success' => 1, 'Msg' => '获取信息失败'));
}
}
//返回单张桌子
public function singletable(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
// $json_arr = Request::instance()->post();
if($json_arr){
$table_id = isset($json_arr['table_id'])? intval($json_arr['table_id']) : 0;
$user_id = isset($json_arr['user_id'])? intval($json_arr['user_id']) : 0;
$api_token = isset($json_arr['api_token'])? trim($json_arr['api_token']) : '';
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($table_id > 0 && $user && $user['api_token'] == $api_token){
$table = Db::name('table')->where(array('id' => $table_id, 'status' => 1,'bet_type' => $user['bet_type']))->find();
$table['isout'] = $user['isout'];
$table['can_bet_luck_six'] = 0;
$table['can_bet_big_small'] = 0;
$game_id = $table['game_id'];
$bootTabTable = 'boot';
$numberTabTable = 'number_tab';
$betTable = 'bet';
if($game_id == 4)
{
$boot = Db::name($bootTabTable)->where('table_id',$table['id'])->order('id DESC')->find();
if($boot){
//下注数据
$table['bet_amount_msg']['amount_player_1'] = 0;
$table['bet_amount_msg']['amount_player_1_times'] = 0;
$table['bet_amount_msg']['amount_player_1_banker'] = 0;
$table['bet_amount_msg']['amount_player_1_banker_times'] = 0;
$table['bet_amount_msg']['amount_player_2'] = 0;
$table['bet_amount_msg']['amount_player_2_times'] = 0;
$table['bet_amount_msg']['amount_player_2_banker'] = 0;
$table['bet_amount_msg']['amount_player_2_banker_times'] = 0;
$table['bet_amount_msg']['amount_player_3'] = 0;
$table['bet_amount_msg']['amount_player_3_times'] = 0;
$table['bet_amount_msg']['amount_player_3_banker'] = 0;
$table['bet_amount_msg']['amount_player_3_banker_times'] = 0;
//桌子信息
$table['boot_num'] = $boot['boot_num'];
$table['player_1_count'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'win_player_1' => 1))->count();
$table['player_2_count'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'win_player_2' => 1))->count();
$table['player_3_count'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'win_player_3' => 1))->count();
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'bet_status' => 3))->field('result_banker,result_player_1,result_player_2,result_player_3,win_player_1,win_player_2,win_player_3')->order('start_time ASC,id ASC')->select();
if($number_tab){
$table['ludan'] = nn_waybill($number_tab);
}else{
$table['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id'=>$boot['id']))->order('id DESC')->find();
$table['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$table['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
if($bet){
$table['bet_amount_msg']['amount_player_1'] = intval($bet['amount_player_1']) > 0 ? intval($bet['amount_player_1']) : 0;
$table['bet_amount_msg']['amount_player_1_times'] = intval($bet['amount_player_1_times']) > 0 ? intval($bet['amount_player_1_times']) : 0;
$table['bet_amount_msg']['amount_player_1_banker'] = intval($bet['amount_player_1_banker']) > 0 ? intval($bet['amount_player_1_banker']) : 0;
$table['bet_amount_msg']['amount_player_1_banker_times'] = intval($bet['amount_player_1_banker_times']) > 0 ? intval($bet['amount_player_1_banker_times']) : 0;
$table['bet_amount_msg']['amount_player_2'] = intval($bet['amount_player_2']) > 0 ? intval($bet['amount_player_2']) : 0;
$table['bet_amount_msg']['amount_player_2_times'] = intval($bet['amount_player_2_times']) > 0 ? intval($bet['amount_player_2_times']) : 0;
$table['bet_amount_msg']['amount_player_2_banker'] = intval($bet['amount_player_2_banker']) > 0 ? intval($bet['amount_player_2_banker']) : 0;
$table['bet_amount_msg']['amount_player_2_banker_times'] = intval($bet['amount_player_2_banker_times']) > 0 ? intval($bet['amount_player_2_banker_times']) : 0;
$table['bet_amount_msg']['amount_player_3'] = intval($bet['amount_player_3']) > 0 ? intval($bet['amount_player_3']) : 0;
$table['bet_amount_msg']['amount_player_3_times'] = intval($bet['amount_player_3_times']) > 0 ? intval($bet['amount_player_3_times']) : 0;
$table['bet_amount_msg']['amount_player_3_banker'] = intval($bet['amount_player_3_banker']) > 0 ? intval($bet['amount_player_3_banker']) : 0;
$table['bet_amount_msg']['amount_player_3_banker_times'] = intval($bet['amount_player_3_banker_times']) > 0 ? intval($bet['amount_player_3_banker_times']) : 0;
}
$table['card_info']['card_first'] = 0;
$table['card_info']['player_1_card_1'] = 0;
$table['card_info']['player_1_card_2'] = 0;
$table['card_info']['player_1_card_3'] = 0;
$table['card_info']['player_1_card_4'] = 0;
$table['card_info']['player_1_card_5'] = 0;
$table['card_info']['player_2_card_1'] = 0;
$table['card_info']['player_2_card_2'] = 0;
$table['card_info']['player_2_card_3'] = 0;
$table['card_info']['player_2_card_4'] = 0;
$table['card_info']['player_2_card_5'] = 0;
$table['card_info']['player_3_card_1'] = 0;
$table['card_info']['player_3_card_2'] = 0;
$table['card_info']['player_3_card_3'] = 0;
$table['card_info']['player_3_card_4'] = 0;
$table['card_info']['player_3_card_5'] = 0;
$table['card_info']['banker_card_1'] = 0;
$table['card_info']['banker_card_2'] = 0;
$table['card_info']['banker_card_3'] = 0;
$table['card_info']['banker_card_4'] = 0;
$table['card_info']['banker_card_5'] = 0;
$table['nn_result']['player_1_result'] = 0;
$table['nn_result']['player_2_result'] = 0;
$table['nn_result']['player_3_result'] = 0;
$table['nn_result']['banker_result'] = 0;
if($table['is_scavenging'] == 1 && $cur_number_tab['bet_status'] == 2){
$card_info = getRedisCard($cur_number_tab['id']);
if($card_info){
$table['card_info']['card_first'] = $card_info['card_first'];
$table['card_info']['player_1_card_1'] = $card_info['player_1_card_1'];
$table['card_info']['player_1_card_2'] = $card_info['player_1_card_2'];
$table['card_info']['player_1_card_3'] = $card_info['player_1_card_3'];
$table['card_info']['player_1_card_4'] = $card_info['player_1_card_4'];
$table['card_info']['player_1_card_5'] = $card_info['player_1_card_5'];
$table['card_info']['player_2_card_1'] = $card_info['player_2_card_1'];
$table['card_info']['player_2_card_2'] = $card_info['player_2_card_2'];
$table['card_info']['player_2_card_3'] = $card_info['player_2_card_3'];
$table['card_info']['player_2_card_4'] = $card_info['player_2_card_4'];
$table['card_info']['player_2_card_5'] = $card_info['player_2_card_5'];
$table['card_info']['player_3_card_1'] = $card_info['player_3_card_1'];
$table['card_info']['player_3_card_2'] = $card_info['player_3_card_2'];
$table['card_info']['player_3_card_3'] = $card_info['player_3_card_3'];
$table['card_info']['player_3_card_4'] = $card_info['player_3_card_4'];
$table['card_info']['player_3_card_5'] = $card_info['player_3_card_5'];
$table['card_info']['banker_card_1'] = $card_info['banker_card_1'];
$table['card_info']['banker_card_2'] = $card_info['banker_card_2'];
$table['card_info']['banker_card_3'] = $card_info['banker_card_3'];
$table['card_info']['banker_card_4'] = $card_info['banker_card_4'];
$table['card_info']['banker_card_5'] = $card_info['banker_card_5'];
if($card_info['player_1_card_5'] > 0){
$player_1_card = array($card_info['player_1_card_1'],$card_info['player_1_card_2'],$card_info['player_1_card_3'],$card_info['player_1_card_4'],$card_info['player_1_card_5']);
$player_1_result = JudgeCowCow($player_1_card);
$table['nn_result']['player_1_result'] = $player_1_result['word'];
}else{
$table['nn_result']['player_1_result'] = 0;
}
if($card_info['player_2_card_5'] > 0){
$player_2_card = array($card_info['player_2_card_1'],$card_info['player_2_card_2'],$card_info['player_2_card_3'],$card_info['player_2_card_4'],$card_info['player_2_card_5']);
$player_2_result = JudgeCowCow($player_2_card);
$table['nn_result']['player_2_result'] = $player_2_result['word'];
}else{
$table['nn_result']['player_2_result'] = 0;
}
if($card_info['player_3_card_5'] > 0){
$player_3_card = array($card_info['player_3_card_1'],$card_info['player_3_card_2'],$card_info['player_3_card_3'],$card_info['player_3_card_4'],$card_info['player_3_card_5']);
$player_3_result = JudgeCowCow($player_3_card);
$table['nn_result']['player_3_result'] = $player_3_result['word'];
}else{
$table['nn_result']['player_3_result'] = 0;
}
if($card_info['banker_card_5'] > 0){
$banker_card = array($card_info['banker_card_1'],$card_info['banker_card_2'],$card_info['banker_card_3'],$card_info['banker_card_4'],$card_info['banker_card_5']);
$banker_result = JudgeCowCow($banker_card);
$table['nn_result']['banker_result'] = $banker_result['word'];
}else{
$table['nn_result']['banker_result'] = 0;
}
}
}
}else{
$table['bet_amount_msg']['amount_player_1'] = 0;
$table['bet_amount_msg']['amount_player_1_times'] = 0;
$table['bet_amount_msg']['amount_player_1_banker'] = 0;
$table['bet_amount_msg']['amount_player_1_banker_times'] = 0;
$table['bet_amount_msg']['amount_player_2'] = 0;
$table['bet_amount_msg']['amount_player_2_times'] = 0;
$table['bet_amount_msg']['amount_player_2_banker'] = 0;
$table['bet_amount_msg']['amount_player_2_banker_times'] = 0;
$table['bet_amount_msg']['amount_player_3'] = 0;
$table['bet_amount_msg']['amount_player_3_times'] = 0;
$table['bet_amount_msg']['amount_player_3_banker'] = 0;
$table['bet_amount_msg']['amount_player_3_banker_times'] = 0;
$table['boot_num'] = 1;
$table['boot_id'] = 0;
$table['number_tab_number'] = 1;
$table['number_tab_id'] = 0;
$table['previous_number_tab_id'] = 0;
$table['bet_status'] = 0;
}
}
elseif($game_id == 5){
//限红
$limit_money_array = explode('-',$table['limit_money']);
$table['limit_money_low'] = $limit_money_array[0];
$table['limit_money_high'] = $limit_money_array[1];
$boot = Db::name($bootTabTable)->where('table_id',$table['id'])->order('id DESC')->find();
if($boot){
$table['boot_num'] = $boot['boot_num'];
$table['player_1_count'] = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'win_player_1' => 1))->count();
$table['player_2_count'] = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'win_player_2' => 1))->count();
$table['player_3_count'] = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'win_player_3' => 1))->count();
$number_tab = Db::name($numberTabTable)->where(array('boot_id' => $boot['id'], 'bet_status' => 3))->field('result_banker,result_player_1,result_player_2,result_player_3,win_player_1,win_player_2,win_player_3')->order('start_time ASC,id ASC')->select();
if($number_tab){
$table['ludan'] = nn_waybill($number_tab);
}else{
$table['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('boot_id'=>$boot['id']))->order('id DESC')->find();
$table['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$table['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 0;
}else{
$table['boot_num'] = 1;
$table['number_tab_number'] = 1;
$table['player_1_count'] = 0;
$table['player_2_count'] = 0;
$table['player_3_count'] = 0;
$table['ludan'] = array();
}
}
elseif($game_id == 6){
$boot = Db::name($bootTabTable)->where('table_id',$table['id'])->order('id DESC')->find();
$betAmountMsg = [
'toning_zero' => 0,
'toning_four' => 0,
'toning_one' => 0,
'toning_three' => 0,
'toning_big' => 0,
'toning_small' => 0,
'toning_singular' => 0,
'toning_plural' => 0
];
$table['bet_amount_msg'] = $betAmountMsg;
if($boot){
$table['boot_num'] = $boot['boot_num'];
$table['boot_id'] = $boot['id'];
$toningCountArray = tonging_count_to_array($boot['toning_count']);
$table['count'] = $toningCountArray;
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id'=>$boot['id'],'bet_status'=>3))->order('start_time ASC,id ASC')->select();
if($number_tab){
$table['ludan'] = WaybillToning::createWaybill($number_tab);
}else{
$table['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$table['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$table['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$table['previous_number_tab_id'] = 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$table['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
$amountArray = result_to_array($bet['toning_amount']);
$table['bet_amount_msg'] = $amountArray;
}
}else{
$table['boot_num'] = 1;
$table['boot_id'] = 0;
$table['number_tab_number'] = 1;
$table['number_tab_id'] = 0;
$table['previous_number_tab_id'] = 0;
$table['zero_count'] = 0;
$table['one_count'] = 0;
$table['two_count'] = 0;
$table['three_count'] = 0;
$table['four_count'] = 0;
$table['big_count'] = 0;
$table['small_count'] = 0;
$table['singular_count'] = 0;
$table['plural_count'] = 0;
$table['ludan'] = array();
$table['bet_status'] = 0;
}
}
elseif($game_id == 7){
$boot = Db::name($bootTabTable)->where('table_id',$table['id'])->order('id DESC')->find();
$betAmountMsg = [
'small' => 0,
'big' => 0,
'singular' => 0,
'plural' => 0,
'two_11' => 0,
'two_22' => 0,
'two_33' => 0,
'two_44' => 0,
'two_55' => 0,
'two_66' => 0,
'leopard' => 0,
'three_111' => 0,
'three_222' => 0,
'three_333' => 0,
'three_444' => 0,
'three_555' => 0,
'three_666' => 0,
'number_4' => 0,
'number_5' => 0,
'number_6' => 0,
'number_7' => 0,
'number_8' => 0,
'number_9' => 0,
'number_10' => 0,
'number_11' => 0,
'number_12' => 0,
'number_13' => 0,
'number_14' => 0,
'number_15' => 0,
'number_16' => 0,
'number_17' => 0,
'two_12' => 0,
'two_13' => 0,
'two_14' => 0,
'two_15' => 0,
'two_16' => 0,
'two_23' => 0,
'two_24' => 0,
'two_25' => 0,
'two_26' => 0,
'two_34' => 0,
'two_35' => 0,
'two_36' => 0,
'two_45' => 0,
'two_46' => 0,
'two_56' => 0,
'living_1' => 0,
'living_2' => 0,
'living_3' => 0,
'living_4' => 0,
'living_5' => 0,
'living_6' => 0,
];
$table['bet_amount_msg'] = $betAmountMsg;
if($boot){
$table['boot_num'] = $boot['boot_num'];
$table['boot_id'] = $boot['id'];
$diceCountArray = dice_count_to_array($boot['dice_count']);
$table['count'] = $diceCountArray;
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id'=>$boot['id'],'bet_status'=>3))->order('start_time ASC,id ASC')->select();
if($number_tab){
//路单留空
$table['ludan'] = WaybillDice::createWaybill($number_tab);
}else{
$table['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$table['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$table['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$table['previous_number_tab_id'] = 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$table['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
$amountArray = result_to_array($bet['dice_amount']);
$table['bet_amount_msg'] = $amountArray;
}
}else{
$table['boot_num'] = 1;
$table['boot_id'] = 0;
$table['number_tab_number'] = 1;
$table['number_tab_id'] = 0;
$table['previous_number_tab_id'] = 0;
$table['count']['leopard_count'] = 0;
$table['count']['small_count'] = 0;
$table['count']['big_count'] = 0;
$table['count']['singular_count'] = 0;
$table['count']['plural_count'] = 0;
$table['ludan'] = array();
$table['bet_status'] = 0;
}
}
elseif($game_id == 8){
$boot = Db::name($bootTabTable)->where('table_id',$table['id'])->order('id DESC')->find();
$betAmountMsg = [
'roulette_type' => '',
'amount' => []
];
$table['bet_amount_msg'] = $betAmountMsg;
if($boot){
$table['boot_num'] = $boot['boot_num'];
$table['boot_id'] = $boot['id'];
$rouletteCountArray = roulette_count_to_array($boot['roulette_count']);
$table['count'] = $rouletteCountArray;
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id'=>$boot['id'],'bet_status'=>3))->order('start_time ASC,id ASC')->select();
if($number_tab){
//路单留空
$table['ludan'] = WaybillRoulette::createWaybill($number_tab);
}else{
$table['ludan'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$table['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$table['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1;
$table['previous_number_tab_id'] = 0;
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$table['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
if($bet['roulette_european_amount']){
$table['bet_amount_msg']['roulette_type'] = 'european';
$table['bet_amount_msg']['amount'] = result_to_array($bet['roulette_european_amount']);
}
if($bet['roulette_french_amount']){
$table['bet_amount_msg']['roulette_type'] = 'french';
$table['bet_amount_msg']['amount'] = result_to_array($bet['roulette_french_amount']);
}
}
}else{
$table['boot_num'] = 1;
$table['boot_id'] = 0;
$table['number_tab_number'] = 1;
$table['number_tab_id'] = 0;
$table['previous_number_tab_id'] = 0;
$table['count']['low_count'] = 0;
$table['count']['even_count'] = 0;
$table['count']['odd_count'] = 0;
$table['count']['red_count'] = 0;
$table['count']['black_count'] = 0;
$table['count']['zero_count'] = 0;
$table['ludan'] = array();
$table['bet_status'] = 0;
}
}
else{
$boot = Db::name($bootTabTable)->where('table_id',$table['id'])->order('id DESC')->find();
if($boot){
$table['bet_amount_msg']['banker_amount'] = 0;
$table['bet_amount_msg']['player_amount'] = 0;
$table['bet_amount_msg']['tie_amount'] = 0;
$table['bet_amount_msg']['banker_pair_amount'] = 0;
$table['bet_amount_msg']['player_pair_amount'] = 0;
$table['boot_num'] = $boot['boot_num'];
$table['playerCount'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'result' => 2))->count();
$table['tieCount'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'result' => 3))->count();
$table['bankerCount'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'result' => 1))->count();
if($game_id == 1){
$table['player_pair_Count'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'pair' => 2))->count();
$table['banker_pair_Count'] = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'pair' => 1))->count();
$all_pair = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'pair' => 3))->count();
$table['banker_pair_Count'] = $table['banker_pair_Count'] + $all_pair;
$table['player_pair_Count'] = $table['player_pair_Count'] + $all_pair;
}
$number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'bet_status' => 3))->order('start_time ASC,id ASC')->select();
if($number_tab){
$number_tab_add_banker = $number_tab;
$number_tab_add_player = $number_tab;
$number_tab_add_banker[] = array('result' => 1, 'pair' => 0);
$number_tab_add_player[] = array('result' => 2, 'pair' => 0);
$table['ludan'] = waybill($number_tab);
$table['ludan_banker'] = waybill($number_tab_add_banker);
$table['ludan_player'] = waybill($number_tab_add_player);
}else{
$table['ludan'] = array();
$table['ludan_banker'] = array();
$table['ludan_player'] = array();
}
$cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id']))->order('id DESC')->find();
$table['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1;
$table['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 0;
if($table['number_tab_number'] <= 50){
$table['can_bet_luck_six'] = 1;
}
if($table['number_tab_number'] <= 30){
$table['can_bet_big_small'] = 1;
}
//查询当前用户是否有过下注
if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){
$bet = Db::name($betTable)->where(array('table_id' => $table['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $user_id))->find();
}else{
$bet = array();
}
$table['bet_status'] = $cur_number_tab['bet_status'];
if($bet){
$table['bet_amount_msg']['banker_amount'] = intval($bet['banker_amount']) > 0 ? intval($bet['banker_amount']) : 0;
$table['bet_amount_msg']['player_amount'] = intval($bet['player_amount']) > 0 ? intval($bet['player_amount']) : 0;
$table['bet_amount_msg']['tie_amount'] = intval($bet['tie_amount']) > 0 ? intval($bet['tie_amount']) : 0;
if($table['game_id'] == 1){
$table['bet_amount_msg']['banker_pair_amount'] = intval($bet['banker_pair_amount']) > 0 ? intval($bet['banker_pair_amount']) : 0;
$table['bet_amount_msg']['player_pair_amount'] = intval($bet['player_pair_amount']) > 0 ? intval($bet['player_pair_amount']) : 0;
}else{
$table['bet_amount_msg']['banker_pair_amount'] = 0;
$table['bet_amount_msg']['player_pair_amount'] = 0;
}
}
//自动台返回牌型
if($table['is_scavenging'] == 1 && $cur_number_tab['bet_status'] == 2){
$card_info = getRedisCardByPosition($cur_number_tab['id']);
if($card_info){
$table['card_info']['banker_1'] = $card_info['banker_1'];
if($table['game_id'] == 1){
$table['card_info']['banker_2'] = $card_info['banker_2'];
$table['card_info']['banker_3'] = $card_info['banker_3'];
}
$table['card_info']['player_1'] = $card_info['player_1'];
if($table['game_id'] == 1){
$table['card_info']['player_2'] = $card_info['player_2'];
$table['card_info']['player_3'] = $card_info['player_3'];
}
}else{
$table['card_info']['banker_1'] = 0;
if($table['game_id'] == 1){
$table['card_info']['banker_2'] = 0;
$table['card_info']['banker_3'] = 0;
}
$table['card_info']['player_1'] = 0;
if($table['game_id'] == 1){
$table['card_info']['player_2'] = 0;
$table['card_info']['player_3'] = 0;
}
}
}else{
$table['card_info']['banker_1'] = 0;
if($table['game_id'] == 1){
$table['card_info']['banker_2'] = 0;
$table['card_info']['banker_3'] = 0;
}
$table['card_info']['player_1'] = 0;
if($table['game_id'] == 1){
$table['card_info']['player_2'] = 0;
$table['card_info']['player_3'] = 0;
}
}
}else{
$table['bet_amount_msg']['banker_amount'] = 0;
$table['bet_amount_msg']['player_amount'] = 0;
$table['bet_amount_msg']['tie_amount'] = 0;
$table['bet_amount_msg']['banker_pair_amount'] = 0;
$table['bet_amount_msg']['player_pair_amount'] = 0;
$table['boot_num'] = 1;
$table['boot_id'] = 0;
$table['number_tab_number'] = 1;
$table['number_tab_id'] = 0;
$table['previous_number_tab_id'] = 0;
$table['playerCount'] = 0;
$table['tieCount'] = 0;
$table['bankerCount'] = 0;
$table['ludan'] = array();
$table['ludan_banker'] = array();
$table['ludan_player'] = array();
$table['bet_status'] = 0;
$table['can_bet_luck_six'] = 1;
$table['can_bet_big_small'] = 1;
}
}
$data = encrypt_data($table);
return json(array('Success' => 1, 'Data' => $data));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
} else {
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
//今日最佳
public function optimum(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
$optimum = Db::name('optimum')->order('win_money desc')->select();
$optimum = encrypt_data($optimum);
return json(array('Success' => 1, 'Data' => $optimum));
}else{
return json(array('Success' => 1, 'Data' => encrypt_data([])));
// return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
//游戏记录
public function get_user_bets(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
// 语言包
$langList = ['tw' => 'zh-tw.php','en' => 'en-us.php'];
$langType = empty($json_arr['language']) ? 'cn' : $json_arr['language'];
$langFile = empty($langList[$langType]) ? 'en-us.php' : $langList[$langType];
$langFile = ROOT_PATH.'thinkphp/lang/'.$langFile;
Lang::load($langFile);
$lang = Lang::get();
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$game_id = intval($json_arr['game_id']);
$time_interval = intval($json_arr['time_interval']);
$page = intval($json_arr['page']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $game_id > 0 && $time_interval > 0 && $page > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
if($time_interval == 1){
$startTime = mktime(0,0,0,date('m'),date('d'),date('Y'));
$endTime = mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
}elseif($time_interval == 2){
$startTime = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endTime = mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
}elseif($time_interval == 3){
$startTime = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));
$endTime = mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"));
}
$betWhere = array();
$betWhere['create_time'] = array('between',[$startTime,$endTime]);
$betWhere['user_id'] = $user_id;
$betWhere['game_id'] = $game_id;
$betWhere['status'] = array('>',0);
$page_list = 15;
if($page > 1){
$limie_start = ($page - 1) * $page_list;
}else{
$limie_start = 0;
}
if($game_id > 0){
$bet = Db::name('bet')->where($betWhere)->order('id desc')->limit($limie_start,$page_list)->select();
$bet_num = Db::name('bet')->where($betWhere)->order('id desc')->count();
}else{
return json(['Success'=>0,'msg'=>'retreated_fail_6']);
}
$page_num = ceil($bet_num/$page_list);
//组装注单信息
$newBet = array();
$data = array();
$user_bets = array();
$bet_list_amount = 0;
$bet_list_wintotal = 0;
foreach ($bet as $k => $v){
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['game_num'] = $v['game_id'].$v['boot_num'].$v['number'];
if($game_id == 1){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
if($number_info['result'] == 1){
$result = $lang['banker'];
}elseif($number_info['result'] == 2){
$result = $lang['player'];
}elseif($number_info['result'] == 3){
$result = $lang['tie'];
}else{
$result = '-';
}
if($number_info['pair'] == 1){
$pair = ','.$lang['banker_pair'];
}elseif($number_info['pair'] == 2){
$pair = ','.$lang['player_pair'];
}elseif($number_info['pair'] == 3){
$pair = ','.$lang['both_pair'];
}else{
$pair = '';
}
if($number_info['luck_six'] > 1){
$luck_six = ','.$lang['luck_6'];
}else{
$luck_six = '';
}
if($number_info['big_small'] == 1){
$big_small = ','.$lang['big'];
}elseif($number_info['big_small'] == 2){
$big_small = ','.$lang['small'];
}else{
$big_small = '';
}
$v['card_result'] = $result.$pair.$luck_six.$big_small;
}else{
$v['card_result'] = '-';
}
if($v['status'] == 2){
$v['card_result'] = $lang['void'];
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
if($v['banker_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker'].'('.$v['banker_amount'].')';
}
if($v['player_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player'].'('.$v['player_amount'].')';
}
if($v['tie_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['tie'].'('.$v['tie_amount'].')';
}
if($v['banker_pair_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_pair'].'('.$v['banker_pair_amount'].')';
}
if($v['player_pair_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_pair'].'('.$v['player_pair_amount'].')';
}
if($v['luck_six_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['luck_6'].'('.$v['luck_six_amount'].')';
}
if($v['big_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['big'].'('.$v['big_amount'].')';
}
if($v['small_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['small'].'('.$v['small_amount'].')';
}
if($v['baccarat_type'] == 1){
$data['user_bet'] = $data['user_bet'].'('.$lang['free_commission'].')';
}else{
$data['user_bet'] = $data['user_bet'].'('.$lang['commission'].')';
}
// 码量
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['amount'] = $v['amount'];
$data['win_total'] = $v['win_total'];
$data['ximaliang'] = Db::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');
$data['ximalv'] = Db::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($data['ximaliang'])){
$data['ximalv'] = Db::name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv');
}
$data['maliang'] = Db::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');
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
if($game_id == 2){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
if($number_info['result'] == 1){
$result = $lang['dragon'];
}elseif($number_info['result'] == 2){
$result = $lang['tiger'];
}elseif($number_info['result'] == 3){
$result = $lang['tie'];
}else{
$result = '-';
}
$v['card_result'] = $result;
}else{
$v['card_result'] = '-';
}
if($v['status'] == 2){
$v['card_result'] = $lang['void'];
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
if($v['banker_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['dragon'].'('.$v['banker_amount'].')';
}
if($v['player_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['tiger'].'('.$v['player_amount'].')';
}
if($v['tie_amount'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['tie'].'('.$v['tie_amount'].')';
}
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['amount'] = $v['amount'];
$data['win_total'] = $v['win_total'];
$data['ximaliang'] = Db::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');
$data['ximalv'] = Db::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($data['ximaliang'])){
$data['ximalv'] = Db::name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_dt');
}
$data['maliang'] = Db::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');
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
if($game_id == 4){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
$result = '';
if($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result .= $lang['banker']." ";
}
if($v['win_player_1'] == 1){
$result .= $lang['player_1']." ";
}
if($v['win_player_2'] == 1){
$result .= $lang['player_2']." ";
}
if($v['win_player_3'] == 1){
$result .= $lang['player_3']." ";
}
$result.= '';
$result.= $lang['player_1'].interchange_nn($v['result_player_1'],$lang).' ';
$result.= $lang['player_2'].interchange_nn($v['result_player_2'],$lang).' ';
$result.= $lang['player_3'].interchange_nn($v['result_player_3'],$lang).' ';
$result.= $lang['banker'].interchange_nn($v['result_banker'],$lang).' ';
$result.= '';
$v['card_result'] = trim($result,'');
}else{
$v['card_result'] = '-';
}
if($v['status'] == 2){
$v['card_result'] = $lang['void'];
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
$data['number_is_rob'] = 0;
if($v['amount_player_1'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_1_flat'].'('.$v['amount_player_1'].')';
}
if($v['amount_player_1_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_1_double'].'('.$v['amount_player_1_times'].')';
}
if($v['amount_player_1_banker'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_1_flat'].'('.$v['amount_player_1_banker'].')';
}
if($v['amount_player_1_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_1_double'].'('.$v['amount_player_1_banker_times'].')';
}
if($v['amount_player_2'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_2_flat'].'('.$v['amount_player_2'].')';
}
if($v['amount_player_2_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_2_double'].'('.$v['amount_player_2_times'].')';
}
if($v['amount_player_2_banker'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_2_flat'].'('.$v['amount_player_2_banker'].')';
}
if($v['amount_player_2_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_2_double'].'('.$v['amount_player_2_banker_times'].')';
}
if($v['amount_player_3'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_3_flat'].'('.$v['amount_player_3'].')';
}
if($v['amount_player_3_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_3_double'].'('.$v['amount_player_3_times'].')';
}
if($v['amount_player_3_banker'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_3_flat'].'('.$v['amount_player_3_banker'].')';
}
if($v['amount_player_3_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_3_double'].'('.$v['amount_player_3_banker_times'].')';
}
if($number_info['rob_banker_id'] == $user_id){
$data['user_bet'] = $lang['round_host'];
$data['number_is_rob'] = 1;
}
$data['amount'] = $v['amount_player_1'] + $v['amount_player_1_times'] + $v['amount_player_1_banker'] + $v['amount_player_1_banker_times'];
$data['amount'] += $v['amount_player_2'] + $v['amount_player_2_times'] + $v['amount_player_2_banker'] + $v['amount_player_2_banker_times'];
$data['amount'] += $v['amount_player_3'] + $v['amount_player_3_times'] + $v['amount_player_3_banker'] + $v['amount_player_3_banker_times'];
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['win_total'] = $v['win_total'];
$data['number_tab_id'] = $v['number_tab_id'];
$data['ximaliang'] = Db::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');
$data['ximalv'] = Db::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($data['ximaliang'])){
$data['ximalv'] = Db::name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_nn');
}
$data['maliang'] = Db::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');
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
if($game_id == 5){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
$result = '';
if($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result .= $lang['banker']." ";
}
if($v['win_player_1'] == 1){
$result .= $lang['player_1']." ";
}
if($v['win_player_2'] == 1){
$result .= $lang['player_2']." ";
}
if($v['win_player_3'] == 1){
$result .= $lang['player_3']." ";
}
$result.= '';
$result.= $lang['player_1'].interchange_nn($v['result_player_1'],$lang).' ';
$result.= $lang['player_2'].interchange_nn($v['result_player_2'],$lang).' ';
$result.= $lang['player_3'].interchange_nn($v['result_player_3'],$lang).' ';
$result.= $lang['banker'].interchange_nn($v['result_banker'],$lang).' ';
$result.= '';
$v['card_result'] = trim($result,'');
}else{
$v['card_result'] = '-';
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
$data['number_is_rob'] = 0;
if($v['amount_player_1'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_1_flat'].'('.$v['amount_player_1'].')';
}
if($v['amount_player_1_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_1_double'].'('.$v['amount_player_1_times'].')';
}
if($v['amount_player_1_banker'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_1_flat'].'('.$v['amount_player_1_banker'].')';
}
if($v['amount_player_1_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_1_double'].'('.$v['amount_player_1_banker_times'].')';
}
if($v['amount_player_2'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_2_flat'].'('.$v['amount_player_2'].')';
}
if($v['amount_player_2_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_2_double'].'('.$v['amount_player_2_times'].')';
}
if($v['amount_player_2_banker'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_2_flat'].'('.$v['amount_player_2_banker'].')';
}
if($v['amount_player_2_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_2_double'].'('.$v['amount_player_2_banker_times'].')';
}
if($v['amount_player_3'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_3_flat'].'('.$v['amount_player_3'].')';
}
if($v['amount_player_3_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['player_3_double'].'('.$v['amount_player_3_times'].')';
}
if($v['amount_player_3_banker'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_3_flat'].'('.$v['amount_player_3_banker'].')';
}
if($v['amount_player_3_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].$lang['banker_player_3_double'].'('.$v['amount_player_3_banker_times'].')';
}
if($number_info['rob_banker_id'] == $user_id){
$data['user_bet'] = $lang['round_host'];
$data['number_is_rob'] = 1;
}
$data['amount'] = $v['amount_player_1'] + $v['amount_player_1_times'] + $v['amount_player_1_banker'] + $v['amount_player_1_banker_times'];
$data['amount'] += $v['amount_player_2'] + $v['amount_player_2_times'] + $v['amount_player_2_banker'] + $v['amount_player_2_banker_times'];
$data['amount'] += $v['amount_player_3'] + $v['amount_player_3_times'] + $v['amount_player_3_banker'] + $v['amount_player_3_banker_times'];
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['win_total'] = $v['win_total'];
$data['number_tab_id'] = $v['number_tab_id'];
$data['ximaliang'] = Db::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');
$data['ximalv'] = Db::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($data['ximaliang'])){
$data['ximalv'] = Db::name('user')->where(array('id'=>$v['user_id']))->value('agent_ximalv_tc');
}
$data['maliang'] = Db::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');
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
if($game_id == 6){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
$result = $lang['toning_result_'.$number_info['toning_result']] ? $lang['toning_result_'.$number_info['toning_result']] : '-';
$v['card_result'] = $result;
}else{
$v['card_result'] = '-';
}
if($v['status'] == 2){
$v['card_result'] = $lang['void'];
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
$toning_result = result_to_array($v['toning_amount']);
foreach ($toning_result as $zone => $zone_money){
if($zone_money > 0){
$data['user_bet'] = $data['user_bet'].$lang[$zone].'('.$zone_money.')';
}
}
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['amount'] = $v['amount'];
$data['win_total'] = $v['win_total'];
$data['ximaliang'] = 0;
$data['ximalv'] = 0;
$data['maliang'] = 0;
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
if($game_id == 7){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
$v['card_result'] = $number_info['dice_result'] ? $number_info['dice_result'] : '-';
}else{
$v['card_result'] = '-';
}
if($v['status'] == 2){
$v['card_result'] = $lang['void'];
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
$dice_result = result_to_array($v['dice_amount']);
foreach ($dice_result as $zone => $zone_money){
if($zone_money > 0){
$data['user_bet'] = $data['user_bet'].$lang['dice_'.$zone].'('.$zone_money.')';
}
}
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['amount'] = $v['amount'];
$data['win_total'] = $v['win_total'];
$data['ximaliang'] = 0;
$data['ximalv'] = 0;
$data['maliang'] = 0;
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
if($game_id == 8) {
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
$v['card_result'] = $number_info['roulette_result'] ? $number_info['roulette_result'] : '-';
}else{
$v['card_result'] = '-';
}
if($v['status'] == 2){
$v['card_result'] = $lang['void'];
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
if($v['roulette_european_amount']){
$roulette_result = result_to_array($v['roulette_european_amount']);
foreach ($roulette_result as $zone => $zone_money){
if($zone_money > 0){
if(in_array($zone,['low','high','odd','even','red','black','column_1','column_2','column_3','dozen_1','dozen_2','dozen_3'])){
$data['user_bet'] = $data['user_bet'].$lang['roulette_'.$zone].'('.$zone_money.')';
}else{
$keyArray = explode("_", $zone);
$data['user_bet'] = $data['user_bet'].$lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']'.'('.$zone_money.')';
}
}
}
$data['user_bet'] = $lang['european'].':'.$data['user_bet'];
}
if($v['roulette_french_amount']){
$roulette_result = result_to_array($v['roulette_french_amount']);
foreach ($roulette_result as $zone => $zone_money){
if($zone_money > 0){
if(in_array($zone,['zeroGame','neighborsOfZero','orphans','theThird'])){
$zone = strtolower($zone);
$data['user_bet'] = $data['user_bet'].$lang['roulette_'.$zone].'('.$zone_money.')';
}else{
$keyArray = explode("_", $zone);
$data['user_bet'] = $data['user_bet'].$lang['roulette_'.$keyArray[0]].'['.$keyArray[1].']'.'('.$zone_money.')';
}
}
}
$data['user_bet'] = $lang['french'].':'.$data['user_bet'];
}
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['amount'] = $v['amount'];
$data['win_total'] = $v['win_total'];
$data['ximaliang'] = 0;
$data['ximalv'] = 0;
$data['maliang'] = 0;
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
}
// 重新赋值
$user_bets['bet_info'] = $newBet;
$user_bets['bet_num'] = $bet_num;
$user_bets['page_num'] = $page_num;
$user_bets['bet_list_amount'] = $bet_list_amount;
$user_bets['bet_list_wintotal'] = $bet_list_wintotal;
// return json($user_bets);
$bet = encrypt_data($user_bets);
return json(array('Success' => 1, 'Data' => $bet));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
}
//上下分记录
public function recharge_record(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$mode = intval($json_arr['mode']);
$time_interval = intval($json_arr['time_interval']);
$page = intval($json_arr['page']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $mode > 0 && $time_interval > 0 && $page > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
if($time_interval == 1){
$startTime = mktime(0,0,0,date('m'),date('d'),date('Y'));
$endTime = mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
}elseif($time_interval == 2){
$startTime = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endTime = mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
}elseif($time_interval == 3){
$startTime = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));
$endTime = mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"));
}
$betWhere = array();
$betWhere['create_time'] = array('between',[$startTime,$endTime]);
$betWhere['user_id'] = $user_id;
$betWhere['mode'] = $mode;
$page_list = 15;
if($page > 1){
$limie_start = $page * $page_list -1;
}else{
$limie_start = 0;
}
$recharge = Db::name('recharge')->where($betWhere)->field('id,mode,create_time,old_money,new_money,amount')->order('id desc')->limit($limie_start,$page_list)->select();
$recharge_num = Db::name('recharge')->where($betWhere)->count();
$page_num = ceil($recharge_num/$page_list);
//组装注单信息
$recharge_record = array();
$recharge_amount = 0;
foreach ($recharge as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
if($v['mode'] == 1){
$v['mode'] = '上分';
}elseif($v['mode'] == 2){
$v['mode'] = '下分';
}
$recharge_amount = $recharge_amount + $v['amount'];
$recharge[$k] = $v;
}
$recharge_record['recharge'] = $recharge;
$recharge_record['recharge_num'] = $recharge_num;
$recharge_record['page_num'] = $page_num;
$recharge_record['recharge_amount'] = $recharge_amount;
$recharge_record = encrypt_data($recharge_record);
return json(array('Success' => 1, 'Data' => $recharge_record));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
//上下分记录
public function tip_record(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$time_interval = intval($json_arr['time_interval']);
$page = intval($json_arr['page']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $time_interval > 0 && $page > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
if($time_interval == 1){
$startTime = mktime(0,0,0,date('m'),date('d'),date('Y'));
$endTime = mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
}elseif($time_interval == 2){
$startTime = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endTime = mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
}elseif($time_interval == 3){
$startTime = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));
$endTime = mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"));
}
$betWhere = array();
$betWhere['create_time'] = array('between',[$startTime,$endTime]);
$betWhere['user_id'] = $user_id;
$page_list = 15;
if($page > 1){
$limie_start = $page * $page_list -1;
}else{
$limie_start = 0;
}
$tip = Db::name('tip')->where($betWhere)->order('id desc')->limit($limie_start,$page_list)->select();
$tip_num = Db::name('tip')->where($betWhere)->count();
$page_num = ceil($tip_num/$page_list);
//组装注单信息
$tip_record = array();
$tip_amount = 0;
foreach ($tip as $k => $v) {
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$tip_amount = $tip_amount + $v['money'];
$tip[$k] = $v;
}
$tip_record['tip'] = $tip;
$tip_record['tip_num'] = $tip_num;
$tip_record['page_num'] = $page_num;
$tip_record['tip_amount'] = $tip_amount;
$tip_record = encrypt_data($tip_record);
return json(array('Success' => 1, 'Data' => $tip_record));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
//开结果后获取会员的下注信息及计算其输赢数目
public function user_bet_baccarat(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
// 语言包
$langList = ['tw' => 'zh-tw.php','en' => 'en-us.php'];
$langType = empty($json_arr['language']) ? 'cn' : $json_arr['language'];
$langFile = empty($langList[$langType]) ? 'en-us.php' : $langList[$langType];
$langFile = ROOT_PATH.'thinkphp/lang/'.$langFile;
Lang::load($langFile);
$lang = Lang::get();
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$number_tab_id = intval($json_arr['number_tab_id']);
$table_id = intval($json_arr['table_id']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $number_tab_id > 0 && $table_id > 0){
//更新session
$betArray = Db::name('bet')->where(array('user_id' => $user_id, 'table_id' => $table_id, 'number_tab_id' => $number_tab_id, 'status' => 1))->order('`id` ASC')->find();
$priceArray = Db::name('user')->where(array('id' => $user_id))->field(array('price_banker','price_player','price_tie_baccarat','price_pair','price_luck_six_2','price_luck_six_3','price_big','price_small'))->find();
if($betArray){
$number_table = Db::name('number_tab')->where(array('id' => $number_tab_id))->field(array('result','pair','luck_six','big_small'))->find();
$luck_six = $number_table['luck_six'];
$result = $number_table['result'];
$pair = $number_table['pair'];
$big_small = $number_table['big_small'];
$returnArray = array();
$banker_amount = $betArray['banker_amount'];
$player_amount = $betArray['player_amount'];
$tie_amount = $betArray['tie_amount'];
$banker_pair_amount = $betArray['banker_pair_amount'];
$player_pair_amount = $betArray['player_pair_amount'];
$luck_six_amount = $betArray['luck_six_amount'];
$big_amount = $betArray['big_amount'];
$small_amount = $betArray['small_amount'];
$b_multiple = $priceArray['price_banker'];
$p_multiple = $priceArray['price_player'];
$t_multiple = $priceArray['price_tie_baccarat'];
$pp_multiple = $priceArray['price_pair'];
$price_luck_six_2_pp_multiple = $priceArray['price_luck_six_2'];
$price_luck_six_3_pp_multiple = $priceArray['price_luck_six_3'];
$price_big_multiple = $priceArray['price_big'];
$price_small_multiple = $priceArray['price_small'];
$win_total = 0;
if($banker_amount > 0){
if($result == 1){
if ($betArray['baccarat_type'] == 1){
if ($number_table['luck_six'] > 0){
$returnArray[] = array('name' => $lang['banker_full'], 'amount' => $banker_amount, 'win_amount' => round($banker_amount * 0.5,2));
} else {
$returnArray[] = array('name' => $lang['banker_full'], 'amount' => $banker_amount, 'win_amount' => round($banker_amount * 1,2));
}
} else {
$returnArray[] = array('name' => $lang['banker_full'], 'amount' => $banker_amount, 'win_amount' => round($banker_amount * $b_multiple,2));
}
}elseif($result == 3){
$returnArray[] = array('name' => $lang['banker_full'], 'amount' => $banker_amount, 'win_amount' => 0);
}else{
$returnArray[] = array('name' => $lang['banker_full'], 'amount' => $banker_amount, 'win_amount' => to_number($banker_amount));
}
}else{
$returnArray[] = array('name' => $lang['banker_full'], 'amount' => 0, 'win_amount' => 0);
}
if($player_amount > 0){
if($result == 2){
$returnArray[] = array('name' => $lang['player_full'], 'amount' => $player_amount, 'win_amount' => round($player_amount * $p_multiple,2));
}elseif($result == 3){
$returnArray[] = array('name' => $lang['player_full'], 'amount' => $player_amount, 'win_amount' => 0);
}else{
$returnArray[] = array('name' => $lang['player_full'], 'amount' => $player_amount, 'win_amount' => to_number($player_amount));
}
}else{
$returnArray[] = array('name' => $lang['player_full'], 'amount' => 0, 'win_amount' => 0);
}
if($tie_amount > 0){
if($result == 3){
$returnArray[] = array('name' => $lang['tie_full'], 'amount' => $tie_amount, 'win_amount' => round($tie_amount * $t_multiple,2));
}else{
$returnArray[] = array('name' => $lang['tie_full'], 'amount' => $tie_amount, 'win_amount' => to_number($tie_amount));
}
}else{
$returnArray[] = array('name' => $lang['tie_full'], 'amount' => 0, 'win_amount' => 0);
}
if($banker_pair_amount > 0){
if($pair == 1 || $pair == 3){
$returnArray[] = array('name' => $lang['banker_pair_full'], 'amount' => $banker_pair_amount, 'win_amount' => round($banker_pair_amount * $pp_multiple,2));
}else{
$returnArray[] = array('name' => $lang['banker_pair_full'], 'amount' => $banker_pair_amount, 'win_amount' => to_number($banker_pair_amount));
}
}else{
$returnArray[] = array('name' => $lang['banker_pair_full'], 'amount' => 0, 'win_amount' => 0);
}
if($player_pair_amount > 0){
if($pair == 2 || $pair == 3){
$returnArray[] = array('name' => $lang['banker_pair_full'], 'amount' => $player_pair_amount, 'win_amount' => round($player_pair_amount * $pp_multiple,2));
}else{
$returnArray[] = array('name' => $lang['banker_pair_full'], 'amount' => $player_pair_amount, 'win_amount' => to_number($player_pair_amount));
}
}else{
$returnArray[] = array('name' => $lang['banker_pair_full'], 'amount' => 0, 'win_amount' => 0);
}
// 幸运6
if ($luck_six_amount > 0){
if($luck_six == 2 || $luck_six == 3){
if ($luck_six == 2){
$returnArray[] = array('name' => $lang['luck_6'], 'amount' => $luck_six_amount, 'win_amount' => round($luck_six_amount * $price_luck_six_2_pp_multiple,2));
} else {
$returnArray[] = array('name' => $lang['luck_6'], 'amount' => $luck_six_amount, 'win_amount' => round($luck_six_amount * $price_luck_six_3_pp_multiple,2));
}
}else{
$returnArray[] = array('name' => $lang['luck_6'], 'amount' => $luck_six_amount, 'win_amount' => to_number($luck_six_amount));
}
} else {
$returnArray[] = array('name' => $lang['luck_6'], 'amount' => 0, 'win_amount' => 0);
}
// 大
if ($big_amount > 0){
if($big_small == 1){
$returnArray[] = array('name' => $lang['big'], 'amount' => $big_amount, 'win_amount' => round($big_amount * $price_big_multiple,2));
}else{
$returnArray[] = array('name' => $lang['big'], 'amount' => $big_amount, 'win_amount' => to_number($big_amount));
}
} else {
$returnArray[] = array('name' => $lang['big'], 'amount' => 0, 'win_amount' => 0);
}
// 小
if ($small_amount > 0){
if($big_small == 2){
$returnArray[] = array('name' => $lang['small'], 'amount' => $small_amount, 'win_amount' => round($small_amount * $price_small_multiple,2));
}else{
$returnArray[] = array('name' => $lang['small'], 'amount' => $small_amount, 'win_amount' => to_number($small_amount));
}
} else {
$returnArray[] = array('name' => $lang['small'], 'amount' => 0, 'win_amount' => 0);
}
foreach($returnArray AS $k => $v){
$win_total = $v['win_amount'] + $win_total;
}
$jsonData = array('win_total' => $win_total, 'returnData' => $returnArray);
$data = encrypt_data($jsonData);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '没有下注数据']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
}
//开结果后获取会员的下注信息及计算其输赢数目
public function user_bet_dt(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
// 语言包
$langList = ['tw' => 'zh-tw.php','en' => 'en-us.php'];
$langType = empty($json_arr['language']) ? 'cn' : $json_arr['language'];
$langFile = empty($langList[$langType]) ? 'en-us.php' : $langList[$langType];
$langFile = ROOT_PATH.'thinkphp/lang/'.$langFile;
Lang::load($langFile);
$lang = Lang::get();
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$number_tab_id = intval($json_arr['number_tab_id']);
$table_id = intval($json_arr['table_id']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $number_tab_id > 0 && $table_id > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time(), 'table_id' => $table_id));
$betArray = Db::name('bet')->where(array('user_id' => $user_id, 'table_id' => $table_id, 'number_tab_id' => $number_tab_id, 'status' => 1))->order('`id` ASC')->find();
$priceArray = Db::name('user')->where(array('id' => $user_id))->field(array('price_dragon','price_tiger','price_tie_dt'))->find();
if($betArray){
$number_table = Db::name('number_tab')->where(array('id' => $number_tab_id))->field(array('result'))->find();
$result = $number_table['result'];
$returnArray = array();
$banker_amount = $betArray['banker_amount'];
$player_amount = $betArray['player_amount'];
$tie_amount = $betArray['tie_amount'];
$win_total = 0;
if($banker_amount > 0){
if($result == 1){
$returnArray[] = array('name' => $lang['dragon_full'], 'amount' => $banker_amount, 'win_amount' => round($banker_amount * $priceArray['price_dragon'],2));
}elseif($result == 3){
if(DT_HALF == 1){
$returnArray[] = array('name' => $lang['dragon_full'], 'amount' => $banker_amount, 'win_amount' => to_number($banker_amount / 2,2));
}else{
$returnArray[] = array('name' => $lang['dragon_full'], 'amount' => $banker_amount, 'win_amount' => 0);
}
}else{
$returnArray[] = array('name' => $lang['dragon_full'], 'amount' => $banker_amount, 'win_amount' => to_number($banker_amount));
}
}else{
$returnArray[] = array('name' => $lang['dragon_full'], 'amount' => 0, 'win_amount' => 0);
}
if($tie_amount > 0){
if($result == 3){
$returnArray[] = array('name' => $lang['tie_full'], 'amount' => $tie_amount, 'win_amount' => round($tie_amount * $priceArray['price_tie_dt'],2));
}else{
$returnArray[] = array('name' => $lang['tie_full'], 'amount' => $tie_amount, 'win_amount' => to_number($tie_amount));
}
}else{
$returnArray[] = array('name' => $lang['tie_full'], 'amount' => 0, 'win_amount' => 0);
}
if($player_amount > 0){
if($result == 2){
$returnArray[] = array('name' => $lang['tiger_full'], 'amount' => $player_amount, 'win_amount' => round($player_amount * $priceArray['price_tiger'],2));
}elseif($result == 3){
if(DT_HALF == 1){
$returnArray[] = array('name' => $lang['tiger_full'], 'amount' => $player_amount, 'win_amount' => to_number($player_amount / 2,2));
}else{
$returnArray[] = array('name' => $lang['tiger_full'], 'amount' => $player_amount, 'win_amount' => 0);
}
}else{
$returnArray[] = array('name' => $lang['tiger_full'], 'amount' => $player_amount, 'win_amount' => to_number($player_amount));
}
}else{
$returnArray[] = array('name' => $lang['tiger_full'], 'amount' => 0, 'win_amount' => 0);
}
foreach($returnArray AS $k => $v){
$win_total = $v['win_amount'] + $win_total;
}
$jsonData = array('win_total' => $win_total, 'returnData' => $returnArray);
$data = encrypt_data($jsonData);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'msg' => '没有下注数据']);
}
}else{
return json(['Success' => 0, 'msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'msg' => '获取信息失败']);
}
}
}
//开结果后获取会员的下注信息及计算其输赢数目
public function user_bet_nn(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$number_tab_id = intval($json_arr['number_tab_id']);
$table_id = intval($json_arr['table_id']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $number_tab_id > 0 && $table_id > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time(), 'table_id' => $table_id));
$betArray = Db::name('bet')->where(array('user_id' => $user_id, 'table_id' => $table_id, 'number_tab_id' => $number_tab_id, 'status' => 1))->order('`id` ASC')->find();
if($betArray){
$jsonData = array('win_total' => $betArray['win_total'], 'end_money' => $betArray['end_money'], 'amount' => $betArray['amount']);
$data = encrypt_data($jsonData);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '没有下注数据']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
//开结果后获取会员的下注信息及计算其输赢数目
public function user_bet_tc(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$number_tab_id = intval($json_arr['number_tab_id']);
$table_id = intval($json_arr['table_id']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $number_tab_id > 0 && $table_id > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time(), 'table_id' => $table_id));
$betArray = Db::name('bet')->where(array('user_id' => $user_id, 'table_id' => $table_id, 'number_tab_id' => $number_tab_id, 'status' => 1))->order('`id` ASC')->find();
if($betArray){
$jsonData = array('win_total' => $betArray['win_total'], 'end_money' => $betArray['end_money'], 'amount' => $betArray['amount']);
$data = encrypt_data($jsonData);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '没有下注数据']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
//开结果后获取会员的下注信息及计算其输赢数目
public function user_bet_toning(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$number_tab_id = intval($json_arr['number_tab_id']);
$table_id = intval($json_arr['table_id']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $number_tab_id > 0 && $table_id > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time(), 'table_id' => $table_id));
$betArray = Db::name('bet')->where(array('user_id' => $user_id, 'table_id' => $table_id, 'number_tab_id' => $number_tab_id, 'status' => 1))->order('`id` ASC')->find();
if($betArray){
$jsonData = array('win_total' => $betArray['win_total'], 'end_money' => $betArray['end_money'], 'amount' => $betArray['amount']);
$data = encrypt_data($jsonData);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '没有下注数据']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
//开结果后获取会员的下注信息及计算其输赢数目
public function user_bet_dice(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$number_tab_id = intval($json_arr['number_tab_id']);
$table_id = intval($json_arr['table_id']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $number_tab_id > 0 && $table_id > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time(), 'table_id' => $table_id));
$betArray = Db::name('bet')->where(array('user_id' => $user_id, 'table_id' => $table_id, 'number_tab_id' => $number_tab_id, 'status' => 1))->order('`id` ASC')->find();
if($betArray){
$jsonData = array('win_total' => $betArray['win_total'], 'end_money' => $betArray['end_money'], 'amount' => $betArray['amount']);
$data = encrypt_data($jsonData);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '没有下注数据']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
public function user_bet_roulette(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$number_tab_id = intval($json_arr['number_tab_id']);
$table_id = intval($json_arr['table_id']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $number_tab_id > 0 && $table_id > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time(), 'table_id' => $table_id));
$betArray = Db::name('bet')->where(array('user_id' => $user_id, 'table_id' => $table_id, 'number_tab_id' => $number_tab_id, 'status' => 1))->order('`id` ASC')->find();
if($betArray){
$jsonData = array('win_total' => $betArray['win_total'], 'end_money' => $betArray['end_money'], 'amount' => $betArray['amount']);
$data = encrypt_data($jsonData);
return json(['Success' => 1, 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '没有下注数据']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
//快速提现
public function show_withdrawal(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
$show_withdrawal = array();
$show_withdrawal['finish_money'] = Db::name('receivables_record')->where('record_type',2)->where('user_id',$user_id)->where('status',1)->sum('recharge_money');
$show_withdrawal['ongoing_money'] = Db::name('receivables_record')->where('record_type',2)->where('user_id',$user_id)->where('status',0)->sum('recharge_money');
$show_withdrawal['user_bank'] = Db::name('receivables')->where('user_id',$user_id)->where('type',2)->field('receivables_name,receivables_bank,receivables_bank_branch,receivables_bank_number')->order('id desc')->select();
$data = encrypt_data($show_withdrawal);
return json(array('Success' => 1, 'Data' => $data));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
//确认提现
public function withdrawal(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$recharge_name = trim($json_arr['recharge_name']);
$recharge_bank = trim($json_arr['recharge_bank']);
$recharge_bank_branch = trim($json_arr['recharge_bank_branch']);
$recharge_cardnumber = trim($json_arr['recharge_cardnumber']);
$recharge_money = trim($json_arr['recharge_money']);
if(!$recharge_name){
return json(array('Success' => 0, 'Msg' => '持卡人不能为空'));
}
if(!$recharge_bank){
return json(array('Success' => 0, 'Msg' => '提款银行不能为空'));
}
if(!$recharge_bank_branch){
return json(array('Success' => 0, 'Msg' => '提款银行支行不能为空'));
}
if(!$recharge_cardnumber){
return json(array('Success' => 0, 'Msg' => '提款银行卡号不能为空'));
}
if(!$recharge_money || $recharge_money <= 0){
return json(array('Success' => 0, 'Msg' => '提款金额有误'));
}
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token){
$is_banke_info = Db::name('receivables')->where('user_id',$user_id)->where('receivables_bank',$recharge_bank)->where('type',2)->find();
if(!$is_banke_info){
$add_bank = array();
$add_bank['user_id'] = $user_id;
$add_bank['receivables_name'] = $recharge_name;
$add_bank['receivables_bank'] = $recharge_bank;
$add_bank['receivables_bank_branch'] = $recharge_bank_branch;
$add_bank['receivables_bank_number'] = $recharge_cardnumber;
$add_bank['create_time'] = time();
$add_bank['status'] = 1;
$add_bank['type'] = 2;
Db::name('receivables')->insert($add_bank);
}
if($user['money'] > $recharge_money){
$add_record = array();
$add_record['user_id'] = $user_id;
$add_record['username'] = $user['username'];
$add_record['record_type'] = 2;
$add_record['recharge_name'] = $recharge_name;
$add_record['recharge_bank'] = $recharge_bank;
$add_record['recharge_bank_branch'] = $recharge_bank_branch;
$add_record['recharge_cardnumber'] = $recharge_cardnumber;
$add_record['recharge_money'] = $recharge_money;
$add_record['create_time'] = time();
$add_record['status'] = 0;
$is_add_record = Db::name('receivables_record')->insert($add_record);
if($is_add_record){
$record_info = array();
$record_info['msg'] = '提现成功,请等待管理员放款';
$record_info['finish_money'] = Db::name('receivables_record')->where('record_type',2)->where('user_id',$user_id)->where('status',1)->sum('recharge_money');
$record_info['ongoing_money'] = Db::name('receivables_record')->where('record_type',2)->where('user_id',$user_id)->where('status',0)->sum('recharge_money');
$record_info['newMoney'] = $user['money'] - $recharge_money;
Db::name('user')->where(array('id' => $user_id))->limit(1)->update(array('money' => $record_info['newMoney']));
$data = encrypt_data($record_info);
return json(array('Success' => 1, 'Data' => $data));
}else{
return json(array('Success' => 0, 'Msg' => '提现失败,请稍后再试'));
}
}else{
return json(array('Success' => 0, 'Msg' => '您的余额不足'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
//充值信息
public function show_recharge(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
$rechargeinfo = array();
$rechargeinfo['rechargeinfo']['bank_info'] = Db::name('receivables')->where('receivables_type',1)->where('status',1)->field('id,receivables_name,receivables_bank,receivables_bank_number')->order('create_time ASC,id ASC')->select();
$url = $_SERVER['HTTP_HOST'];
$rechargeinfo['rechargeinfo']['weixin_info'] = Db::name('receivables')->where('receivables_type',2)->where('status',1)->field('id,receivables_name,receivables_qr_code')->order('create_time ASC,id ASC')->find();
if($rechargeinfo['rechargeinfo']['weixin_info']){
$rechargeinfo['rechargeinfo']['weixin_info']['receivables_qr_code'] = 'http://'.$url.$rechargeinfo['rechargeinfo']['weixin_info']['receivables_qr_code'];
}
$rechargeinfo['rechargeinfo']['alipay_info'] = Db::name('receivables')->where('receivables_type',3)->where('status',1)->field('id,receivables_name,receivables_qr_code')->order('create_time ASC,id ASC')->find();
if($rechargeinfo['rechargeinfo']['alipay_info']){
$rechargeinfo['rechargeinfo']['alipay_info']['receivables_qr_code'] = 'http://'.$url.$rechargeinfo['rechargeinfo']['alipay_info']['receivables_qr_code'];
}
$rechargeinfo['recharge_record']['finish_money'] = Db::name('receivables_record')->where('record_type',1)->where('user_id',$user_id)->where('status',1)->sum('recharge_money');
$rechargeinfo['recharge_record']['ongoing_money'] = Db::name('receivables_record')->where('record_type',1)->where('user_id',$user_id)->where('status',0)->sum('recharge_money');
$rechargeinfo = encrypt_data($rechargeinfo);
return json(array('Success' => 1, 'Data' => $rechargeinfo));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
//确认充值
public function recharge(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$recharge_type = intval($json_arr['recharge_type']);
$receivables_id = intval($json_arr['receivables_id']);
if($recharge_type == 1){
$recharge_bank = trim($json_arr['recharge_bank']);
$recharge_cardnumber = trim($json_arr['recharge_cardnumber']);
}
$recharge_money = trim($json_arr['recharge_money']);
if(!$recharge_money || $recharge_money <= 0){
return json(array('Success' => 0, 'Msg' => '充值金额有误'));
}
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $recharge_type > 0 && $receivables_id > 0 && $recharge_money > 0){
$add_record = array();
$add_record['user_id'] = $user_id;
$add_record['username'] = $user['username'];
$add_record['record_type'] = 1;
$add_record['recharge_type'] = $recharge_type;
$add_record['receivables_id'] = $receivables_id;
$recharge_info = Db::name('receivables')->where('id',$receivables_id)->find();
$add_record['recharge_name'] = $recharge_info['receivables_name'];
$add_record['recharge_name'] = $user['username'];
if($add_record['recharge_type'] == 1){
$add_record['recharge_bank'] = $recharge_bank;
$add_record['recharge_cardnumber'] = $recharge_cardnumber;
}
$add_record['recharge_money'] = $recharge_money;
$add_record['create_time'] = time();
$add_record['status'] = 0;
$is_add_record = Db::name('receivables_record')->insert($add_record);
if($is_add_record){
$record_info = array();
$record_info['msg'] = '充值成功,请联系管理员确认';
$record_info['finish_money'] = Db::name('receivables_record')->where('record_type',1)->where('user_id',$user_id)->where('status',1)->sum('recharge_money');
$record_info['ongoing_money'] = Db::name('receivables_record')->where('record_type',1)->where('user_id',$user_id)->where('status',0)->sum('recharge_money');
$data = encrypt_data($record_info);
return json(array('Success' => 1, 'Data' => $data));
}else{
return json(array('Success' => 0, 'Msg' => '充值失败,请稍后再试'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(['Success' => 0, 'Msg' => '获取信息失败']);
}
}
//游戏记录
public function get_rob_bet(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$user_id = intval($json_arr['user_id']);
$api_token = trim($json_arr['api_token']);
$game_id = intval($json_arr['game_id']);
$number_tab_id = intval($json_arr['number_tab_id']);
$page = intval($json_arr['page']);
$user = Db::name('user')->where(array('id' => $user_id))->find();
if($user && $user['api_token'] == $api_token && $game_id > 0 && $page > 0){
//更新session
// Db::name('session')->where(array('session_id' => $user['api_token']))->update(array('last_time' => time()));
$betWhere = array();
// $betWhere['user_id'] = $user_id;
$betWhere['game_id'] = $game_id;
$betWhere['number_tab_id'] = $number_tab_id;
$betWhere['status'] = 1;
$page_list = 15;
if($page > 1){
$limie_start = ($page - 1) * $page_list;
}else{
$limie_start = 0;
}
if($game_id == 4){
$bet = Db::name('bet')->where($betWhere)->where('user_id','<>',$user_id)->order('id desc')->limit($limie_start,$page_list)->select();
$bet_num = Db::name('bet')->where($betWhere)->where('user_id','<>',$user_id)->order('id desc')->count();
}elseif($game_id == 5){
$bet = Db::name('bet')->where($betWhere)->where('user_id','<>',$user_id)->order('id desc')->limit($limie_start,$page_list)->select();
$bet_num = Db::name('bet')->where($betWhere)->where('user_id','<>',$user_id)->order('id desc')->count();
}else{
return json(['Success'=>0,'msg'=>'游戏类型错误']);
}
$page_num = ceil($bet_num/$page_list);
//组装注单信息
$newBet = array();
$data = array();
$user_bets = array();
$bet_list_amount = 0;
$bet_list_wintotal = 0;
foreach ($bet as $k => $v){
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['game_num'] = $v['game_id'].$v['boot_num'].$v['number'];
if($game_id == 4){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
if($v['win_player_1'] == 1 && $v['win_player_2'] == 1 && $v['win_player_3'] == 1){
$result = '闲1闲2闲3';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result = '庄赢';
}elseif($v['win_player_1'] == 1 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result = '闲1赢';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 1 && $v['win_player_3'] == 0){
$result = '闲2赢';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 1){
$result = '闲3赢';
}elseif($v['win_player_1'] == 1 && $v['win_player_2'] == 1 && $v['win_player_3'] == 0){
$result = '闲1闲2';
}elseif($v['win_player_1'] == 1 && $v['win_player_2'] == 0 && $v['win_player_3'] == 1){
$result = '闲1闲3';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 1 && $v['win_player_3'] == 1){
$result = '闲2闲3';
}else{
$result = '-';
}
$v['card_result'] = $result;
}else{
$v['card_result'] = '-';
}
$data['username'] = $v['username'];
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['user_bet'] = '';
if($v['amount_player_1'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1闲平倍('.$v['amount_player_1'].')';
}
if($v['amount_player_1_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1闲翻倍('.$v['amount_player_1_times'].')';
}
if($v['amount_player_1_banker'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1庄平倍('.$v['amount_player_1_banker'].')';
}
if($v['amount_player_1_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1庄翻倍('.$v['amount_player_1_banker_times'].')';
}
if($v['amount_player_2'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2闲平倍('.$v['amount_player_2'].')';
}
if($v['amount_player_2_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2闲翻倍('.$v['amount_player_2_times'].')';
}
if($v['amount_player_2_banker'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2庄平倍('.$v['amount_player_2_banker'].')';
}
if($v['amount_player_2_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2庄翻倍('.$v['amount_player_2_banker_times'].')';
}
if($v['amount_player_3'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3闲平倍('.$v['amount_player_3'].')';
}
if($v['amount_player_3_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3闲翻倍('.$v['amount_player_3_times'].')';
}
if($v['amount_player_3_banker'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3庄平倍('.$v['amount_player_3_banker'].')';
}
if($v['amount_player_3_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3庄翻倍('.$v['amount_player_3_banker_times'].')';
}
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['amount'] = $v['amount'];
$data['win_total'] = $v['win_total'];
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
if($game_id == 5){
$number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find();
if($number_info['bet_status'] == 3){
if($v['win_player_1'] == 1 && $v['win_player_2'] == 1 && $v['win_player_3'] == 1){
$result = '闲1闲2闲3';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result = '庄赢';
}elseif($v['win_player_1'] == 1 && $v['win_player_2'] == 0 && $v['win_player_3'] == 0){
$result = '闲1赢';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 1 && $v['win_player_3'] == 0){
$result = '闲2赢';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 0 && $v['win_player_3'] == 1){
$result = '闲3赢';
}elseif($v['win_player_1'] == 1 && $v['win_player_2'] == 1 && $v['win_player_3'] == 0){
$result = '闲1闲2';
}elseif($v['win_player_1'] == 1 && $v['win_player_2'] == 0 && $v['win_player_3'] == 1){
$result = '闲1闲3';
}elseif($v['win_player_1'] == 0 && $v['win_player_2'] == 1 && $v['win_player_3'] == 1){
$result = '闲2闲3';
}else{
$result = '-';
}
$v['card_result'] = $result;
}else{
$v['card_result'] = '-';
}
$data['game_num'] = $v['game_num'];
$data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')';
$data['card_result'] = $v['card_result'];
$data['username'] = $v['username'];
$data['user_bet'] = '';
if($v['amount_player_1'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1闲平倍('.$v['amount_player_1'].')';
}
if($v['amount_player_1_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1闲翻倍('.$v['amount_player_1_times'].')';
}
if($v['amount_player_1_banker'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1庄平倍('.$v['amount_player_1_banker'].')';
}
if($v['amount_player_1_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲1庄翻倍('.$v['amount_player_1_banker_times'].')';
}
if($v['amount_player_2'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2闲平倍('.$v['amount_player_2'].')';
}
if($v['amount_player_2_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2闲翻倍('.$v['amount_player_2_times'].')';
}
if($v['amount_player_2_banker'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2庄平倍('.$v['amount_player_2_banker'].')';
}
if($v['amount_player_2_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲2庄翻倍('.$v['amount_player_2_banker_times'].')';
}
if($v['amount_player_3'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3闲平倍('.$v['amount_player_3'].')';
}
if($v['amount_player_3_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3闲翻倍('.$v['amount_player_3_times'].')';
}
if($v['amount_player_3_banker'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3庄平倍('.$v['amount_player_3_banker'].')';
}
if($v['amount_player_3_banker_times'] > 0){
$data['user_bet'] = $data['user_bet'].'闲3庄翻倍('.$v['amount_player_3_banker_times'].')';
}
$data['create_time'] = $v['create_time'];
$data['money_before_bet'] = $v['money_before_bet'];
$data['amount'] = $v['amount'];
$data['win_total'] = $v['win_total'];
$newBet[] = $data;
$bet_list_amount = $bet_list_amount + $v['amount'];
$bet_list_wintotal = $bet_list_wintotal + $v['win_total'];
}
}
// 重新赋值
$user_bets['bet_info'] = $newBet;
$user_bets['bet_num'] = $bet_num;
$user_bets['page_num'] = $page_num;
$user_bets['bet_list_amount'] = $bet_list_amount;
$user_bets['bet_list_wintotal'] = $bet_list_wintotal;
// return json($user_bets);
$bet = encrypt_data($user_bets);
return json(array('Success' => 1, 'Data' => $bet));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
}
//电话呼入
public function online_call(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
$phone = Request::instance()->post('phone');
if($phone){
$table_info = Db::name('table')->where('phone',$phone)->find();
if($table_info){
$data = array();
$data['table_id'] = $table_info['id'];
$data['table_name'] = $table_info['table_name'];
$memo = Db::name('memo')->where('status',1)->order('id DESC')->find();
if($memo){
$data['memo'] = $memo['title'];
}else{
$data['memo'] = '欢迎光临';
}
return json(array('Success' => 1, 'Data' => $data));
}else{
return json(array('Success' => 0, 'Msg' => '该手机号码尚未绑定'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
/**
* 注册会员接口
* @return \think\response\Json
* @throws \think\Exception
* DateTime: 2019/12/12 12:53
*/
public function doRegister(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST');
if($data = Request::instance()->post()){
$data = decrypt_data($data);
$username = isset($data['username'])?$data['username']:'';
$pass = isset($data['pass'])?$data['pass']:'';
$repass = isset($data['repass'])?$data['repass']:'';
$mobile = isset($data['mobile'])?$data['mobile']:'';
$referral_code = isset($data['referral_code'])?$data['referral_code']:'';
$area_id = null !== REGISTER_DEFAULT_AREA_ID? REGISTER_DEFAULT_AREA_ID : (isset($data['area_id'])? $data['area_id'] : '2'); // 默认TW
if(strlen($username) <= 0){
return json(['Success' => 0, 'Msg' => '请输入账号']);
}
if(strlen($pass) < 6){
return json(['Success' => 0, 'Msg' => '密码不能小于6个字符']);
}
if($pass != $repass){
return json(['Success' => 0, 'Msg' => '两次输入密码不一致']);
}
if($mobile && !is_numeric($mobile)){
return json(['Success' => 0, 'Msg' => '请输入有效的手机号']);
}
// if($agent){
// $agentParent = Db::name('user')->where(['id'=>$agent,'agent'=>1,'status'=>1,'is_delete'=>0])->find();
// if(!$agentParent){
// return json(['Success' => 0, 'Msg' => '介绍人错误']);
// }
// }else{
// return json(['Success' => 0, 'Msg' => '介绍人错误']);
// }
if($referral_code){
$agentParent = Db::name('user')->where(['referral_code'=>$referral_code,'agent'=>1,'status'=>1,'is_delete'=>0])->find();
if(!$agentParent){
return json(['Success' => 0, 'Msg' => '介绍人错误']);
}
}else{//不传则用默认代理
$area_list = config('area_list');
if(!$area_id || !in_array($area_id,array_keys($area_list))){
return json(['Success' => 0, 'Msg' => '地区错误']);
}
$defualt_agent = $area_list[$area_id]['default_agent'];
if($defualt_agent <= 0){
return json(['Success' => 0, 'Msg' => '该地区暂不支持注册']);
}
$agentParent = Db::name('user')->where(['id'=>$defualt_agent,'area_id'=>$area_id])->find();
if(!$agentParent){
return json(['Success' => 0, 'Msg' => '该地区默认代理不存在']);
}
}
$user = Db::name('user')->where(array('username' => $username))->find();
if($user){
return json(['Success' => 0, 'Msg' => '账号已经存在']);
}
$insertData = array();
$insertData['username'] = $username;
$insertData['nickname'] = $username;
$insertData['password'] = think_ucenter_md5($pass, UC_AUTH_KEY);
$insertData['encrypt'] = getRandChar();
$insertData['mobile'] = $mobile;
$insertData['status'] = 1;
$insertData['agent'] = 0;
$insertData['letter'] = $agentParent['letter'];
$insertData['type_xima'] = $agentParent['type_xima'];
$insertData['agent_parent_id'] = $agentParent['id'];
$insertData['agent_parent_username'] = $agentParent['username'];
$insertData['agent_parent_nickname'] = $agentParent['nickname'];
$insertData['limit_low'] = $agentParent['limit_low'];
$insertData['limit_high'] = $agentParent['limit_high'];
$insertData['limit_low_tie'] = $agentParent['limit_low_tie'];
$insertData['limit_high_tie'] = $agentParent['limit_high_tie'];
$insertData['limit_low_pair'] = $agentParent['limit_low_pair'];
$insertData['limit_high_pair'] = $agentParent['limit_high_pair'];
$insertData['share_xima'] = $agentParent['share_xima'];
// 洗码率
$ximalvGap = REGISTER_XIMALV_GAP;
$insertData['agent_ximalv'] = ($agentParent['agent_ximalv']-$ximalvGap) > 0 ? ($agentParent['agent_ximalv']-$ximalvGap) : 0;
$insertData['agent_ximalv_dt'] = ($agentParent['agent_ximalv_dt']-$ximalvGap) > 0 ? ($agentParent['agent_ximalv_dt']-$ximalvGap) : 0;
$insertData['agent_ximalv_nn'] = ($agentParent['agent_ximalv_nn']-$ximalvGap) > 0 ? ($agentParent['agent_ximalv_nn']-$ximalvGap) : 0;
$insertData['agent_ximalv_tc'] = ($agentParent['agent_ximalv_tc']-$ximalvGap) > 0 ? ($agentParent['agent_ximalv_tc']-$ximalvGap) : 0;
// 返水率
$rebateGap = REGISTER_REBATE_GAP;
$insertData['rebate_rate'] = ($agentParent['rebate_rate']-$rebateGap) > 0 ? ($agentParent['rebate_rate']-$rebateGap) : 0;
//赔率等于他的上级代理
$insertData['price_banker'] = $agentParent['price_banker'];
$insertData['price_player'] = $agentParent['price_player'];
$insertData['price_tie_baccarat'] = $agentParent['price_tie_baccarat'];
$insertData['price_pair'] = $agentParent['price_pair'];
$insertData['price_dragon'] = $agentParent['price_dragon'];
$insertData['price_tiger'] = $agentParent['price_tiger'];
$insertData['price_tie_dt'] = $agentParent['price_tie_dt'];
$insertData['price_n7_n9'] = $agentParent['price_n7_n9'];
$insertData['price_nn'] = $agentParent['price_nn'];
$insertData['price_5n'] = $agentParent['price_5n'];
$insertData['price_bomb'] = $agentParent['price_bomb'];
$insertData['price_tc_n1'] = $agentParent['price_tc_n1'];
$insertData['price_tc_n2'] = $agentParent['price_tc_n2'];
$insertData['price_tc_n3'] = $agentParent['price_tc_n3'];
$insertData['price_tc_n4'] = $agentParent['price_tc_n4'];
$insertData['price_tc_n5'] = $agentParent['price_tc_n5'];
$insertData['price_tc_n6'] = $agentParent['price_tc_n6'];
$insertData['price_tc_n7'] = $agentParent['price_tc_n7'];
$insertData['price_tc_n8'] = $agentParent['price_tc_n8'];
$insertData['price_tc_n9'] = $agentParent['price_tc_n9'];
$insertData['price_tc_nn'] = $agentParent['price_tc_nn'];
$insertData['price_tc_bz'] = $agentParent['price_tc_bz'];
$insertData['price_tc_ths'] = $agentParent['price_tc_ths'];
$insertData['price_tc_hjths'] = $agentParent['price_tc_hjths'];
$insertData['area_id'] = $agentParent['area_id'];
$insertData['bet_type'] = 3;
$insertData['reg_time'] = time();
if(getIp()){
$ip = getIp()?:'0.0.0.0';
}
$insertData['reg_ip'] = $ip;
$insertData['avatar'] = '/static/index/images/admin.png';
$insertData['update_time'] = time();
$insertId = Db::name('user')->insertGetId($insertData);
if($insertId > 0){
Db::name('user')->where(array('id' => $insertId))->update(array('agent_parent_id_path' => $agentParent['agent_parent_id_path'] . ',' . $insertId));
// 生成U钱包地址
// $Usdt = new Usdt();
// $result = $Usdt->newUserWallet();
// if(isset($result['code']) && $result['code'] == 0){
// $walletData = [
// 'user_id' => $insertId,
// 'address' => $result['wallet']['address'],
// 'parent_id' => $result['wallet']['parent_id'],
// 'status' => $result['wallet']['status'],
// 'tid' => $result['wallet']['tid'],
// 'type' => $result['wallet']['type'],
// 'create_time' => time(),
// 'update_time' => time(),
// ];
// Db::name('user_wallet')->insert($walletData);
// }
return json(['Success' => 1, 'Msg' => '注册成功']);
}else{
return json(['Success' => 0, 'Msg' => '注册失败']);
}
}
}
/**
* Line授权登录注册接口
*/
public function lineAutoLogin() {
$referral_code = Request::instance()->get('referral_code');
if(strlen($referral_code) <= 0){
$referral_code = "NOREFERRAL";
}
$state = $referral_code;
$redirect_uri = urlencode(API_STATIC_DOMAIN . 'pcapi/lineauth');
$lineUrl = "https://access.line.me/oauth2/v2.1/authorize";
$authUrl = $lineUrl . "?response_type=code&client_id=" . LINE_CLIENT_ID . "&redirect_uri=" . $redirect_uri . "&state=" . $state . "&scope=openid%20profile";
$this->redirect($authUrl,302);
}
public function lineAuth() {
$param = Request::instance()->get();
$code = $param['code'];
$referral_code = $param['state'];
$data = array( 'grant_type' => "authorization_code",
'code' => $code,
'redirect_uri' => API_STATIC_DOMAIN . "pcapi/lineauth",
'client_id' => LINE_CLIENT_ID,
'client_secret' => LINE_CLIENT_SECRET
);
$dataStr = http_build_query($data);
$tokenUrl = "https://api.line.me/oauth2/v2.1/token";
$ch = curl_init();
//设置抓取的url
curl_setopt($ch, CURLOPT_URL, $tokenUrl);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POST, 1);
//设置post数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataStr);
//设置头文件的信息作为数据流输出
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded',
'Content-Length: ' . strlen($dataStr))
);
ob_start();
curl_exec($ch);
$return_content = object_to_array(json_decode(ob_get_contents()));
ob_end_clean();
$accessToken = $return_content['access_token'];
$profileUrl = "https://api.line.me/v2/profile";
curl_setopt($ch, CURLOPT_URL, $profileUrl);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken
));
ob_start();
curl_exec($ch);
$return_content = object_to_array(json_decode(ob_get_contents()));
ob_end_clean();
$user = Db::name('user')->where('line_id',$return_content['userId'])->find();
if ($user) {
// 已存在,传参跳到前端自动登录
$token = $user['line_id'];
$encrypt = $user['username'];
$loginUrl = WT_STATIC_DOMAIN . "login?token=" . $token . "&encrypt=" . $user['username'];
$this->redirect($loginUrl,302);
}
$id = $this->selfRegister($return_content, $referral_code);
if ($id == -1) {
//$this->success('没有授权,请登录', '/login/index');
// 各种原因授权注册不成功,跳到前端
$this->redirect(WT_STATIC_DOMAIN,302);
} else {
$user = Db::name('user')->where('id',$id)->find();
//Session::set('user_info',$user);
//Db::name('user')->where('id',$user['id'])->update(['last_login_time' => time(), 'last_login_ip' => getIP()]);
//$this->success('授權成功', '/index/index', 3);
// 自动注册成功,传参跳到前端登录
$token = $user['line_id'];
$encrypt = $user['username'];
$loginUrl = WT_STATIC_DOMAIN . "login?token=" . $token . "&encrypt=" . $user['username'];
$this->redirect($loginUrl,302);
}
}
private function selfRegister($user, $referral_code) {
if($referral_code && $referral_code != 'NOREFERRAL'){
$agentParent = Db::name('user')->where(['referral_code'=>$referral_code,'agent'=>1,'status'=>1,'is_delete'=>0])->find();
if(!$agentParent){
return -1;
}
}else{//不传则用默认代理
$area_id = 2; //固定TW地区
$area_list = config('area_list');
if(!$area_id || !in_array($area_id,array_keys($area_list))){
//return json(['Success' => 0, 'Msg' => '地区错误']);
return -1;
}
$default_agent = $area_list[$area_id]['default_wt_agent'];
if($default_agent <= 0){
//return json(['Success' => 0, 'Msg' => '该地区暂不支持注册']);
return -1;
}
$agentParent = Db::name('user')->where(['id'=>$default_agent,'area_id'=>$area_id])->find();
if(!$agentParent){
//return json(['Success' => 0, 'Msg' => '该地区默认代理不存在']);
return -1;
}
}
$insertData = array();
$insertData['line_id'] = $user['userId'];
$insertData['username'] = 'cl' . substr(think_ucenter_md5($user['userId'], UC_AUTH_KEY), 0, 6);
$insertData['nickname'] = $user['displayName'];
$insertData['password'] = think_ucenter_md5('cl123321', UC_AUTH_KEY);
$insertData['encrypt'] = getRandChar();
$insertData['mobile'] = '';
$insertData['status'] = 1;
$insertData['agent'] = 0;
$insertData['letter'] = $agentParent['letter'];
$insertData['type_xima'] = $agentParent['type_xima'];
$insertData['agent_parent_id'] = $agentParent['id'];
$insertData['agent_parent_username'] = $agentParent['username'];
$insertData['agent_parent_nickname'] = $agentParent['nickname'];
$insertData['limit_low'] = $agentParent['limit_low'];
$insertData['limit_high'] = $agentParent['limit_high'];
$insertData['limit_low_tie'] = $agentParent['limit_low_tie'];
$insertData['limit_high_tie'] = $agentParent['limit_high_tie'];
$insertData['limit_low_pair'] = $agentParent['limit_low_pair'];
$insertData['limit_high_pair'] = $agentParent['limit_high_pair'];
$insertData['share_xima'] = $agentParent['share_xima'];
/*
$insertData['agent_ximalv'] = $agentParent['agent_ximalv'];
$insertData['agent_ximalv_single'] = $agentParent['agent_ximalv_single'];
$insertData['agent_ximalv_dt'] = $agentParent['agent_ximalv_dt'];
$insertData['agent_ximalv_dt_single'] = $agentParent['agent_ximalv_dt_single'];
$insertData['agent_ximalv_nn'] = $agentParent['agent_ximalv_nn'];
$insertData['agent_ximalv_nn_single'] = $agentParent['agent_ximalv_nn_single'];
$insertData['agent_ximalv_tc'] = $agentParent['agent_ximalv_tc'];
$insertData['agent_ximalv_tc_single'] = $agentParent['agent_ximalv_tc_single'];
*/
//赔率等于他的上级代理
$insertData['price_banker'] = $agentParent['price_banker'];
$insertData['price_player'] = $agentParent['price_player'];
$insertData['price_tie_baccarat'] = $agentParent['price_tie_baccarat'];
$insertData['price_pair'] = $agentParent['price_pair'];
$insertData['price_dragon'] = $agentParent['price_dragon'];
$insertData['price_tiger'] = $agentParent['price_tiger'];
$insertData['price_tie_dt'] = $agentParent['price_tie_dt'];
$insertData['price_n7_n9'] = $agentParent['price_n7_n9'];
$insertData['price_nn'] = $agentParent['price_nn'];
$insertData['price_5n'] = $agentParent['price_5n'];
$insertData['price_bomb'] = $agentParent['price_bomb'];
$insertData['price_tc_n1'] = $agentParent['price_tc_n1'];
$insertData['price_tc_n2'] = $agentParent['price_tc_n2'];
$insertData['price_tc_n3'] = $agentParent['price_tc_n3'];
$insertData['price_tc_n4'] = $agentParent['price_tc_n4'];
$insertData['price_tc_n5'] = $agentParent['price_tc_n5'];
$insertData['price_tc_n6'] = $agentParent['price_tc_n6'];
$insertData['price_tc_n7'] = $agentParent['price_tc_n7'];
$insertData['price_tc_n8'] = $agentParent['price_tc_n8'];
$insertData['price_tc_n9'] = $agentParent['price_tc_n9'];
$insertData['price_tc_nn'] = $agentParent['price_tc_nn'];
$insertData['price_tc_bz'] = $agentParent['price_tc_bz'];
$insertData['price_tc_ths'] = $agentParent['price_tc_ths'];
$insertData['price_tc_hjths'] = $agentParent['price_tc_hjths'];
$insertData['area_id'] = $agentParent['area_id'];
$insertData['bet_type'] = 3;
$insertData['reg_time'] = time();
if(getIp()){
$ip = getIp()?:'0.0.0.0';
}
$insertData['reg_ip'] = $ip;
if(array_key_exists('pictureUrl', $user)) {
$insertData['avatar'] = $user['pictureUrl'];;
} else {
$insertData['avatar'] = '/static/index/images/admin.png';
}
$insertData['update_time'] = time();
$insertId = Db::name('user')->insertGetId($insertData);
if($insertId > 0){
Db::name('user')->where(array('id' => $insertId))->update(array('agent_parent_id_path' => $agentParent['agent_parent_id_path'] . ',' . $insertId));
return $insertId;
}else{
return -1;
}
}
//登录
public function lineLogin(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$username = trim($json_arr['encrypt']);
$token = trim($json_arr['token']);
$client = 5; //intval($json_arr['client']);
if(empty($username) || empty($token)){
return json(['Success' => 0, 'Msg' => '非法登录']);
}
$find = Db::name('user')->where(array('username' => $username, 'is_delete' => 0, 'status' => 1, 'agent' => 0, 'line_id' => $token))->find();
if($find){
//判断是否属于line投用户
$zdlIdArr = explode(',',$find['agent_parent_id_path']);
$isAllow = false;
foreach(config('limit_list')['line_referral'] as $allowAgentId){
if(in_array($allowAgentId,$zdlIdArr)){
$isAllow = true;
}
}
if(!$isAllow){
return json(['Success' => 0, 'Msg' => '非法登录']);
}
$user_log = array();
$user_log['user_id'] = $find['id'];
$user_log['username'] = $find['username'];
$user_log['nickname'] = $find['nickname'];
$user_log['ip'] = getIP();
$user_log['ip_location'] = '';
$user_log['client'] = 'Line';
$user_log['create_time'] = time();
$user_log['remark'] = '登录';
Db::name('user_log')->insert($user_log);
$online_token = $this->create_online_token($find);
$find['online_token'] = $online_token;
$update = array();
$update['isout'] = 0;
$update['login_token'] = $online_token;
$update['last_login_time'] = time();
$update['login_count'] = $find['login_count'] + 1;
$update['last_login_ip'] = getIP();
$api_token = create_api_token($find['username'],$find['nickname']);
$update['api_token'] = $api_token;
Db::name('user')->where(array('id' => $find['id']))->limit(1)->update($update);
$find['api_token'] = $api_token;
//获取公告
$memo = Db::name('memo')->where(array('type' => 1, 'table_id' => 0, 'status' => 1, 'position' => 3))->order('create_time DESC')->select();
$find['memo'] = $memo;
//存入session
Db::name('session')->where(array('last_time' => array('<', time() - Config::get('session_life_time'))))->delete();
$DBSession = Db::name('session')->where(array('session_id' => $api_token))->find();
if($DBSession){
Db::name('session')->where(array('session_id' => $api_token))->update(array('last_time' => time(), 'user_id' => $find['id'],'client'=>$client));
}else{
Db::name('session')->where(array('user_id' => $find['id']))->delete();
Db::name('session')->insert(array('session_id' =>$api_token, 'last_time' => time(), 'user_id' => $find['id'],'client'=>$client));
}
unset($find['password']);
unset($find['encrypt']);
$data = encrypt_data($find);
return json(['Success' => 1, 'Msg' => '登录成功', 'Data' => $data]);
}else{
return json(['Success' => 0, 'Msg' => '非法登录']);
}
}else{
return json(['Success' => 0, 'Msg' => '非法登录']);
}
}
}
public function app_entrance(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$entrance = array();
$entrance['HallUrl'] = HallUrl;
$entrance['IframeUrl'] = IframeUrl;
$entrance['PayUrl'] = PayUrl;
$entrance['isOpen'] = ENTRANCE_ISOPEN;
$entrance['username'] = ENTRANCE_USERNAME;
$entrance['password'] = ENTRANCE_PASSWORD;
$entrance['code'] = DISGUISE_CODE;
$entrance['openSw'] = openSw;
return json(['Success' => 1, 'Data' => $entrance]);
}
}
//api用户通过接口获取铺信息
public function api_get_info(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$appId = intval(Request::instance()->post("appId"));
$nonceStr = trim(Request::instance()->post("nonceStr"));
$sign= trim(Request::instance()->post("sign"));
if (is_null($appId) || strlen($appId) == 0 || is_null($nonceStr) || strlen($nonceStr) != 16 || is_null($sign) || strlen($sign) == 0) {
return json(['Success' => 0, 'Msg' => 'Reject! Invalid Sign!']);
}
$api_info = Db::name('api_account')->where(array('appid' => $appId, 'status' => 1))->find();
if (!$api_info) {
return json(['Success' => 0, 'Msg' => 'Reject! Invalid Sign!']);
}
$_sign = md5($appId . $nonceStr . $api_info['appsecret']);
if ($sign != $sign) {
return json(['Success' => 0, 'Msg' => 'Reject! Invalid Sign!']);
}
$number_tab_id = intval(Request::instance()->post("ntd"));
$number_tab_info = Db::name('number_tab')->field(array(
'id','game_name','table_id','table_name','boot_id','boot_num','number','result','pair','result_before_edit','pair_before_edit','start_time','end_time','bet_status',
'bet_start_time','bet_end_time','is_add'
))->where(array('id' => $number_tab_id, 'game_id' => 1))->find();
if (!$number_tab_info) {
return json(['Success' => 0, 'Msg' => 'Invalid Request!']);
}
$cardInfo = Db::name('card')->where(array('number_tab_id' => $number_tab_id))->find();
if (!$cardInfo) {
return json(['Success' => 0, 'Msg' => 'Invalid Request!']);
}
$banker1 = interchange_card($cardInfo['banker_1']) >= 10 ? 0 : interchange_card($cardInfo['banker_1']);
$banker2 = interchange_card($cardInfo['banker_2']) >= 10 ? 0 : interchange_card($cardInfo['banker_2']);
$banker3 = $cardInfo['banker_3']? (interchange_card($cardInfo['banker_3']) >= 10 ? 0 : interchange_card($cardInfo['banker_3'])) : 0;
$player1 = interchange_card($cardInfo['player_1']) >= 10 ? 0 : interchange_card($cardInfo['player_1']);
$player2 = interchange_card($cardInfo['player_2']) >= 10 ? 0 : interchange_card($cardInfo['player_2']);
$player3 = $cardInfo['player_3']? (interchange_card($cardInfo['player_3']) >= 10 ? 0 : interchange_card($cardInfo['player_3'])) : 0;
$number_tab_info['banker'] = ($banker1 + $banker2 + $banker3) % 10;
$number_tab_info['player'] = ($player1 + $player2 + $player3) % 10;
return json(['Success' => 1, 'Msg' => 'query success', 'data' => $number_tab_info]);
}
}
// 用户充值记录
public function user_recharge()
{
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()) {
$json_arr = decrypt_data(Request::instance()->post());
if ($json_arr) {
$userId = intval($json_arr['user_id']);
$page = intval($json_arr['page'] ?? 1);
$pageSize = intval($json_arr['page_size'] ?? 10);
$count = Db::name('user_recharge')->where('user_id',$userId)->count();
$list = Db::name('user_recharge')
->where('user_id',$userId)
->order('create_time desc,id desc')
->page($page,$pageSize)
->select();
foreach($list as &$v){
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['update_time'] = date('Y-m-d H:i:s',$v['update_time']);
}
$data = [
'count' => $count,
'list' => $list,
];
return json(['Success' => 1, 'Msg' => 'query success', 'data' => $data]);
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
// 用户提现记录
public function user_withdraw()
{
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()) {
$json_arr = decrypt_data(Request::instance()->post());
if ($json_arr) {
$userId = intval($json_arr['user_id']);
$page = intval($json_arr['page'] ?? 1);
$pageSize = intval($json_arr['page_size'] ?? 10);
$count = Db::name('user_withdraw')->where('user_id',$userId)->count();
$list = Db::name('user_withdraw')
->where('user_id',$userId)
->order('create_time desc,id desc')
->page($page,$pageSize)
->select();
foreach($list as &$v){
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
$v['audit_time'] = date('Y-m-d H:i:s',$v['audit_time']);
$v['update_time'] = date('Y-m-d H:i:s',$v['update_time']);
}
$data = [
'count' => $count,
'list' => $list,
];
return json(['Success' => 1, 'Msg' => 'query success', 'data' => $data]);
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
//申请提现
public function apply_withdraw(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr){
$userId = intval($json_arr['user_id']);
$amount = floatval($json_arr['amount']);
$address = trim($json_arr['to_addr']);
if(!$amount || $amount <= 0){
return json(array('Success' => 0, 'Msg' => '提款金额有误'));
}
if(empty($address)){
return json(array('Success' => 0, 'Msg' => '钱包地址必填'));
}
$user = Db::name('user')->where(array('id' => $userId))->find();
if($user){
Db::startTrans();
$user = Db::name('user')->where(array('id' => $userId))->lock(true)->find();
$system = Db::name('system')->find();
$money = $user['money'];
$withdrawMoney = empty($system['withdraw_money']) ? 100 : $system['withdraw_money'];
$withdrawFee = empty($system['withdraw_fee']) ? 1 : $system['withdraw_fee'];
// 计算积分兑换
$amountMoney = $withdrawMoney/100*($amount);
$feeMoney = $withdrawMoney/100*($withdrawFee);
$needMoney = $amountMoney + $feeMoney;
if($needMoney > $money){
return json(array('Success' => 0, 'Msg' => '余额不足,无法申请提现'));
}
$afterMoney = $money - $needMoney;
// 写入提现申请
$res = Db::name('user_withdraw')->insert([
'order_no' => createOrderNo('TX'),
'user_id' => $userId,
'amount' => $amount,
'money' => $amountMoney,
'old_money' => $money,
'new_money' => $afterMoney,
'service_fee' => $withdrawFee,
'service_fee_money' => $feeMoney,
'withdraw_rate' => $withdrawFee,
'to_address' => $address,
'create_time' => time()
]);
if(!$res){
return json(array('Success' => 0, 'Msg' => '操作失败'));
}
// 扣除用户余额
$res = Db::name('user')->where('id',$userId)->update([
'money' => $afterMoney,
'update_time' => time()
]);
if(!$res){
return json(array('Success' => 0, 'Msg' => '操作失败'));
}
Db::commit();
return json(array('Success' => 1, 'Msg' => '操作成功'));
}else{
return json(array('Success' => 0, 'Msg' => '获取信息失败'));
}
}
}
}
// 取消提现
public function cancel_withdraw(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr) {
$userId = intval($json_arr['user_id']);
$orderNo = trim($json_arr['order_no']);
if(empty($orderNo)){
return json(array('Success' => 0, 'Msg' => '参数错误'));
}
$withdraw = Db::name('user_withdraw')->where('order_no',$orderNo)->find();
if(empty($withdraw) || $withdraw['status'] != "WAIT"){
return json(array('Success' => 0, 'Msg' => '无待审核提现记录'));
}
if($userId != $withdraw['user_id']){
return json(array('Success' => 0, 'Msg' => '无权限操作'));
}
Db::startTrans();
$user = Db::name('user')->where(array('id' => $userId))->lock(true)->find();
$money = $user['money'];
$afterMoney = $money + $withdraw['money']+$withdraw['service_fee_money'];
// 更改提现状态
$res = Db::name('user_withdraw')->where(['status' => "WAIT",'order_no' => $orderNo])->update([
'status' => 'CANCEL',
'update_time' => time()
]);
if(!$res){
return json(array('Success' => 0, 'Msg' => '操作失败'));
}
// 返还用户余额
$res = Db::name('user')->where('id',$userId)->update([
'money' => $afterMoney,
'update_time' => time()
]);
if(!$res){
return json(array('Success' => 0, 'Msg' => '操作失败'));
}
Db::commit();
return json(array('Success' => 1, 'Msg' => '操作成功'));
}
}
}
/**
* 充值
* @return \think\response\Json
*/
public function deposit()
{
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr) {
$userId = intval($json_arr['user_id']);
$amount = trim($json_arr['amount']);
$payChannel = trim($json_arr['pay_channel']);
$currency = empty($json_arr['currency']) ? 0 : $json_arr['currency'];
$coinType = empty($json_arr['coin_type']) ? 0 : $json_arr['coin_type'];
if(empty($amount) || $amount <= 0){
return json(array('Success' => 0, 'Msg' => '充值金额必须大于0'));
}
$userInfo = Db::name('user')->where('id',$userId)->find();
if(empty($userInfo)){
return json(array('Success' => 0, 'Msg' => '用户信息错误'));
}
// 支付渠道
$agentParentIds = explode(',',$userInfo['agent_parent_id_path']);
$payChannelList = Db::name('user')->where('id', $agentParentIds[0])->value('pay_channel');
$payChannelList = empty($payChannelList) ? [] : explode(',',$payChannelList);
if(empty($payChannelList)){
return json(array('Success' => 0, 'Msg' => '支付渠道错误'));
}
if(empty($payChannel)){
$payChannel = $payChannel[0];
}else if(!in_array($payChannel,$payChannelList)){
return json(array('Success' => 0, 'Msg' => '支付渠道错误'));
}
$orderNo = createOrderNo($payChannel);
$res = Db::name('user_recharge')->insert([
'order_no' => $orderNo,
'user_id' => $userId,
'apply_amount' => $amount,
'status' => 'WAIT',
'pay_channel' => $payChannel,
'create_time' => time(),
]);
if(!$res){
return json(array('Success' => 0, 'Msg' => '充值失败'));
}
// 充值记录
$ybf = new Ybf();
$result = $ybf->recharge($orderNo,$amount,$currency,$coinType);
if($result['code'] == 200){
return json(array('Success' => 1, 'Msg' => '操作成功', 'data' => $result['data']));
}else{
return json(array('Success' => 0, 'Msg' => '操作失败'));
}
}
}
}
/**
* 获取桌子空余座位
* @return \think\response\Json
*/
public function get_free_seat(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE');
if(Request::instance()->isPost()){
$json_arr = decrypt_data(Request::instance()->post());
if($json_arr) {
$api_token = trim($json_arr['api_token']);
$table_id = intval($json_arr['table_id']);
$number_tab_id = intval($json_arr['number_tab_id']);
$user_id = Db::name('session')->where(array('session_id' =>$api_token))->value('user_id');
$find = Db::name('user')->where(array('id' => $user_id, 'is_delete' => 0, 'status' => 1, 'agent' => 0,'bet_type' => 2))->find();
if($find){
$tableInfo = Db::name('table')->where(['id' => $table_id,'bet_type' => 2])->find();
if(!$tableInfo){
return json(array('Success' => 0, 'Msg' => '获取失败'));
}
$seat_num = $tableInfo['seat_num'];
$numberTabInfo = Db::name('number_tab')->where('id',$number_tab_id)->find();
$seat_arr = json_decode($numberTabInfo['seat_json'],true);
if(isset($seat_arr[$find['manager_id']])){
$data = $seat_arr[$find['manager_id']];
}else{
$seat_num = $seat_num >=4 ? $seat_num + 1 : $seat_num;
for ($i = 1;$i <= $seat_num;$i++){
if($i != 4){
$data[$i] = 0;
}
}
}
$data = encrypt_data($data);
return json(array('Success' => 1, 'Msg' => '操作成功', 'data' => $data));
}
}
}
return json(array('Success' => 0, 'Msg' => '获取失败'));
}
/**
* 游戏大厅聚合接口
* 返回在线人数、游戏分类、桌台列表(含路单)
* 无需鉴权,游客可访问
*/
public function get_lobby_data(){
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE,OPTIONS');
header('Access-Control-Max-Age: 86400');
// 处理 OPTIONS 预检请求
if(Request::instance()->isOptions()){
return response('', 200);
}
if(!Request::instance()->isPost()){
return json(['code' => 400, 'msg' => '请求方式错误']);
}
// 1. 统计在线人数基于session表排除过期会话
$sessionLifeTime = Config::get('session_life_time') ?: 1800;
$expiredTime = time() - $sessionLifeTime;
Db::name('session')->where('last_time', '<', $expiredTime)->delete();
$online_users = Db::name('session')->count();
// 2. 获取所有启用的桌台
$tableWhere = [
'status' => 1,
'table_type' => 0
];
$tables = Db::name('table')->where($tableWhere)->order('sort DESC')->select();
// 3. 游戏分类定义
$categoryMap = [
1 => ['id' => 'baccarat', 'name' => '百家乐'],
2 => ['id' => 'dragon', 'name' => '龙虎'],
4 => ['id' => 'niuniu', 'name' => '牛牛'],
5 => ['id' => 'threecard', 'name' => '三卡牛牛'],
6 => ['id' => 'toning', 'name' => '色碟'],
7 => ['id' => 'dice', 'name' => '骰宝'],
8 => ['id' => 'roulette', 'name' => '轮盘']
];
// 4. 统计各分类桌台数量
$categoryCounts = [];
foreach($tables as $table){
$gameId = $table['game_id'];
if(!isset($categoryCounts[$gameId])){
$categoryCounts[$gameId] = 0;
}
$categoryCounts[$gameId]++;
}
// 构建分类数组
$categories = [];
foreach($categoryMap as $gameId => $info){
$count = isset($categoryCounts[$gameId]) ? $categoryCounts[$gameId] : 0;
if($count > 0){
$categories[] = [
'id' => $info['id'],
'name' => $info['name'],
'count' => $count
];
}
}
// 5. 构建桌台列表详情
$tableList = [];
foreach($tables as $table){
$gameId = $table['game_id'];
// 确定分类类型
$type = isset($categoryMap[$gameId]) ? $categoryMap[$gameId]['id'] : 'other';
// 获取当前靴和铺信息
$boot = Db::name('boot')->where('table_id', $table['id'])->order('id DESC')->find();
// 确定桌台状态和倒计时
$status = 'waiting';
$countdown = 0;
$roadmap = [];
if($boot){
// 获取当前铺
$numberTab = Db::name('number_tab')->where([
'table_id' => $table['id'],
'boot_id' => $boot['id']
])->order('id DESC')->find();
if($numberTab){
// 根据 bet_status 确定状态
switch($numberTab['bet_status']){
case 0:
$status = 'waiting';
break;
case 1:
$status = 'betting';
// 计算倒计时(如果有)
if(isset($numberTab['countdown']) && $numberTab['countdown'] > 0){
$countdown = $numberTab['countdown'];
}
break;
case 2:
$status = 'dealing';
break;
case 3:
$status = 'settled';
break;
default:
$status = 'waiting';
}
}
// 获取路单数据最近72局结果
$roadmap = $this->getSimpleRoadmap($table['id'], $boot['id'], $gameId);
}
$tableList[] = [
'id' => intval($table['id']),
'type' => $type,
'name' => $table['table_name'],
'min_limit' => intval($table['min_bankerplayer']),
'max_limit' => intval($table['max_bankerplayer']),
'status' => $status,
'countdown' => $countdown,
'roadmap' => $roadmap
];
}
return json([
'code' => 200,
'msg' => 'success',
'data' => [
'online_users' => $online_users,
'categories' => $categories,
'tables' => $tableList
]
]);
}
/**
* 获取简化的路单数据
* @param int $tableId 桌台ID
* @param int $bootId 靴ID
* @param int $gameId 游戏ID
* @return array 路单结果数组 ["B", "P", "T", ...]
*/
private function getSimpleRoadmap($tableId, $bootId, $gameId){
$roadmap = [];
$limit = 72; // 最近72局
if($gameId == 1 || $gameId == 2){
// 百家乐、龙虎:从 number_tab 获取结果
$results = Db::name('number_tab')
->where([
'table_id' => $tableId,
'boot_id' => $bootId,
'bet_status' => 3
])
->field('result')
->order('start_time ASC, id ASC')
->limit($limit)
->select();
foreach($results as $row){
switch($row['result']){
case 1:
$roadmap[] = 'B'; // Banker/庄/龙
break;
case 2:
$roadmap[] = 'P'; // Player/闲/虎
break;
case 3:
$roadmap[] = 'T'; // Tie/和
break;
}
}
} elseif($gameId == 4){
// 牛牛:返回庄家赢/输结果
$results = Db::name('number_tab')
->where([
'table_id' => $tableId,
'boot_id' => $bootId,
'bet_status' => 3
])
->field('win_player_1, win_player_2, win_player_3')
->order('start_time ASC, id ASC')
->limit($limit)
->select();
foreach($results as $row){
// 统计庄家赢了多少个闲家0=庄赢, 1=闲赢)
$playerWins = $row['win_player_1'] + $row['win_player_2'] + $row['win_player_3'];
if($playerWins == 0){
$roadmap[] = 'B'; // 庄全赢
} elseif($playerWins == 3){
$roadmap[] = 'P'; // 闲全赢
} else {
$roadmap[] = 'T'; // 部分赢
}
}
} elseif($gameId == 5){
// 三卡牛牛:类似牛牛
$results = Db::name('number_tab')
->where([
'table_id' => $tableId,
'boot_id' => $bootId,
'bet_status' => 3
])
->field('win_player_1, win_player_2, win_player_3')
->order('start_time ASC, id ASC')
->limit($limit)
->select();
foreach($results as $row){
$playerWins = $row['win_player_1'] + $row['win_player_2'] + $row['win_player_3'];
if($playerWins == 0){
$roadmap[] = 'B';
} elseif($playerWins == 3){
$roadmap[] = 'P';
} else {
$roadmap[] = 'T';
}
}
} elseif($gameId == 6){
// 色碟:大小单双
$results = Db::name('number_tab')
->where([
'table_id' => $tableId,
'boot_id' => $bootId,
'bet_status' => 3
])
->field('toning_result')
->order('start_time ASC, id ASC')
->limit($limit)
->select();
foreach($results as $row){
// toning_result: 红碟数量 0-4
$red = intval($row['toning_result']);
if($red >= 3){
$roadmap[] = 'B'; // 大
} else {
$roadmap[] = 'S'; // 小
}
}
} elseif($gameId == 7){
// 骰宝:大小
$results = Db::name('number_tab')
->where([
'table_id' => $tableId,
'boot_id' => $bootId,
'bet_status' => 3
])
->field('dice_result')
->order('start_time ASC, id ASC')
->limit($limit)
->select();
foreach($results as $row){
// dice_result: 三个骰子点数
$diceArr = explode(',', $row['dice_result']);
$total = 0;
foreach($diceArr as $d){
$total += intval($d);
}
if($total >= 11){
$roadmap[] = 'B'; // 大
} else {
$roadmap[] = 'S'; // 小
}
}
} elseif($gameId == 8){
// 轮盘:结果数字
$results = Db::name('number_tab')
->where([
'table_id' => $tableId,
'boot_id' => $bootId,
'bet_status' => 3
])
->field('roulette_result')
->order('start_time ASC, id ASC')
->limit($limit)
->select();
foreach($results as $row){
$num = intval($row['roulette_result']);
$roadmap[] = strval($num);
}
}
return $roadmap;
}
}