Compare commits
23
Commits
d77c6beac7
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
911ef2ce2c | ||
|
|
2cd31285f0 | ||
|
|
73a8847ceb | ||
|
|
e44d645547 | ||
|
|
c3621121ca | ||
|
|
477ca7f6c9 | ||
|
|
8edc071997 | ||
|
|
aa74a6edc1 | ||
|
|
f3fb7628ab | ||
|
|
cd149d5478 | ||
|
|
3533758405 | ||
|
|
444235b393 | ||
|
|
3bac9960b8 | ||
|
|
a180fe8385 | ||
|
|
7fe15a0d50 | ||
|
|
cbe48e938a | ||
|
|
8ac5d159ad | ||
|
|
b733eab816 | ||
|
|
df6aa119a0 | ||
|
|
966b3133bf | ||
|
|
817e262140 | ||
|
|
3766975897 | ||
|
|
b518578266 |
Executable
+1
@@ -0,0 +1 @@
|
|||||||
|
APP_DEBUG=true␍␍[APP]␍DEFAULT_TIMEZONE=Asia/Shanghai␍␍[DATABASE]␍TYPE=mysql␍HOSTNAME=127.0.0.1␍DATABASE=tnt_game␍USERNAME=root␍PASSWORD=shuijizai720␍HOSTPORT=3306␍CHARSET=utf8␍DEBUG=true␍␍[LANG]␍default_lang=zh-cn␍␍[SYSTEM]␍WEBSOCKET=ws.poker4u.club␍PROTOCOL=https␍LOGO_PATH=/static/logo/fop_180_180.png␍PLAYER=https://i.55player.com/zb.html␍dt_half = 1␍SB_SERVER=http://192.168.6.32:8080␍␍[SWOOLE]␍HOST=127.0.0.1␍PORT=8082␍DAEMONIZE=false␍␍[DOMAIN]␍CONSOLE=cz.poker4u.club␍BET=bet.poker4u.club
|
||||||
@@ -2,3 +2,4 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
runtime/
|
runtime/
|
||||||
vendor/
|
vendor/
|
||||||
|
.magi/
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
//应用公共文件
|
//应用公共文件
|
||||||
|
|
||||||
// 版本号
|
// 版本号
|
||||||
define('VERSION_V','?ver=v10.1.0');
|
define('VERSION_V','?ver=v10.1.1');
|
||||||
|
|
||||||
// 强制加载中文语言包
|
// 强制加载中文语言包
|
||||||
\think\facade\Lang::load(__DIR__ . '/lang/zh-cn.php');
|
\think\facade\Lang::load(__DIR__ . '/lang/zh-cn.php');
|
||||||
|
|||||||
@@ -65,6 +65,24 @@ class Index extends Common{
|
|||||||
//View::assign('localSbServer',Env::get('system.SB_SERVER'));
|
//View::assign('localSbServer',Env::get('system.SB_SERVER'));
|
||||||
View::assign('localSbServer', $tableInfo['media_near_rtmp']); // 无用的字段来作为本地识别设备IP
|
View::assign('localSbServer', $tableInfo['media_near_rtmp']); // 无用的字段来作为本地识别设备IP
|
||||||
}
|
}
|
||||||
|
public function log_report(): Json
|
||||||
|
{
|
||||||
|
if (!Request::instance()->isPost()) return json(['status' => 0]);
|
||||||
|
$data = Request::instance()->post();
|
||||||
|
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
|
||||||
|
'source' => $data['source'] ?? 'unknown',
|
||||||
|
'type' => $data['type'] ?? 'error',
|
||||||
|
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
|
||||||
|
'file' => $data['file'] ?? '',
|
||||||
|
'url' => $data['url'] ?? '',
|
||||||
|
'line' => $data['line'] ?? '',
|
||||||
|
'col' => $data['col'] ?? '',
|
||||||
|
'ua' => Request::instance()->header('user-agent', ''),
|
||||||
|
'ip' => Request::instance()->ip(),
|
||||||
|
]);
|
||||||
|
return json(['status' => 1]);
|
||||||
|
}
|
||||||
|
|
||||||
function get_lang(): Json
|
function get_lang(): Json
|
||||||
{
|
{
|
||||||
if (!Request::instance()->isPost()) return json();
|
if (!Request::instance()->isPost()) return json();
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\handle\controller;
|
||||||
|
|
||||||
|
use think\facade\Request;
|
||||||
|
use think\response\Json;
|
||||||
|
|
||||||
|
class Log
|
||||||
|
{
|
||||||
|
public function report(): Json
|
||||||
|
{
|
||||||
|
if (!Request::instance()->isPost()) return json(['status' => 0]);
|
||||||
|
$data = Request::instance()->post();
|
||||||
|
if (empty($data)) {
|
||||||
|
$raw = Request::instance()->getContent();
|
||||||
|
$data = json_decode($raw, true) ?: [];
|
||||||
|
}
|
||||||
|
if (empty($data)) {
|
||||||
|
$raw2 = file_get_contents('php://input');
|
||||||
|
$data = json_decode($raw2, true) ?: [];
|
||||||
|
}
|
||||||
|
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
|
||||||
|
'source' => $data['source'] ?? 'unknown',
|
||||||
|
'type' => $data['type'] ?? 'error',
|
||||||
|
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
|
||||||
|
'file' => $data['file'] ?? '',
|
||||||
|
'url' => $data['url'] ?? '',
|
||||||
|
'line' => $data['line'] ?? '',
|
||||||
|
'col' => $data['col'] ?? '',
|
||||||
|
'ua' => Request::instance()->header('user-agent', ''),
|
||||||
|
'ip' => Request::instance()->ip(),
|
||||||
|
]);
|
||||||
|
return json(['status' => 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\index\controller;
|
||||||
|
|
||||||
|
use think\facade\Request;
|
||||||
|
use think\response\Json;
|
||||||
|
|
||||||
|
class Log
|
||||||
|
{
|
||||||
|
public function report(): Json
|
||||||
|
{
|
||||||
|
if (!Request::instance()->isPost()) return json(['status' => 0]);
|
||||||
|
$data = Request::instance()->post();
|
||||||
|
if (empty($data)) {
|
||||||
|
$raw = Request::instance()->getContent();
|
||||||
|
$data = json_decode($raw, true) ?: [];
|
||||||
|
}
|
||||||
|
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
|
||||||
|
'source' => $data['source'] ?? 'unknown',
|
||||||
|
'type' => $data['type'] ?? 'error',
|
||||||
|
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
|
||||||
|
'file' => $data['file'] ?? '',
|
||||||
|
'url' => $data['url'] ?? '',
|
||||||
|
'line' => $data['line'] ?? '',
|
||||||
|
'col' => $data['col'] ?? '',
|
||||||
|
'ua' => Request::instance()->header('user-agent', ''),
|
||||||
|
'ip' => Request::instance()->ip(),
|
||||||
|
]);
|
||||||
|
return json(['status' => 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -492,7 +492,7 @@ return [
|
|||||||
'exceeds_limit_table' => '下注超出桌子限紅',
|
'exceeds_limit_table' => '下注超出桌子限紅',
|
||||||
'exceeds_limit_user' => '下注超出个人限紅',
|
'exceeds_limit_user' => '下注超出个人限紅',
|
||||||
'under_limit_user' => '下注低于个人限紅',
|
'under_limit_user' => '下注低于个人限紅',
|
||||||
'end_bet_error' => '停止成功',
|
'end_bet_error' => '已停止下注',
|
||||||
'end_bet_error_1' => '当前局状态不在下注状态,不能停止',
|
'end_bet_error_1' => '当前局状态不在下注状态,不能停止',
|
||||||
'end_bet_error_2' => '停止下注失败',
|
'end_bet_error_2' => '停止下注失败',
|
||||||
'repeated_entry' => '你的账号在其他地方登陆了,即将退出',
|
'repeated_entry' => '你的账号在其他地方登陆了,即将退出',
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare (strict_types = 1);
|
|||||||
namespace app\listener\space;
|
namespace app\listener\space;
|
||||||
|
|
||||||
use app\models\process\Sumday;
|
use app\models\process\Sumday;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
use think\swoole\Websocket;
|
use think\swoole\Websocket;
|
||||||
|
|
||||||
@@ -22,11 +23,14 @@ class ResetBoot
|
|||||||
$modelRes = Sumday::resetBoot($tableInfo);
|
$modelRes = Sumday::resetBoot($tableInfo);
|
||||||
if ($modelRes['status'] == true){
|
if ($modelRes['status'] == true){
|
||||||
$ws->to(SocketSession::HOUSE_NAME)->emit('resetBoot',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $modelRes['data']]);
|
$ws->to(SocketSession::HOUSE_NAME)->emit('resetBoot',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $modelRes['data']]);
|
||||||
|
Logger::info(Logger::CAT_GAME, 'reset_boot_success', ['table_id' => $tableInfo['id']]);
|
||||||
}else{
|
}else{
|
||||||
$ws->emit('resetBoot', ['status' => false, 'msg' => $modelRes['msg']]);
|
$ws->emit('resetBoot', ['status' => false, 'msg' => $modelRes['msg']]);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_boot_fail', ['table_id' => $tableInfo['id'], 'reason' => $modelRes['msg']]);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$ws->emit('resetBoot', ['status' => false, 'msg' => $preliminaryCheckRes['msg']]);
|
$ws->emit('resetBoot', ['status' => false, 'msg' => $preliminaryCheckRes['msg']]);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_boot_fail', ['reason' => $preliminaryCheckRes['msg']]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ class NumberTab extends BaseModel
|
|||||||
{
|
{
|
||||||
$numberTabInfo = self::get(['id' => $numberTabId]);
|
$numberTabInfo = self::get(['id' => $numberTabId]);
|
||||||
if (!$numberTabInfo) return ['status' => false, 'msg' => 'end_bet_fail'];
|
if (!$numberTabInfo) return ['status' => false, 'msg' => 'end_bet_fail'];
|
||||||
if ($numberTabInfo['bet_status'] != 1) return ['status' => false, 'msg' => 'end_bet_error'];
|
if ($numberTabInfo['bet_status'] != 1) return ['status' => false, 'msg' => 'end_bet_error', 'bet_status' => $numberTabInfo['bet_status']];
|
||||||
self::where(['id' => $numberTabInfo['id']])->update(['bet_status' => 2, 'bet_end_time' => time()]);
|
self::where(['id' => $numberTabInfo['id']])->update(['bet_status' => 2, 'bet_end_time' => time()]);
|
||||||
$numberTabInfo['bet_status'] = 2;
|
$numberTabInfo['bet_status'] = 2;
|
||||||
$numberTabInfo['bet_start_time'] = time();
|
$numberTabInfo['bet_start_time'] = time();
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
namespace app\services\bet;
|
namespace app\services\bet;
|
||||||
|
|
||||||
use app\models\bet\Bet;
|
use app\models\bet\Bet;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -156,8 +157,10 @@ class ToBetBaccaratService
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
||||||
|
Logger::info(Logger::CAT_BET, 'baccarat_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
}else{
|
}else{
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
||||||
|
Logger::warn(Logger::CAT_BET, 'baccarat_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
}
|
}
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ use app\models\process\NumberTab;
|
|||||||
use app\models\user\User;
|
use app\models\user\User;
|
||||||
use app\models\user\Session;
|
use app\models\user\Session;
|
||||||
use app\services\connect\InitTableService;
|
use app\services\connect\InitTableService;
|
||||||
|
use app\utils\Logger;
|
||||||
|
|
||||||
class ToBetCommonService
|
class ToBetCommonService
|
||||||
{
|
{
|
||||||
@@ -24,48 +25,61 @@ class ToBetCommonService
|
|||||||
/** 通用检验重复部分开始 */
|
/** 通用检验重复部分开始 */
|
||||||
$amount = array_sum($data);
|
$amount = array_sum($data);
|
||||||
if ($amount == 0){
|
if ($amount == 0){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['reason' => 'to_bet_fail_6', 'detail' => 'zero_amount']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_6'];
|
return ['status' => false, 'msg' => 'to_bet_fail_6'];
|
||||||
}
|
}
|
||||||
$numberTabId = isset($event['number_tab_id']) && intval($event['number_tab_id']) > 0 ? intval($event['number_tab_id']) : 0;
|
$numberTabId = isset($event['number_tab_id']) && intval($event['number_tab_id']) > 0 ? intval($event['number_tab_id']) : 0;
|
||||||
$userId = isset($event['user_id']) && intval($event['user_id']) > 0 ? intval($event['user_id']) : 0;
|
$userId = isset($event['user_id']) && intval($event['user_id']) > 0 ? intval($event['user_id']) : 0;
|
||||||
$userInfo = User::get(['id' => $userId, 'status' => 1, 'is_delete' => 0]);
|
$userInfo = User::get(['id' => $userId, 'status' => 1, 'is_delete' => 0]);
|
||||||
if (!$userInfo) return ['status' => false, 'msg' => 'to_bet_fail_2'];
|
if (!$userInfo) {
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_2', 'detail' => 'user_not_found']);
|
||||||
|
return ['status' => false, 'msg' => 'to_bet_fail_2'];
|
||||||
|
}
|
||||||
if($userInfo['bet_type'] == 2){
|
if($userInfo['bet_type'] == 2){
|
||||||
$session_id = $userInfo['api_token'];
|
$session_id = $userInfo['api_token'];
|
||||||
$sessionInfo = Session::get(['session_id' => $session_id]);
|
$sessionInfo = Session::get(['session_id' => $session_id]);
|
||||||
if(!$sessionInfo){
|
if(!$sessionInfo){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_9', 'detail' => 'session_not_found']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_9'];
|
return ['status' => false, 'msg' => 'to_bet_fail_9'];
|
||||||
}
|
}
|
||||||
if(!$sessionInfo['server_status']){
|
if(!$sessionInfo['server_status']){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_10', 'detail' => 'server_status_off']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_10'];
|
return ['status' => false, 'msg' => 'to_bet_fail_10'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 使用 InitTableService::initTable 获取当前靴的最新一局,与其他服务保持一致
|
// 使用 InitTableService::initTable 获取当前靴的最新一局,与其他服务保持一致
|
||||||
$numberTabInfo = InitTableService::initTable($tableInfo);
|
$numberTabInfo = InitTableService::initTable($tableInfo);
|
||||||
if ($numberTabInfo['id'] != $numberTabId){
|
if ($numberTabInfo['id'] != $numberTabId){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_5', 'detail' => 'number_tab_mismatch']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_5'];
|
return ['status' => false, 'msg' => 'to_bet_fail_5'];
|
||||||
}
|
}
|
||||||
if ($numberTabInfo['bet_status'] != 1 || time() > ($numberTabInfo['bet_start_time'] + $tableInfo['wait_time'])){
|
if ($numberTabInfo['bet_status'] != 1 || time() > ($numberTabInfo['bet_start_time'] + $tableInfo['wait_time'])){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_4', 'detail' => 'bet_closed_or_timeout']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_4'];
|
return ['status' => false, 'msg' => 'to_bet_fail_4'];
|
||||||
}
|
}
|
||||||
// 超过50局幸运6禁止下注
|
// 超过50局幸运6禁止下注
|
||||||
if ($numberTabInfo['number'] > 50 && isset($event['luck_six_amount']) && $event['luck_six_amount'] > 0){
|
if ($numberTabInfo['number'] > 50 && isset($event['luck_six_amount']) && $event['luck_six_amount'] > 0){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_7', 'detail' => 'luck_six_over_50_rounds']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_7'];
|
return ['status' => false, 'msg' => 'to_bet_fail_7'];
|
||||||
}
|
}
|
||||||
// 超过30局大小禁止下注
|
// 超过30局大小禁止下注
|
||||||
if ($numberTabInfo['number'] > 30 && isset($event['big_amount']) && $event['big_amount'] > 0){
|
if ($numberTabInfo['number'] > 30 && isset($event['big_amount']) && $event['big_amount'] > 0){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_8', 'detail' => 'big_over_30_rounds']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_8'];
|
return ['status' => false, 'msg' => 'to_bet_fail_8'];
|
||||||
}
|
}
|
||||||
if ($numberTabInfo['number'] > 30 && isset($event['small_amount']) && $event['small_amount'] > 0){
|
if ($numberTabInfo['number'] > 30 && isset($event['small_amount']) && $event['small_amount'] > 0){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_8', 'detail' => 'small_over_30_rounds']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_8'];
|
return ['status' => false, 'msg' => 'to_bet_fail_8'];
|
||||||
}
|
}
|
||||||
if($userInfo['win_limit'] > 0){
|
if($userInfo['win_limit'] > 0){
|
||||||
$winTotalToday = Bet::getWinTotalToday($userInfo['id']);
|
$winTotalToday = Bet::getWinTotalToday($userInfo['id']);
|
||||||
if($winTotalToday >= $userInfo['win_limit']){
|
if($winTotalToday >= $userInfo['win_limit']){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'win_limit_tip', 'detail' => 'daily_win_limit_reached']);
|
||||||
return ['status' => false, 'msg' => 'win_limit_tip'];
|
return ['status' => false, 'msg' => 'win_limit_tip'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($userInfo['money'] < $amount){
|
if ($userInfo['money'] < $amount){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_1', 'detail' => 'insufficient_balance']);
|
||||||
return ['status' => false, 'msg' => 'to_bet_fail_1'];
|
return ['status' => false, 'msg' => 'to_bet_fail_1'];
|
||||||
}
|
}
|
||||||
return ['status' => true, 'numberTabInfo' => $numberTabInfo, 'userInfo' => $userInfo];
|
return ['status' => true, 'numberTabInfo' => $numberTabInfo, 'userInfo' => $userInfo];
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace app\services\bet;
|
namespace app\services\bet;
|
||||||
|
|
||||||
use app\models\bet\Bet;
|
use app\models\bet\Bet;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\DiceUtil;
|
use freedom\utils\DiceUtil;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ class ToBetDiceService{
|
|||||||
$time = time();
|
$time = time();
|
||||||
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
||||||
if ($toBetCheck['status'] == false){
|
if ($toBetCheck['status'] == false){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'dice_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
return;
|
return;
|
||||||
@@ -90,6 +92,7 @@ class ToBetDiceService{
|
|||||||
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
||||||
$numberTabAmount = string_to_array($numberTabInfo['dice_amount']);
|
$numberTabAmount = string_to_array($numberTabInfo['dice_amount']);
|
||||||
if($res){
|
if($res){
|
||||||
|
Logger::info(Logger::CAT_BET, 'dice_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
||||||
$totalAmountArray = DiceUtil::amountInc($numberTabAmount, $data);
|
$totalAmountArray = DiceUtil::amountInc($numberTabAmount, $data);
|
||||||
$round = [
|
$round = [
|
||||||
@@ -98,6 +101,7 @@ class ToBetDiceService{
|
|||||||
];
|
];
|
||||||
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
||||||
}else{
|
}else{
|
||||||
|
Logger::warn(Logger::CAT_BET, 'dice_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
||||||
}
|
}
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace app\services\bet;
|
|||||||
|
|
||||||
|
|
||||||
use app\models\bet\Bet;
|
use app\models\bet\Bet;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -32,6 +33,7 @@ class ToBetDtService
|
|||||||
$time = time();
|
$time = time();
|
||||||
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
||||||
if ($toBetCheck['status'] == false){
|
if ($toBetCheck['status'] == false){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'dt_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
return;
|
return;
|
||||||
@@ -107,6 +109,7 @@ class ToBetDtService
|
|||||||
|
|
||||||
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
||||||
if($res){
|
if($res){
|
||||||
|
Logger::info(Logger::CAT_BET, 'dt_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
||||||
if($userInfo['bet_type'] == 2){
|
if($userInfo['bet_type'] == 2){
|
||||||
$tableManager = app('swoole.table.manager');
|
$tableManager = app('swoole.table.manager');
|
||||||
@@ -128,6 +131,7 @@ class ToBetDtService
|
|||||||
);
|
);
|
||||||
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
||||||
}else{
|
}else{
|
||||||
|
Logger::warn(Logger::CAT_BET, 'dt_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
||||||
}
|
}
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
namespace app\services\bet;
|
namespace app\services\bet;
|
||||||
|
|
||||||
use app\models\bet\Bet;
|
use app\models\bet\Bet;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -49,6 +50,7 @@ class ToBetNnService
|
|||||||
$time = time();
|
$time = time();
|
||||||
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
||||||
if ($toBetCheck['status'] == false){
|
if ($toBetCheck['status'] == false){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'nn_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
return;
|
return;
|
||||||
@@ -181,9 +183,11 @@ class ToBetNnService
|
|||||||
|
|
||||||
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
||||||
if($res){
|
if($res){
|
||||||
|
Logger::info(Logger::CAT_BET, 'nn_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
||||||
// 待确定是否推送即时彩池,现不推送
|
// 待确定是否推送即时彩池,现不推送
|
||||||
}else{
|
}else{
|
||||||
|
Logger::warn(Logger::CAT_BET, 'nn_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
||||||
}
|
}
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace app\services\bet;
|
namespace app\services\bet;
|
||||||
|
|
||||||
use app\models\bet\Bet;
|
use app\models\bet\Bet;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\RouletteUtil;
|
use freedom\utils\RouletteUtil;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
@@ -36,6 +37,7 @@ class ToBetRouletteService{
|
|||||||
$time = time();
|
$time = time();
|
||||||
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
||||||
if ($toBetCheck['status'] == false){
|
if ($toBetCheck['status'] == false){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'roulette_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
return;
|
return;
|
||||||
@@ -54,6 +56,7 @@ class ToBetRouletteService{
|
|||||||
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0,$fieldName);
|
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0,$fieldName);
|
||||||
$numberTabAmount = string_to_array($numberTabInfo[$fieldName]);
|
$numberTabAmount = string_to_array($numberTabInfo[$fieldName]);
|
||||||
if($res){
|
if($res){
|
||||||
|
Logger::info(Logger::CAT_BET, 'roulette_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => [$fieldName => $betTotalAmount], 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => [$fieldName => $betTotalAmount], 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
||||||
$totalAmountArray = RouletteUtil::amountInc($numberTabAmount, $data);
|
$totalAmountArray = RouletteUtil::amountInc($numberTabAmount, $data);
|
||||||
$round = [
|
$round = [
|
||||||
@@ -62,6 +65,7 @@ class ToBetRouletteService{
|
|||||||
];
|
];
|
||||||
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
||||||
}else{
|
}else{
|
||||||
|
Logger::warn(Logger::CAT_BET, 'roulette_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
||||||
}
|
}
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
namespace app\services\bet;
|
namespace app\services\bet;
|
||||||
|
|
||||||
use app\models\bet\Bet;
|
use app\models\bet\Bet;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,6 +51,7 @@ class ToBetTcService
|
|||||||
$time = time();
|
$time = time();
|
||||||
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
||||||
if ($toBetCheck['status'] == false){
|
if ($toBetCheck['status'] == false){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'tc_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
return;
|
return;
|
||||||
@@ -182,9 +184,11 @@ class ToBetTcService
|
|||||||
|
|
||||||
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
||||||
if($res){
|
if($res){
|
||||||
|
Logger::info(Logger::CAT_BET, 'tc_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
||||||
// 待确定是否推送即时彩池,现不推送
|
// 待确定是否推送即时彩池,现不推送
|
||||||
}else{
|
}else{
|
||||||
|
Logger::warn(Logger::CAT_BET, 'tc_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
||||||
}
|
}
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
namespace app\services\bet;
|
namespace app\services\bet;
|
||||||
|
|
||||||
use app\models\bet\Bet;
|
use app\models\bet\Bet;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,6 +37,7 @@ class ToBetToningService
|
|||||||
$time = time();
|
$time = time();
|
||||||
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
|
||||||
if ($toBetCheck['status'] == false){
|
if ($toBetCheck['status'] == false){
|
||||||
|
Logger::warn(Logger::CAT_BET, 'toning_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
return;
|
return;
|
||||||
@@ -89,6 +91,7 @@ class ToBetToningService
|
|||||||
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
|
||||||
$numberTabAmount = string_to_array($numberTabInfo['toning_amount']);
|
$numberTabAmount = string_to_array($numberTabInfo['toning_amount']);
|
||||||
if($res){
|
if($res){
|
||||||
|
Logger::info(Logger::CAT_BET, 'toning_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
|
||||||
$round = array(
|
$round = array(
|
||||||
'toning_zero' => isset($numberTabAmount['toning_zero']) ? intval($numberTabAmount['toning_zero'] + $data['toning_zero']) : $data['toning_zero'],
|
'toning_zero' => isset($numberTabAmount['toning_zero']) ? intval($numberTabAmount['toning_zero'] + $data['toning_zero']) : $data['toning_zero'],
|
||||||
@@ -113,6 +116,7 @@ class ToBetToningService
|
|||||||
);
|
);
|
||||||
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
||||||
}else{
|
}else{
|
||||||
|
Logger::warn(Logger::CAT_BET, 'toning_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
|
||||||
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
|
||||||
}
|
}
|
||||||
SocketSession::resetRepeat($fd,'user','isToBet');
|
SocketSession::resetRepeat($fd,'user','isToBet');
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ namespace app\services\connect;
|
|||||||
use app\models\process\Boot;
|
use app\models\process\Boot;
|
||||||
use app\models\process\NumberTab;
|
use app\models\process\NumberTab;
|
||||||
use app\models\process\Sumday;
|
use app\models\process\Sumday;
|
||||||
|
use app\utils\Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO 桌子状态服务
|
* TODO 桌子状态服务
|
||||||
@@ -22,15 +23,24 @@ class InitTableService
|
|||||||
*/
|
*/
|
||||||
public static function initTable(array $tableInfo): array
|
public static function initTable(array $tableInfo): array
|
||||||
{
|
{
|
||||||
//查询日结
|
|
||||||
$lastSumday = Sumday::getByTableIdOrderByIdDesc($tableInfo);
|
$lastSumday = Sumday::getByTableIdOrderByIdDesc($tableInfo);
|
||||||
if (!$lastSumday) $lastSumday = Sumday::addByTable($tableInfo);
|
if (!$lastSumday) {
|
||||||
//查询靴
|
$lastSumday = Sumday::addByTable($tableInfo);
|
||||||
|
Logger::info(Logger::CAT_GAME, 'init_create_sumday', ['table_id' => $tableInfo['id']]);
|
||||||
|
}
|
||||||
$lastBoot = Boot::getByTableIdOrderByIdDesc($tableInfo);
|
$lastBoot = Boot::getByTableIdOrderByIdDesc($tableInfo);
|
||||||
if (!$lastBoot) $lastBoot = Boot::addBySumday($lastSumday);
|
if (!$lastBoot) {
|
||||||
//查询铺
|
$lastBoot = Boot::addBySumday($lastSumday);
|
||||||
|
Logger::info(Logger::CAT_GAME, 'init_create_boot', ['table_id' => $tableInfo['id'], 'sumday_id' => $lastSumday['id'] ?? '']);
|
||||||
|
}
|
||||||
$lastNumberTab = NumberTab::getByBootIdOrderByIdDesc($lastBoot);
|
$lastNumberTab = NumberTab::getByBootIdOrderByIdDesc($lastBoot);
|
||||||
if (!$lastNumberTab) $lastNumberTab = NumberTab::addByBoot($lastBoot);
|
if (!$lastNumberTab) {
|
||||||
|
$lastNumberTab = NumberTab::addByBoot($lastBoot);
|
||||||
|
Logger::info(Logger::CAT_GAME, 'init_create_number_tab', ['table_id' => $tableInfo['id'], 'boot_id' => $lastBoot['id'] ?? '']);
|
||||||
|
}
|
||||||
|
if (!$lastNumberTab) {
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'init_table_fail', ['table_id' => $tableInfo['id'], 'table_name' => $tableInfo['table_name'] ?? '']);
|
||||||
|
}
|
||||||
return $lastNumberTab;
|
return $lastNumberTab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ namespace app\services\connect;
|
|||||||
|
|
||||||
use app\models\process\NumberTab;
|
use app\models\process\NumberTab;
|
||||||
use app\models\table\Table;
|
use app\models\table\Table;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
use think\Request;
|
use think\Request;
|
||||||
|
|
||||||
@@ -30,6 +31,7 @@ class ScanConnectService
|
|||||||
if (!$numberTabInfo){
|
if (!$numberTabInfo){
|
||||||
$ws->emit('onlineLogin',['status' => false, 'msg' => 'Not NumberTab Data']);
|
$ws->emit('onlineLogin',['status' => false, 'msg' => 'Not NumberTab Data']);
|
||||||
$ws->close();
|
$ws->close();
|
||||||
|
Logger::warn(Logger::CAT_CONNECT, 'scan_connect_fail', ['table_id' => $tableId, 'reason' => 'no_number_tab_data']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$round = array();
|
$round = array();
|
||||||
@@ -45,5 +47,6 @@ class ScanConnectService
|
|||||||
}
|
}
|
||||||
$ws->join(SocketSession::HOUSE_NAME);
|
$ws->join(SocketSession::HOUSE_NAME);
|
||||||
$ws->emit('onlineLogin',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
$ws->emit('onlineLogin',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
|
||||||
|
Logger::info(Logger::CAT_CONNECT, 'scan_connect_success', ['table_id' => $tableId]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace app\services\connect;
|
|||||||
|
|
||||||
|
|
||||||
use app\models\user\User;
|
use app\models\user\User;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
use think\Request;
|
use think\Request;
|
||||||
|
|
||||||
@@ -30,13 +31,16 @@ class UserConnectService
|
|||||||
if($userInfo && $userInfo['login_token'] == $loginToken && $username == $userInfo['username']){
|
if($userInfo && $userInfo['login_token'] == $loginToken && $username == $userInfo['username']){
|
||||||
SocketSession::saveSocketSession(['user_id' => $userId, 'username' => $username],'user');
|
SocketSession::saveSocketSession(['user_id' => $userId, 'username' => $username],'user');
|
||||||
$ws->emit('onlineLogin',['status' => true, 'money' => $userInfo['money']]);
|
$ws->emit('onlineLogin',['status' => true, 'money' => $userInfo['money']]);
|
||||||
|
Logger::info(Logger::CAT_CONNECT, 'user_login_success', ['user_id' => $userId, 'username' => $username]);
|
||||||
}else{
|
}else{
|
||||||
$ws->emit('onlineLogin',['status' => false, 'money' => 0, 'msg' => 'link_server_fail']);
|
$ws->emit('onlineLogin',['status' => false, 'money' => 0, 'msg' => 'link_server_fail']);
|
||||||
$ws->close();
|
$ws->close();
|
||||||
|
Logger::warn(Logger::CAT_CONNECT, 'user_login_auth_fail', ['user_id' => $userId, 'username' => $username, 'reason' => 'token_or_user_mismatch']);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$ws->emit('onlineLogin',['status' => false, 'money' => 0, 'msg' => 'link_server_fail']);
|
$ws->emit('onlineLogin',['status' => false, 'money' => 0, 'msg' => 'link_server_fail']);
|
||||||
$ws->close();
|
$ws->close();
|
||||||
|
Logger::warn(Logger::CAT_CONNECT, 'user_login_param_missing', ['user_id' => $userId, 'username' => $username ?? '']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -188,11 +188,7 @@ class OpeningBaccaratService
|
|||||||
}
|
}
|
||||||
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'] + $v['banker_pair_amount'] + $v['player_pair_amount'] + $v['luck_six_amount'] + $v['big_amount'] + $v['small_amount'];
|
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'] + $v['banker_pair_amount'] + $v['player_pair_amount'] + $v['luck_six_amount'] + $v['big_amount'] + $v['small_amount'];
|
||||||
$winMoney = 0;
|
$winMoney = 0;
|
||||||
// 双边洗码
|
|
||||||
$ximaliang = 0;
|
$ximaliang = 0;
|
||||||
if($userInfo['type_xima'] == 1){
|
|
||||||
$ximaliang = abs($v['banker_amount'] - $v['player_amount']);
|
|
||||||
}
|
|
||||||
if($numberTabInfo['result'] == 1){
|
if($numberTabInfo['result'] == 1){
|
||||||
// 庄赢
|
// 庄赢
|
||||||
if ($v['banker_amount'] > 0){
|
if ($v['banker_amount'] > 0){
|
||||||
@@ -206,26 +202,26 @@ class OpeningBaccaratService
|
|||||||
$winMoney = round($v['banker_amount'] * (1 + $userInfo['price_banker']),2) + $winMoney;
|
$winMoney = round($v['banker_amount'] * (1 + $userInfo['price_banker']),2) + $winMoney;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 单边洗码
|
if($userInfo['type_xima'] == 1){
|
||||||
if($userInfo['type_xima'] == 2){
|
$ximaliang = $amount;
|
||||||
$ximaliang = $v['player_amount'];
|
}else{
|
||||||
|
$ximaliang += $v['player_amount'] + $v['tie_amount'];
|
||||||
}
|
}
|
||||||
}elseif($numberTabInfo['result'] == 2){
|
}elseif($numberTabInfo['result'] == 2){
|
||||||
// 闲赢
|
// 闲赢
|
||||||
if($v['player_amount'] > 0){
|
if($v['player_amount'] > 0){
|
||||||
$winMoney = $v['player_amount'] * (1 + $userInfo['price_player']) + $winMoney;
|
$winMoney = $v['player_amount'] * (1 + $userInfo['price_player']) + $winMoney;
|
||||||
}
|
}
|
||||||
// 单边洗码
|
if($userInfo['type_xima'] == 1){
|
||||||
if($userInfo['type_xima'] == 2){
|
$ximaliang = $amount;
|
||||||
$ximaliang = $v['banker_amount'];
|
}else{
|
||||||
|
$ximaliang += $v['banker_amount'] + $v['tie_amount'];
|
||||||
}
|
}
|
||||||
}elseif($numberTabInfo['result'] == 3) {
|
}elseif($numberTabInfo['result'] == 3) {
|
||||||
$ximaliang = 0;
|
// 和赢:庄闲退回,开和不计洗码
|
||||||
// 和赢
|
|
||||||
if($v['tie_amount'] > 0){
|
if($v['tie_amount'] > 0){
|
||||||
$winMoney = $v['tie_amount'] * (1 + $userInfo['price_tie_baccarat']) + $winMoney;
|
$winMoney = $v['tie_amount'] * (1 + $userInfo['price_tie_baccarat']) + $winMoney;
|
||||||
}
|
}
|
||||||
// 开 和,下注庄和闲不扣钱
|
|
||||||
if($v['banker_amount'] > 0 && $v['player_amount'] > 0){
|
if($v['banker_amount'] > 0 && $v['player_amount'] > 0){
|
||||||
$winMoney = $v['player_amount'] + $v['banker_amount'] + $winMoney;
|
$winMoney = $v['player_amount'] + $v['banker_amount'] + $winMoney;
|
||||||
}elseif($v['banker_amount'] > 0){
|
}elseif($v['banker_amount'] > 0){
|
||||||
@@ -234,12 +230,11 @@ class OpeningBaccaratService
|
|||||||
$winMoney = $v['player_amount'] + $winMoney;
|
$winMoney = $v['player_amount'] + $winMoney;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 对子
|
||||||
if($numberTabInfo['pair'] == 3){
|
if($numberTabInfo['pair'] == 3){
|
||||||
// 计算庄对下注的赢钱金额
|
|
||||||
if ($v['banker_pair_amount'] > 0) {
|
if ($v['banker_pair_amount'] > 0) {
|
||||||
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
||||||
}
|
}
|
||||||
//计算闲对下注的赢钱金额
|
|
||||||
if ($v['player_pair_amount'] > 0) {
|
if ($v['player_pair_amount'] > 0) {
|
||||||
$winMoney = $v['player_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
$winMoney = $v['player_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
||||||
}
|
}
|
||||||
@@ -247,22 +242,32 @@ class OpeningBaccaratService
|
|||||||
if ($v['banker_pair_amount'] > 0) {
|
if ($v['banker_pair_amount'] > 0) {
|
||||||
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
||||||
}
|
}
|
||||||
|
if($userInfo['type_xima'] != 1) $ximaliang += $v['player_pair_amount'];
|
||||||
}elseif($numberTabInfo['pair'] == 2){
|
}elseif($numberTabInfo['pair'] == 2){
|
||||||
if ($v['player_pair_amount'] > 0) {
|
if ($v['player_pair_amount'] > 0) {
|
||||||
$winMoney = $v['player_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
$winMoney = $v['player_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
|
||||||
}
|
}
|
||||||
|
if($userInfo['type_xima'] != 1) $ximaliang += $v['banker_pair_amount'];
|
||||||
|
}else{
|
||||||
|
if($userInfo['type_xima'] != 1) $ximaliang += $v['banker_pair_amount'] + $v['player_pair_amount'];
|
||||||
}
|
}
|
||||||
|
// 幸运6
|
||||||
if ($numberTabInfo['luck_six'] == 2 && $v['luck_six_amount'] > 0){
|
if ($numberTabInfo['luck_six'] == 2 && $v['luck_six_amount'] > 0){
|
||||||
$winMoney = $v['luck_six_amount'] * (1 + $userInfo['price_luck_six_2']) + $winMoney;
|
$winMoney = $v['luck_six_amount'] * (1 + $userInfo['price_luck_six_2']) + $winMoney;
|
||||||
}
|
}elseif ($numberTabInfo['luck_six'] == 3 && $v['luck_six_amount'] > 0){
|
||||||
if ($numberTabInfo['luck_six'] == 3 && $v['luck_six_amount'] > 0){
|
|
||||||
$winMoney = $v['luck_six_amount'] * (1 + $userInfo['price_luck_six_3']) + $winMoney;
|
$winMoney = $v['luck_six_amount'] * (1 + $userInfo['price_luck_six_3']) + $winMoney;
|
||||||
|
}else{
|
||||||
|
if($userInfo['type_xima'] != 1) $ximaliang += $v['luck_six_amount'];
|
||||||
}
|
}
|
||||||
|
// 大小
|
||||||
if ($numberTabInfo['big_small'] == 1){
|
if ($numberTabInfo['big_small'] == 1){
|
||||||
$winMoney = $v['big_amount'] * (1 + $userInfo['price_big']) + $winMoney;
|
$winMoney = $v['big_amount'] * (1 + $userInfo['price_big']) + $winMoney;
|
||||||
}
|
if($userInfo['type_xima'] != 1) $ximaliang += $v['small_amount'];
|
||||||
if ($numberTabInfo['big_small'] == 2){
|
}elseif ($numberTabInfo['big_small'] == 2){
|
||||||
$winMoney = $v['small_amount'] * (1 + $userInfo['price_small']) + $winMoney;
|
$winMoney = $v['small_amount'] * (1 + $userInfo['price_small']) + $winMoney;
|
||||||
|
if($userInfo['type_xima'] != 1) $ximaliang += $v['big_amount'];
|
||||||
|
}else{
|
||||||
|
if($userInfo['type_xima'] != 1) $ximaliang += $v['big_amount'] + $v['small_amount'];
|
||||||
}
|
}
|
||||||
// 计算最终赢钱金额
|
// 计算最终赢钱金额
|
||||||
$winTotal = $winMoney - $amount;
|
$winTotal = $winMoney - $amount;
|
||||||
|
|||||||
@@ -131,19 +131,16 @@ class OpeningDtService
|
|||||||
}
|
}
|
||||||
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'];
|
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'];
|
||||||
$winMoney = 0;
|
$winMoney = 0;
|
||||||
// 双边洗码
|
|
||||||
$ximaliang = 0;
|
$ximaliang = 0;
|
||||||
if($userInfo['type_xima'] == 1){
|
|
||||||
$ximaliang = abs($v['banker_amount'] - $v['player_amount']);
|
|
||||||
}
|
|
||||||
// 龙赢
|
// 龙赢
|
||||||
if ($numberTabInfo['result'] == 1) {
|
if ($numberTabInfo['result'] == 1) {
|
||||||
if($v['banker_amount'] > 0){
|
if($v['banker_amount'] > 0){
|
||||||
$winMoney = round($v['banker_amount'] * (1 + $userInfo['price_dragon']),2) + $winMoney;
|
$winMoney = round($v['banker_amount'] * (1 + $userInfo['price_dragon']),2) + $winMoney;
|
||||||
}
|
}
|
||||||
// 单边洗码
|
if($userInfo['type_xima'] == 1){
|
||||||
if($userInfo['type_xima'] == 2){
|
$ximaliang = $amount;
|
||||||
$ximaliang = $v['player_amount'];
|
}else{
|
||||||
|
$ximaliang = $v['player_amount'] + $v['tie_amount'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 虎赢
|
// 虎赢
|
||||||
@@ -151,18 +148,15 @@ class OpeningDtService
|
|||||||
if($v['player_amount'] > 0){
|
if($v['player_amount'] > 0){
|
||||||
$winMoney = round($v['player_amount'] * (1 + $userInfo['price_tiger']),2) + $winMoney;
|
$winMoney = round($v['player_amount'] * (1 + $userInfo['price_tiger']),2) + $winMoney;
|
||||||
}
|
}
|
||||||
// 单边洗码
|
if($userInfo['type_xima'] == 1){
|
||||||
if($userInfo['type_xima'] == 2){
|
$ximaliang = $amount;
|
||||||
$ximaliang = $v['banker_amount'];
|
}else{
|
||||||
|
$ximaliang = $v['banker_amount'] + $v['tie_amount'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 和
|
// 和:不杀龙虎,全额退回
|
||||||
if ($numberTabInfo['result'] == 3) {
|
if ($numberTabInfo['result'] == 3) {
|
||||||
if (Env::get('system.dt_half') == 1) {
|
$winMoney = $v['banker_amount'] + $v['player_amount'] + $winMoney;
|
||||||
$winMoney = round(($v['banker_amount'] + $v['player_amount']) / 2, 2) + $winMoney;
|
|
||||||
} else {
|
|
||||||
$winMoney = $v['banker_amount'] + $v['player_amount'] + $winMoney;
|
|
||||||
}
|
|
||||||
$ximaliang = 0;
|
$ximaliang = 0;
|
||||||
if ($v['tie_amount'] > 0) {
|
if ($v['tie_amount'] > 0) {
|
||||||
$winMoney = $v['tie_amount'] * (1 + $userInfo['price_tie_dt']) + $winMoney;
|
$winMoney = $v['tie_amount'] * (1 + $userInfo['price_tie_dt']) + $winMoney;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class CountdownService
|
|||||||
//处理倒计时
|
//处理倒计时
|
||||||
$waitTime = intval($tableInfo['wait_time']);
|
$waitTime = intval($tableInfo['wait_time']);
|
||||||
//将倒计时用作是redis的过期时间
|
//将倒计时用作是redis的过期时间
|
||||||
RedisUtil::save('countdown_'.$numberTabInfo['id'],$waitTime,$waitTime);
|
RedisUtil::save('countdown_'.$numberTabInfo['id'],$waitTime,$waitTime + 10);
|
||||||
while($waitTime >= 0){
|
while($waitTime >= 0){
|
||||||
$countdown = Cache::store('redis')->get('countdown_'.$numberTabInfo['id']);
|
$countdown = Cache::store('redis')->get('countdown_'.$numberTabInfo['id']);
|
||||||
if ($countdown){
|
if ($countdown){
|
||||||
|
|||||||
@@ -44,8 +44,8 @@ class EndBetService
|
|||||||
]);
|
]);
|
||||||
Logger::info(Logger::CAT_GAME, 'end_bet', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabId]);
|
Logger::info(Logger::CAT_GAME, 'end_bet', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabId]);
|
||||||
}else{
|
}else{
|
||||||
Logger::warn(Logger::CAT_GAME, 'end_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $modelRes['msg']]);
|
Logger::warn(Logger::CAT_GAME, 'end_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $modelRes['msg'], 'bet_status' => $modelRes['bet_status'] ?? null]);
|
||||||
$ws->emit('endBet', ['status' => false, 'msg' => $modelRes['msg']]);
|
$ws->emit('endBet', ['status' => false, 'msg' => $modelRes['msg'], 'bet_status' => $modelRes['bet_status'] ?? null]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,7 @@ namespace app\services\process;
|
|||||||
|
|
||||||
use app\models\process\NumberTab;
|
use app\models\process\NumberTab;
|
||||||
use app\services\connect\InitTableService;
|
use app\services\connect\InitTableService;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,15 +27,15 @@ class ResetNumberTabService
|
|||||||
$numberTabInfo = InitTableService::initTable($tableInfo);
|
$numberTabInfo = InitTableService::initTable($tableInfo);
|
||||||
if (!$numberTabInfo){
|
if (!$numberTabInfo){
|
||||||
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'not_number_tab_data']);
|
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'not_number_tab_data']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_number_tab_fail', ['table_id' => $tableInfo['id'], 'reason' => 'not_number_tab_data']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 调试日志
|
Logger::info(Logger::CAT_GAME, 'reset_number_tab_attempt', ['table_id' => $tableInfo['id'], 'bet_status' => $numberTabInfo['bet_status'], 'nt_id' => $numberTabInfo['id']]);
|
||||||
\think\facade\Log::write('resetNumberTab debug: bet_status=' . $numberTabInfo['bet_status'] . ', rob_status=' . $numberTabInfo['rob_status'] . ', id=' . $numberTabInfo['id'] . ', boot_id=' . $numberTabInfo['boot_id'], 'info');
|
|
||||||
if($numberTabInfo['bet_status'] == 1 || $numberTabInfo['bet_status'] == 2 || $numberTabInfo['bet_status'] == 3 || ($numberTabInfo['bet_status'] == 0 && ($numberTabInfo['rob_status'] == 1 || $numberTabInfo['rob_status'] == 2))){
|
if($numberTabInfo['bet_status'] == 1 || $numberTabInfo['bet_status'] == 2 || $numberTabInfo['bet_status'] == 3 || ($numberTabInfo['bet_status'] == 0 && ($numberTabInfo['rob_status'] == 1 || $numberTabInfo['rob_status'] == 2))){
|
||||||
//事务处理
|
//事务处理
|
||||||
$res = NumberTab::resetNumberTab($numberTabInfo);
|
$res = NumberTab::resetNumberTab($numberTabInfo);
|
||||||
\think\facade\Log::write('resetNumberTab result: ' . ($res ? 'true' : 'false'), 'info');
|
|
||||||
if (!$res){
|
if (!$res){
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_number_tab_fail', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabInfo['id']]);
|
||||||
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'reset_number_fail']);
|
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'reset_number_fail']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -55,8 +56,10 @@ class ResetNumberTabService
|
|||||||
$ws->to(SocketSession::HOUSE_NAME)->emit('resetNumberTab', $responseData);
|
$ws->to(SocketSession::HOUSE_NAME)->emit('resetNumberTab', $responseData);
|
||||||
// 同时发送给请求者
|
// 同时发送给请求者
|
||||||
$ws->emit('resetNumberTab', $responseData);
|
$ws->emit('resetNumberTab', $responseData);
|
||||||
|
Logger::info(Logger::CAT_GAME, 'reset_number_tab', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabInfo['id']]);
|
||||||
}else{
|
}else{
|
||||||
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'reset_number_fail']);
|
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'reset_number_fail']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_number_tab_fail', ['table_id' => $tableInfo['id'], 'number_tab_id' => $numberTabInfo['id'], 'reason' => 'invalid_bet_status']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
namespace app\services\reset;
|
namespace app\services\reset;
|
||||||
|
|
||||||
use app\models\process\NumberTab;
|
use app\models\process\NumberTab;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
use think\swoole\Websocket;
|
use think\swoole\Websocket;
|
||||||
|
|
||||||
@@ -27,14 +28,17 @@ class ResetBaccaratService
|
|||||||
$numberTabInfo = NumberTab::getByTableIdOrderByIdDesc_two($tableInfo);
|
$numberTabInfo = NumberTab::getByTableIdOrderByIdDesc_two($tableInfo);
|
||||||
if (!$numberTabInfo){
|
if (!$numberTabInfo){
|
||||||
$ws->emit('resetBaccarat', ['status' => false, 'msg' => 'not_number_tab_data']);
|
$ws->emit('resetBaccarat', ['status' => false, 'msg' => 'not_number_tab_data']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'reason' => 'not_number_tab_data']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(count($numberTabInfo) != 2){
|
if(count($numberTabInfo) != 2){
|
||||||
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '上一铺数据不存在']);
|
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '上一铺数据不存在']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'reason' => 'previous_round_not_found']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if($numberTabInfo[0]['boot_id'] != $numberTabInfo[1]['boot_id']){
|
if($numberTabInfo[0]['boot_id'] != $numberTabInfo[1]['boot_id']){
|
||||||
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '上一铺不在同一靴']);
|
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '上一铺不在同一靴']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'reason' => 'boot_mismatch']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,6 +50,7 @@ class ResetBaccaratService
|
|||||||
$res = NumberTab::resetBaccarat($event,$numberTabInfo,$tableInfo);
|
$res = NumberTab::resetBaccarat($event,$numberTabInfo,$tableInfo);
|
||||||
if (!$res){
|
if (!$res){
|
||||||
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '修改上一局结果失败']);
|
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '修改上一局结果失败']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'number_tab_id' => $numberTabInfo['id'], 'reason' => 'db_update_failed']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,5 +61,6 @@ class ResetBaccaratService
|
|||||||
'previous_number_tab_id' => $numberTabInfo['id']
|
'previous_number_tab_id' => $numberTabInfo['id']
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
|
Logger::info(Logger::CAT_GAME, 'reset_baccarat', ['table_id' => $tableInfo['id'], 'opening' => $event['opening'], 'pair' => $event['pair']]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
namespace app\services\reset;
|
namespace app\services\reset;
|
||||||
|
|
||||||
use app\models\process\NumberTab;
|
use app\models\process\NumberTab;
|
||||||
|
use app\utils\Logger;
|
||||||
use freedom\utils\SocketSession;
|
use freedom\utils\SocketSession;
|
||||||
use think\swoole\Websocket;
|
use think\swoole\Websocket;
|
||||||
|
|
||||||
@@ -27,14 +28,17 @@ class ResetDtService
|
|||||||
$numberTabInfo = NumberTab::getByTableIdOrderByIdDesc_two($tableInfo);
|
$numberTabInfo = NumberTab::getByTableIdOrderByIdDesc_two($tableInfo);
|
||||||
if (!$numberTabInfo){
|
if (!$numberTabInfo){
|
||||||
$ws->emit('resetDt', ['status' => false, 'msg' => 'not_number_tab_data']);
|
$ws->emit('resetDt', ['status' => false, 'msg' => 'not_number_tab_data']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'reason' => 'not_number_tab_data']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(count($numberTabInfo) != 2){
|
if(count($numberTabInfo) != 2){
|
||||||
$ws->emit('resetDt', ['status' => false, 'msg' => '上一铺数据不存在']);
|
$ws->emit('resetDt', ['status' => false, 'msg' => '上一铺数据不存在']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'reason' => 'previous_round_not_found']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if($numberTabInfo[0]['boot_id'] != $numberTabInfo[1]['boot_id']){
|
if($numberTabInfo[0]['boot_id'] != $numberTabInfo[1]['boot_id']){
|
||||||
$ws->emit('resetDt', ['status' => false, 'msg' => '上一铺不在同一靴']);
|
$ws->emit('resetDt', ['status' => false, 'msg' => '上一铺不在同一靴']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'reason' => 'boot_mismatch']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,6 +50,7 @@ class ResetDtService
|
|||||||
$res = NumberTab::resetDt($event,$numberTabInfo,$tableInfo);
|
$res = NumberTab::resetDt($event,$numberTabInfo,$tableInfo);
|
||||||
if (!$res){
|
if (!$res){
|
||||||
$ws->emit('resetDt', ['status' => false, 'msg' => '修改上一局结果失败']);
|
$ws->emit('resetDt', ['status' => false, 'msg' => '修改上一局结果失败']);
|
||||||
|
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'number_tab_id' => $numberTabInfo['id'], 'reason' => 'db_update_failed']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,5 +61,6 @@ class ResetDtService
|
|||||||
'previous_number_tab_id' => $numberTabInfo['id']
|
'previous_number_tab_id' => $numberTabInfo['id']
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
|
Logger::info(Logger::CAT_GAME, 'reset_dt', ['table_id' => $tableInfo['id'], 'opening' => $event['opening']]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,6 +99,7 @@ class WaybillRemindService{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$bigRoad_lenth = count($bigRoadLocation);
|
$bigRoad_lenth = count($bigRoadLocation);
|
||||||
|
try {
|
||||||
if($bigRoad_lenth >= 4){
|
if($bigRoad_lenth >= 4){
|
||||||
//y=1
|
//y=1
|
||||||
if($bigRoadLocation[$bigRoad_lenth-1]['show_y'] == 1){
|
if($bigRoadLocation[$bigRoad_lenth-1]['show_y'] == 1){
|
||||||
@@ -616,6 +617,9 @@ class WaybillRemindService{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
// 路子珠数据不足时跳过 pattern 检测
|
||||||
|
}
|
||||||
$table = WaybillRemind::where('table_id',$table_id)->find();
|
$table = WaybillRemind::where('table_id',$table_id)->find();
|
||||||
$create_time = time();
|
$create_time = time();
|
||||||
$bigRoadLocation = json_encode($bigRoadLocation);
|
$bigRoadLocation = json_encode($bigRoadLocation);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class Logger
|
|||||||
{
|
{
|
||||||
$date = date('Y-m-d');
|
$date = date('Y-m-d');
|
||||||
$time = date('Y-m-d H:i:s');
|
$time = date('Y-m-d H:i:s');
|
||||||
$dir = runtime_path() . 'log' . DIRECTORY_SEPARATOR . $category;
|
$dir = root_path() . 'runtime' . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . $category;
|
||||||
if (!is_dir($dir)) {
|
if (!is_dir($dir)) {
|
||||||
mkdir($dir, 0755, true);
|
mkdir($dir, 0755, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# 洗码量(码量)计算规则
|
||||||
|
|
||||||
|
> 客户在 2026-05-28 明确的完整规则,由此重写了开奖结算逻辑。
|
||||||
|
> 实现位置:`app/services/opening/OpeningBaccaratService.php`、`OpeningDtService.php`
|
||||||
|
|
||||||
|
## 核心定义
|
||||||
|
|
||||||
|
**洗码量 = 投注额(按原投注额度计,不乘赔率)**
|
||||||
|
|
||||||
|
系统有两种洗码模式,存于 `cg_user.type_xima`:
|
||||||
|
|
||||||
|
| type_xima | 模式 | 规则 |
|
||||||
|
|-----------|------|------|
|
||||||
|
| 1 | 双边洗码 | **所有投注**都计洗码,开和不计 |
|
||||||
|
| 2 | 单边洗码 | 只有**输口**计洗码,开和不计 |
|
||||||
|
|
||||||
|
> 注意:历史代码里 type_xima 的语义曾被误用为 `1=双边/2=单边`,已确认数据库中
|
||||||
|
> 单边洗码会员是 `type_xima=2`。
|
||||||
|
|
||||||
|
## 百家乐(game_id=1)
|
||||||
|
|
||||||
|
下注位置:庄、闲、和、庄对、闲对、幸运6、大、小
|
||||||
|
|
||||||
|
**单边洗码(type_xima=2)— 输口计洗码:**
|
||||||
|
- 庄赢:洗码 = 闲 + 和 + 没中的对子 + 没中的幸运6 + 没中的大小
|
||||||
|
- 闲赢:洗码 = 庄 + 和 + 没中的对子 + 没中的幸运6 + 没中的大小
|
||||||
|
- 和局:庄闲退回不计,洗码 = 没中的对子 + 没中的幸运6 + 没中的大小
|
||||||
|
|
||||||
|
**双边洗码(type_xima=1)— 所有投注都计洗码:**
|
||||||
|
- 庄赢/闲赢:洗码 = 全部投注额(`$amount`)
|
||||||
|
- 和局:庄闲退回部分不计,其余照常(开和不计核心投注)
|
||||||
|
|
||||||
|
## 龙虎(game_id=2)
|
||||||
|
|
||||||
|
下注位置:龙、虎、和
|
||||||
|
|
||||||
|
- **和局不杀龙虎**,龙虎全额退回(dt_half 旧逻辑"和局杀一半"已废除)
|
||||||
|
- 单边洗码:龙赢→洗码=虎+和;虎赢→洗码=龙+和
|
||||||
|
- 双边洗码:龙赢/虎赢→洗码=全部投注额;和局→0
|
||||||
|
- 赔率:龙/虎 1:0.97,和 1:40
|
||||||
|
|
||||||
|
## 百家乐赔率补充
|
||||||
|
- 庄 1:0.95,闲 1:1,和 1:8
|
||||||
|
- 免佣模式(baccarat_type=1):庄赢且非幸运6 时 1:1,幸运6 时 1:0.5
|
||||||
|
|
||||||
|
## 关键代码模式
|
||||||
|
|
||||||
|
```php
|
||||||
|
// 输口判断:开出的结果 != 投注位置 → 该位置投注额计入 ximaliang
|
||||||
|
if($userInfo['type_xima'] == 1){
|
||||||
|
$ximaliang = $amount; // 双边:全部投注
|
||||||
|
}else{
|
||||||
|
$ximaliang += <各输口投注额>; // 单边:仅输口
|
||||||
|
}
|
||||||
|
// 开和:庄闲退回,ximaliang 不累加这部分
|
||||||
|
```
|
||||||
|
|
||||||
|
## 数据落地
|
||||||
|
- 洗码记录写入 `cg_xima` 表,字段 `ximaliang`(原投注额)、`maliang`(=ximaliang×码率)、`net_maliang`
|
||||||
|
- 开奖时(OpeningXxxService→Bet::openingBet)实时按各级代理当前码率计算并落库
|
||||||
|
- **码率/占成在开奖时实时读 DB**,改了码率只影响之后开的局,已开未结的局不变
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# OG 日志清理 - 删除30天前的日志文件
|
||||||
|
LOG_DIR="/www/wwwroot/Socket/runtime/log"
|
||||||
|
find "$LOG_DIR" -name "*.log" -type f -mtime +30 -delete 2>/dev/null
|
||||||
|
find "$LOG_DIR" -type d -empty -delete 2>/dev/null
|
||||||
|
echo "[$(date)] log cleanup done, current size: $(du -sh $LOG_DIR | cut -f1)"
|
||||||
Executable
+63
@@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# OG 日志快速查看工具
|
||||||
|
# 用法: ./logview.sh [分类] [选项]
|
||||||
|
# 分类: frontend | game | connect | bet | error | all
|
||||||
|
# 选项: -f 实时跟踪 | -t N 查看最后N行 | -g "关键词" 搜索
|
||||||
|
#
|
||||||
|
# 示例:
|
||||||
|
# ./logview.sh frontend # 查看今天的前端错误
|
||||||
|
# ./logview.sh game -f # 实时跟踪游戏事件
|
||||||
|
# ./logview.sh game -g "table_id.*12" # 搜索805牛牛台
|
||||||
|
# ./logview.sh connect -t 50 # 最近50条连接日志
|
||||||
|
# ./logview.sh all -g "WARN\|ERROR" # 所有分类的警告和错误
|
||||||
|
# ./logview.sh frontend -d 2026-05-13 # 查看指定日期
|
||||||
|
|
||||||
|
LOG_DIR="/www/wwwroot/Socket/runtime/log"
|
||||||
|
DATE=$(date +%Y-%m-%d)
|
||||||
|
CATEGORY=${1:-all}
|
||||||
|
shift 2>/dev/null
|
||||||
|
|
||||||
|
MODE="tail"
|
||||||
|
LINES=30
|
||||||
|
GREP=""
|
||||||
|
CUSTOM_DATE=""
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
-f) MODE="follow"; shift ;;
|
||||||
|
-t) LINES=$2; shift 2 ;;
|
||||||
|
-g) GREP=$2; shift 2 ;;
|
||||||
|
-d) CUSTOM_DATE=$2; shift 2 ;;
|
||||||
|
*) shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
[[ -n "$CUSTOM_DATE" ]] && DATE=$CUSTOM_DATE
|
||||||
|
|
||||||
|
if [[ "$CATEGORY" == "all" ]]; then
|
||||||
|
CATS="frontend game connect bet error"
|
||||||
|
else
|
||||||
|
CATS=$CATEGORY
|
||||||
|
fi
|
||||||
|
|
||||||
|
for cat in $CATS; do
|
||||||
|
FILE="$LOG_DIR/$cat/$DATE.log"
|
||||||
|
if [[ ! -f "$FILE" ]]; then
|
||||||
|
echo "[$cat] 无日志: $FILE"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$MODE" == "follow" ]]; then
|
||||||
|
echo "=== 实时跟踪 $cat ==="
|
||||||
|
tail -f "$FILE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "=== $cat ($DATE) ==="
|
||||||
|
if [[ -n "$GREP" ]]; then
|
||||||
|
grep -i "$GREP" "$FILE" | tail -$LINES
|
||||||
|
else
|
||||||
|
tail -$LINES "$FILE"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
done
|
||||||
Regular → Executable
+1
-1
@@ -1 +1 @@
|
|||||||
open_basedir=/www/wwwroot/tnt-game-socket/:/tmp/
|
open_basedir=/www/wwwroot/Socket/:/tmp/
|
||||||
|
|||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
//花式
|
||||||
|
$pattern = intval(substr(113,0,1));
|
||||||
|
//点数
|
||||||
|
$number = intval(substr(413,1,2));
|
||||||
|
var_dump($pattern);
|
||||||
|
var_dump($number);
|
||||||
@@ -2,9 +2,24 @@
|
|||||||
var reportUrl = '/log/report';
|
var reportUrl = '/log/report';
|
||||||
var queue = [];
|
var queue = [];
|
||||||
var sending = false;
|
var sending = false;
|
||||||
|
var ignorePatterns = [
|
||||||
|
'play() request was interrupted',
|
||||||
|
'The play() request was interrupted',
|
||||||
|
'NotAllowedError',
|
||||||
|
'AbortError'
|
||||||
|
];
|
||||||
|
|
||||||
|
function shouldIgnore(msg) {
|
||||||
|
if (!msg) return false;
|
||||||
|
for (var i = 0; i < ignorePatterns.length; i++) {
|
||||||
|
if (msg.indexOf(ignorePatterns[i]) !== -1) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
function send(data) {
|
function send(data) {
|
||||||
if (queue.length >= 10) return;
|
if (queue.length >= 10) return;
|
||||||
|
if (shouldIgnore(data.message)) return;
|
||||||
data.source = 'handle';
|
data.source = 'handle';
|
||||||
data.time = new Date().toISOString();
|
data.time = new Date().toISOString();
|
||||||
data.url = location.href;
|
data.url = location.href;
|
||||||
|
|||||||
@@ -182,7 +182,11 @@ websocket.on('reconnect', (timeout) => {
|
|||||||
var startBet = function(){
|
var startBet = function(){
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var startRob = function(){
|
var startRob = function(){
|
||||||
@@ -227,7 +231,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
$('.control-box .btn-box2 span').removeClass('on');
|
$('.control-box .btn-box2 span').removeClass('on');
|
||||||
if(game_id == 1){
|
if(game_id == 1){
|
||||||
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
@@ -524,9 +532,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -585,7 +605,11 @@ websocket.on('endBet',function(data){
|
|||||||
|
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -707,7 +731,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -730,6 +754,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
opening();
|
opening();
|
||||||
}
|
}
|
||||||
@@ -769,11 +795,12 @@ $(function(){
|
|||||||
var number_tab_status=$("#number_tab_status").val();
|
var number_tab_status=$("#number_tab_status").val();
|
||||||
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
||||||
endRob();
|
endRob();
|
||||||
}else{
|
}else if(number_tab_status == 1){
|
||||||
endBet();
|
endBet();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(game_id == 6){
|
if(game_id == 6){
|
||||||
@@ -1951,7 +1978,7 @@ function SoloPath(ctb,unit,x,y,type,corners,luck_six,dragon_seven,panda_eight){
|
|||||||
var color='#b8860b';
|
var color='#b8860b';
|
||||||
var fonts="7";
|
var fonts="7";
|
||||||
ctb.strokeStyle = "#ff2202";
|
ctb.strokeStyle = "#ff2202";
|
||||||
ctb.lineWidth = 3;
|
ctb.lineWidth = 4;
|
||||||
} else if(game_id==1 && panda_eight > 0){
|
} else if(game_id==1 && panda_eight > 0){
|
||||||
var color='#34495e';
|
var color='#34495e';
|
||||||
var fonts="8";
|
var fonts="8";
|
||||||
|
|||||||
@@ -34,7 +34,11 @@ websocket.on('reconnect', (timeout) => {
|
|||||||
var startBet = function(){
|
var startBet = function(){
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var startRob = function(){
|
var startRob = function(){
|
||||||
@@ -79,7 +83,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
$('.control-box .btn-box2 span').removeClass('on');
|
$('.control-box .btn-box2 span').removeClass('on');
|
||||||
if(game_id == 1){
|
if(game_id == 1){
|
||||||
var opening = $('#opening').val();
|
var opening = $('#opening').val();
|
||||||
@@ -251,9 +259,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
layer.msg(lang[data.msg]);
|
layer.msg(lang[data.msg]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -312,7 +332,11 @@ websocket.on('endBet',function(data){
|
|||||||
|
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -381,7 +405,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -404,6 +428,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
opening();
|
opening();
|
||||||
}
|
}
|
||||||
@@ -444,7 +470,8 @@ $(function(){
|
|||||||
}
|
}
|
||||||
// 停止倒计时
|
// 停止倒计时
|
||||||
if(e.keyCode == 96){
|
if(e.keyCode == 96){
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
var betStatus = $("#number_tab_status").val();
|
var betStatus = $("#number_tab_status").val();
|
||||||
if(betStatus == 2){
|
if(betStatus == 2){
|
||||||
@@ -1365,7 +1392,7 @@ function SoloPath(ctb,unit,x,y,type,corners,luck_six,dragon_seven,panda_eight){
|
|||||||
}else if(game_id==1 && dragon_seven > 0){
|
}else if(game_id==1 && dragon_seven > 0){
|
||||||
var color='#b8860b', fonts="7";
|
var color='#b8860b', fonts="7";
|
||||||
ctb.strokeStyle = "#ff2202";
|
ctb.strokeStyle = "#ff2202";
|
||||||
ctb.lineWidth = 3;
|
ctb.lineWidth = 4;
|
||||||
}else if(game_id==1 && panda_eight > 0){
|
}else if(game_id==1 && panda_eight > 0){
|
||||||
var color='#34495e', fonts="8";
|
var color='#34495e', fonts="8";
|
||||||
ctb.strokeStyle = "#506878";
|
ctb.strokeStyle = "#506878";
|
||||||
|
|||||||
@@ -137,7 +137,11 @@ var startBet = function(){
|
|||||||
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var startRob = function(){
|
var startRob = function(){
|
||||||
@@ -193,7 +197,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
$('.control-box .btn-box2 span').removeClass('on');
|
$('.control-box .btn-box2 span').removeClass('on');
|
||||||
if(game_id == 1){
|
if(game_id == 1){
|
||||||
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
@@ -496,9 +504,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -538,7 +558,11 @@ websocket.on('endBet',function(data){
|
|||||||
|
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -805,7 +829,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -828,6 +852,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
opening();
|
opening();
|
||||||
}
|
}
|
||||||
@@ -867,11 +893,12 @@ $(function(){
|
|||||||
var number_tab_status=$("#number_tab_status").val();
|
var number_tab_status=$("#number_tab_status").val();
|
||||||
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
||||||
endRob();
|
endRob();
|
||||||
}else{
|
}else if(number_tab_status == 1){
|
||||||
endBet();
|
endBet();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(game_id == 6){
|
if(game_id == 6){
|
||||||
|
|||||||
@@ -137,7 +137,11 @@ var startBet = function(){
|
|||||||
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var startRob = function(){
|
var startRob = function(){
|
||||||
@@ -194,7 +198,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
$('.control-box .btn-box2 span').removeClass('on');
|
$('.control-box .btn-box2 span').removeClass('on');
|
||||||
if(game_id == 1){
|
if(game_id == 1){
|
||||||
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
@@ -512,9 +520,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -555,7 +575,11 @@ websocket.on('endBet',function(data){
|
|||||||
|
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -932,7 +956,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -955,6 +979,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
opening();
|
opening();
|
||||||
}
|
}
|
||||||
@@ -994,11 +1020,12 @@ $(function(){
|
|||||||
var number_tab_status=$("#number_tab_status").val();
|
var number_tab_status=$("#number_tab_status").val();
|
||||||
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
||||||
endRob();
|
endRob();
|
||||||
}else{
|
}else if(number_tab_status == 1){
|
||||||
endBet();
|
endBet();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(game_id == 6){
|
if(game_id == 6){
|
||||||
|
|||||||
@@ -28,7 +28,11 @@ websocket.on('reconnect', (timeout) => {
|
|||||||
var startBet = function(){
|
var startBet = function(){
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var resetNumberTab = function(){
|
var resetNumberTab = function(){
|
||||||
@@ -71,7 +75,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
$('.control-box .btn-box2 span').removeClass('on');
|
$('.control-box .btn-box2 span').removeClass('on');
|
||||||
let result = $('#dice_result').val();
|
let result = $('#dice_result').val();
|
||||||
websocket.emit('openingDice',{table_id : table_id, number_tab_id : number_tab_id, result : result});
|
websocket.emit('openingDice',{table_id : table_id, number_tab_id : number_tab_id, result : result});
|
||||||
@@ -189,9 +197,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -211,7 +231,11 @@ websocket.on('endBet',function(data){
|
|||||||
setBetStatus(data.round.number_tab_status);
|
setBetStatus(data.round.number_tab_status);
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -241,7 +265,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,6 +288,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
opening();
|
opening();
|
||||||
}
|
}
|
||||||
@@ -303,11 +329,12 @@ $(function(){
|
|||||||
var number_tab_status=$("#number_tab_status").val();
|
var number_tab_status=$("#number_tab_status").val();
|
||||||
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
||||||
endRob();
|
endRob();
|
||||||
}else{
|
}else if(number_tab_status == 1){
|
||||||
endBet();
|
endBet();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 骰宝结果选择
|
// 骰宝结果选择
|
||||||
|
|||||||
@@ -123,7 +123,11 @@ var startBet = function(){
|
|||||||
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var startRob = function(){
|
var startRob = function(){
|
||||||
@@ -179,7 +183,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
$('.control-box .btn-box2 span').removeClass('on');
|
$('.control-box .btn-box2 span').removeClass('on');
|
||||||
if(game_id == 1){
|
if(game_id == 1){
|
||||||
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
@@ -487,9 +495,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -527,7 +547,11 @@ websocket.on('endBet',function(data){
|
|||||||
|
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -774,7 +798,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -797,6 +821,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
opening();
|
opening();
|
||||||
}
|
}
|
||||||
@@ -836,11 +862,12 @@ $(function(){
|
|||||||
var number_tab_status=$("#number_tab_status").val();
|
var number_tab_status=$("#number_tab_status").val();
|
||||||
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
||||||
endRob();
|
endRob();
|
||||||
}else{
|
}else if(number_tab_status == 1){
|
||||||
endBet();
|
endBet();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(game_id == 6){
|
if(game_id == 6){
|
||||||
|
|||||||
@@ -184,7 +184,11 @@ var startBet = function(){
|
|||||||
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var startRob = function(){
|
var startRob = function(){
|
||||||
@@ -240,7 +244,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
$('.control-box .btn-box2 span').removeClass('on');
|
$('.control-box .btn-box2 span').removeClass('on');
|
||||||
if(game_id == 1){
|
if(game_id == 1){
|
||||||
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
@@ -557,9 +565,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -602,7 +622,11 @@ websocket.on('endBet',function(data){
|
|||||||
|
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -908,7 +932,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -931,6 +955,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
opening();
|
opening();
|
||||||
}
|
}
|
||||||
@@ -970,11 +996,12 @@ $(function(){
|
|||||||
var number_tab_status=$("#number_tab_status").val();
|
var number_tab_status=$("#number_tab_status").val();
|
||||||
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
||||||
endRob();
|
endRob();
|
||||||
}else{
|
}else if(number_tab_status == 1){
|
||||||
endBet();
|
endBet();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(game_id == 6){
|
if(game_id == 6){
|
||||||
|
|||||||
@@ -28,7 +28,11 @@ websocket.on('reconnect', (timeout) => {
|
|||||||
var startBet = function(){
|
var startBet = function(){
|
||||||
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
|
var isEndingBet = false;
|
||||||
var endBet = function (){
|
var endBet = function (){
|
||||||
|
if(isEndingBet) return;
|
||||||
|
isEndingBet = true;
|
||||||
|
setTimeout(function(){ isEndingBet = false; }, 2000);
|
||||||
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
|
||||||
};
|
};
|
||||||
var resetNumberTab = function(){
|
var resetNumberTab = function(){
|
||||||
@@ -69,7 +73,11 @@ var resetBoot = function(){
|
|||||||
layer.close(index);
|
layer.close(index);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var isOpening = false;
|
||||||
var opening = function(){
|
var opening = function(){
|
||||||
|
if(isOpening) return;
|
||||||
|
isOpening = true;
|
||||||
|
setTimeout(function(){ isOpening = false; }, 3000);
|
||||||
let result = $('#roulette_result').val();
|
let result = $('#roulette_result').val();
|
||||||
websocket.emit('openingRoulette',{table_id : table_id, number_tab_id : number_tab_id, result : result});
|
websocket.emit('openingRoulette',{table_id : table_id, number_tab_id : number_tab_id, result : result});
|
||||||
};
|
};
|
||||||
@@ -169,9 +177,21 @@ websocket.on('resetBoot',function(data){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var _cdTimer = null;
|
||||||
|
var _cdVal = 0;
|
||||||
websocket.on('startBetCountDown',function(data){
|
websocket.on('startBetCountDown',function(data){
|
||||||
if(data.status == true && data.table_id == table_id){
|
if(data.status == true && data.table_id == table_id){
|
||||||
|
_cdVal = data.count_down;
|
||||||
countDown(data.count_down);
|
countDown(data.count_down);
|
||||||
|
if(_cdTimer) clearTimeout(_cdTimer);
|
||||||
|
if(_cdVal > 0){
|
||||||
|
_cdTimer = setTimeout(function _tick(){
|
||||||
|
_cdVal--;
|
||||||
|
if(_cdVal >= 0) countDown(_cdVal);
|
||||||
|
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
|
||||||
|
else _cdTimer = null;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
websocket.on('endBet',function(data){
|
websocket.on('endBet',function(data){
|
||||||
@@ -185,7 +205,11 @@ websocket.on('endBet',function(data){
|
|||||||
setBetStatus(data.round.number_tab_status);
|
setBetStatus(data.round.number_tab_status);
|
||||||
}else{
|
}else{
|
||||||
if (data.table_id != undefined && data.table_id == table_id) {
|
if (data.table_id != undefined && data.table_id == table_id) {
|
||||||
layer.msg(lang[data.msg]);
|
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
|
||||||
|
$('#number_tab_status').val(data.bet_status);
|
||||||
|
} else {
|
||||||
|
layer.msg(lang[data.msg]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -216,7 +240,7 @@ $(function(){
|
|||||||
if(!cookieValue){
|
if(!cookieValue){
|
||||||
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
$.cookie("enter_time", 1, { expires: 1/86400*3 });
|
||||||
}else{
|
}else{
|
||||||
layer.msg('Please hold on');
|
layer.msg('请稍等');
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,6 +263,8 @@ $(function(){
|
|||||||
}else{
|
}else{
|
||||||
layer.msg("请稍等!");
|
layer.msg("请稍等!");
|
||||||
}
|
}
|
||||||
|
}else if (numberTabStatus == 1) {
|
||||||
|
endBet();
|
||||||
}else if (numberTabStatus == 2) {
|
}else if (numberTabStatus == 2) {
|
||||||
var result = $('#roulette_result').val();
|
var result = $('#roulette_result').val();
|
||||||
if(result.length == 0){
|
if(result.length == 0){
|
||||||
@@ -282,11 +308,12 @@ $(function(){
|
|||||||
var number_tab_status=$("#number_tab_status").val();
|
var number_tab_status=$("#number_tab_status").val();
|
||||||
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
|
||||||
endRob();
|
endRob();
|
||||||
}else{
|
}else if(number_tab_status == 1){
|
||||||
endBet();
|
endBet();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
endBet();
|
var _s = $("#number_tab_status").val();
|
||||||
|
if(_s == 1) endBet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 骰宝结果选择
|
// 骰宝结果选择
|
||||||
|
|||||||
@@ -15,19 +15,3 @@ Route::get('think', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Route::get('hello/:name', 'index/hello');
|
Route::get('hello/:name', 'index/hello');
|
||||||
|
|
||||||
Route::post('log/report', function () {
|
|
||||||
$data = request()->post();
|
|
||||||
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
|
|
||||||
'source' => $data['source'] ?? 'unknown',
|
|
||||||
'type' => $data['type'] ?? 'error',
|
|
||||||
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
|
|
||||||
'file' => $data['file'] ?? '',
|
|
||||||
'url' => $data['url'] ?? '',
|
|
||||||
'line' => $data['line'] ?? '',
|
|
||||||
'col' => $data['col'] ?? '',
|
|
||||||
'ua' => request()->header('user-agent', ''),
|
|
||||||
'ip' => request()->ip(),
|
|
||||||
]);
|
|
||||||
return json(['status' => 1]);
|
|
||||||
});
|
|
||||||
|
|||||||
Reference in New Issue
Block a user