diff --git a/app/common.php b/app/common.php index 5139cdc..6501d6d 100644 --- a/app/common.php +++ b/app/common.php @@ -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'); diff --git a/app/lang/zh-cn.php b/app/lang/zh-cn.php index 3d745de..d592710 100644 --- a/app/lang/zh-cn.php +++ b/app/lang/zh-cn.php @@ -492,7 +492,7 @@ return [ 'exceeds_limit_table' => '下注超出桌子限紅', 'exceeds_limit_user' => '下注超出个人限紅', 'under_limit_user' => '下注低于个人限紅', - 'end_bet_error' => '停止成功', + 'end_bet_error' => '已停止下注', 'end_bet_error_1' => '当前局状态不在下注状态,不能停止', 'end_bet_error_2' => '停止下注失败', 'repeated_entry' => '你的账号在其他地方登陆了,即将退出', diff --git a/app/models/process/NumberTab.php b/app/models/process/NumberTab.php index 7118a5b..d15798b 100644 --- a/app/models/process/NumberTab.php +++ b/app/models/process/NumberTab.php @@ -136,7 +136,7 @@ class NumberTab extends BaseModel { $numberTabInfo = self::get(['id' => $numberTabId]); 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()]); $numberTabInfo['bet_status'] = 2; $numberTabInfo['bet_start_time'] = time(); diff --git a/app/services/process/EndBetService.php b/app/services/process/EndBetService.php index e78c55d..6d9c2ee 100644 --- a/app/services/process/EndBetService.php +++ b/app/services/process/EndBetService.php @@ -44,8 +44,8 @@ class EndBetService ]); Logger::info(Logger::CAT_GAME, 'end_bet', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabId]); }else{ - Logger::warn(Logger::CAT_GAME, 'end_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $modelRes['msg']]); - $ws->emit('endBet', ['status' => false, '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'], 'bet_status' => $modelRes['bet_status'] ?? null]); } } } \ No newline at end of file diff --git a/app/services/waybill/WaybillRemindService.php b/app/services/waybill/WaybillRemindService.php index 0068c93..52a1b8d 100644 --- a/app/services/waybill/WaybillRemindService.php +++ b/app/services/waybill/WaybillRemindService.php @@ -99,6 +99,7 @@ class WaybillRemindService{ } } $bigRoad_lenth = count($bigRoadLocation); + try { if($bigRoad_lenth >= 4){ //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(); $create_time = time(); $bigRoadLocation = json_encode($bigRoadLocation); diff --git a/public/static/handle/js/handle.js b/public/static/handle/js/handle.js index 0bc1d97..d8fd56c 100644 --- a/public/static/handle/js/handle.js +++ b/public/static/handle/js/handle.js @@ -182,7 +182,11 @@ websocket.on('reconnect', (timeout) => { var startBet = function(){ websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var startRob = function(){ @@ -589,7 +593,11 @@ websocket.on('endBet',function(data){ }else{ 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]); + } } } }); @@ -775,11 +783,12 @@ $(function(){ 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)){ endRob(); - }else{ + }else if(number_tab_status == 1){ endBet(); } }else{ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } } if(game_id == 6){ diff --git a/public/static/handle/js/handle_b.js b/public/static/handle/js/handle_b.js index c30ace8..ae5436d 100644 --- a/public/static/handle/js/handle_b.js +++ b/public/static/handle/js/handle_b.js @@ -34,7 +34,11 @@ websocket.on('reconnect', (timeout) => { var startBet = function(){ websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var startRob = function(){ @@ -316,7 +320,11 @@ websocket.on('endBet',function(data){ }else{ 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]); + } } } }); @@ -450,7 +458,8 @@ $(function(){ } // 停止倒计时 if(e.keyCode == 96){ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } var betStatus = $("#number_tab_status").val(); if(betStatus == 2){ diff --git a/public/static/handle/js/handle_b_sb.js b/public/static/handle/js/handle_b_sb.js index 37f4724..661d428 100644 --- a/public/static/handle/js/handle_b_sb.js +++ b/public/static/handle/js/handle_b_sb.js @@ -137,7 +137,11 @@ var startBet = function(){ sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"}); websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var startRob = function(){ @@ -542,7 +546,11 @@ websocket.on('endBet',function(data){ }else{ 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]); + } } } }); @@ -873,11 +881,12 @@ $(function(){ 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)){ endRob(); - }else{ + }else if(number_tab_status == 1){ endBet(); } }else{ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } } if(game_id == 6){ diff --git a/public/static/handle/js/handle_b_sb_scan_four.js b/public/static/handle/js/handle_b_sb_scan_four.js index 9f746f0..6e31a69 100644 --- a/public/static/handle/js/handle_b_sb_scan_four.js +++ b/public/static/handle/js/handle_b_sb_scan_four.js @@ -137,7 +137,11 @@ var startBet = function(){ sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"}); websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var startRob = function(){ @@ -559,7 +563,11 @@ websocket.on('endBet',function(data){ }else{ 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]); + } } } }); @@ -1000,11 +1008,12 @@ $(function(){ 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)){ endRob(); - }else{ + }else if(number_tab_status == 1){ endBet(); } }else{ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } } if(game_id == 6){ diff --git a/public/static/handle/js/handle_dice.js b/public/static/handle/js/handle_dice.js index a28ef1e..2439a89 100644 --- a/public/static/handle/js/handle_dice.js +++ b/public/static/handle/js/handle_dice.js @@ -28,7 +28,11 @@ websocket.on('reconnect', (timeout) => { var startBet = function(){ websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var resetNumberTab = function(){ @@ -215,7 +219,11 @@ websocket.on('endBet',function(data){ setBetStatus(data.round.number_tab_status); }else{ 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]); + } } } }); @@ -309,11 +317,12 @@ $(function(){ 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)){ endRob(); - }else{ + }else if(number_tab_status == 1){ endBet(); } }else{ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } } // 骰宝结果选择 diff --git a/public/static/handle/js/handle_dt_sb.js b/public/static/handle/js/handle_dt_sb.js index 9c3f576..7d77777 100644 --- a/public/static/handle/js/handle_dt_sb.js +++ b/public/static/handle/js/handle_dt_sb.js @@ -123,7 +123,11 @@ var startBet = function(){ sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"}); websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var startRob = function(){ @@ -531,7 +535,11 @@ websocket.on('endBet',function(data){ }else{ 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]); + } } } }); @@ -842,11 +850,12 @@ $(function(){ 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)){ endRob(); - }else{ + }else if(number_tab_status == 1){ endBet(); } }else{ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } } if(game_id == 6){ diff --git a/public/static/handle/js/handle_nn_sb.js b/public/static/handle/js/handle_nn_sb.js index 68b0cf8..dda2001 100644 --- a/public/static/handle/js/handle_nn_sb.js +++ b/public/static/handle/js/handle_nn_sb.js @@ -184,7 +184,11 @@ var startBet = function(){ sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"}); websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var startRob = function(){ @@ -606,7 +610,11 @@ websocket.on('endBet',function(data){ }else{ 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]); + } } } }); @@ -976,11 +984,12 @@ $(function(){ 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)){ endRob(); - }else{ + }else if(number_tab_status == 1){ endBet(); } }else{ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } } if(game_id == 6){ diff --git a/public/static/handle/js/handle_roulette.js b/public/static/handle/js/handle_roulette.js index 7012ba9..4ee15c6 100644 --- a/public/static/handle/js/handle_roulette.js +++ b/public/static/handle/js/handle_roulette.js @@ -28,7 +28,11 @@ websocket.on('reconnect', (timeout) => { var startBet = function(){ websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; +var isEndingBet = false; 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}); }; var resetNumberTab = function(){ @@ -189,7 +193,11 @@ websocket.on('endBet',function(data){ setBetStatus(data.round.number_tab_status); }else{ 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]); + } } } }); @@ -288,11 +296,12 @@ $(function(){ 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)){ endRob(); - }else{ + }else if(number_tab_status == 1){ endBet(); } }else{ - endBet(); + var _s = $("#number_tab_status").val(); + if(_s == 1) endBet(); } } // 骰宝结果选择