backup: 线上最终版本全量备份

包含所有线上运行的改动:
- 荷官端倒计时卡顿修复(CountdownService TTL+10/前端watchdog)
- 停止下注debounce防重复(8个handle.js)
- 洗码量规则重写(单边/双边/开和不计/百家乐+龙虎)
- 龙虎和局不杀庄闲(全额退回)
- 日志系统(Logger工具类/日志查看/清理脚本)
- 好路提醒异常处理(WaybillRemindService try-catch)
- 扫牌器连接改进(ScanConnectService)
- 牛牛/三卡开牌修复
- .gitignore更新/.DS_Store清理
This commit is contained in:
OG Backup
2026-06-14 14:20:43 +08:00
parent 728ce45856
commit 2cd31285f0
78 changed files with 2407 additions and 538 deletions
+30 -20
View File
@@ -11,6 +11,7 @@ use app\services\waybill\WaybillRemindService;
use freedom\utils\CardPosition;
use freedom\utils\RedisUtil;
use freedom\utils\SocketSession;
use app\utils\Logger;
use think\swoole\Websocket;
/**
@@ -32,6 +33,7 @@ class OpeningBaccaratService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_baccarat_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingBaccarat',['status' => false, 'msg' => $res['msg']]);
return;
}
@@ -52,6 +54,7 @@ class OpeningBaccaratService
);
$ws->emit('openingBaccarat',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingBaccaratResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_baccarat', ['table_id' => $tableInfo['id'], 'opening' => $opening, 'pair' => $pair, 'luck_six' => $luck_six]);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo);
//处理好路
@@ -141,6 +144,8 @@ class OpeningBaccaratService
$banker_pair = intval($event['banker_pair']);
$player_pair = intval($event['player_pair']);
$luck_six = intval($event['luck_six']);
$dragon_seven = intval($event['dragon_seven'] ?? 0);
$panda_eight = intval($event['panda_eight'] ?? 0);
//处理开盘
if($banker_pair == 1 && $player_pair == 2){
//庄闲对
@@ -157,7 +162,7 @@ class OpeningBaccaratService
}
if (!in_array($opening,[1,2,3])) return ['status' => false, 'msg' => 'opening_fail_3'];
//开盘
$numberTabUpdate = ['result' => $opening, 'pair' => $pair, 'luck_six' => $luck_six, 'big_small' => $big_small, 'end_time' => time(), 'bet_status' => 3];
$numberTabUpdate = ['result' => $opening, 'pair' => $pair, 'luck_six' => $luck_six, 'dragon_seven' => $dragon_seven, 'panda_eight' => $panda_eight, 'big_small' => $big_small, 'end_time' => time(), 'bet_status' => 3];
$newNumberTabInfo = NumberTab::next($numberTabInfo,$numberTabUpdate,$tableInfo);
if ($newNumberTabInfo){
$lastNumberTabInfo = array_merge($numberTabInfo,$numberTabUpdate);
@@ -183,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'];
$winMoney = 0;
// 双边洗码
$ximaliang = 0;
if($userInfo['type_xima'] == 1){
$ximaliang = abs($v['banker_amount'] - $v['player_amount']);
}
if($numberTabInfo['result'] == 1){
// 庄赢
if ($v['banker_amount'] > 0){
@@ -201,26 +202,26 @@ class OpeningBaccaratService
$winMoney = round($v['banker_amount'] * (1 + $userInfo['price_banker']),2) + $winMoney;
}
}
// 单边洗码
if($userInfo['type_xima'] == 2){
$ximaliang = $v['player_amount'];
if($userInfo['type_xima'] == 1){
$ximaliang = $amount;
}else{
$ximaliang += $v['player_amount'] + $v['tie_amount'];
}
}elseif($numberTabInfo['result'] == 2){
// 闲赢
if($v['player_amount'] > 0){
$winMoney = $v['player_amount'] * (1 + $userInfo['price_player']) + $winMoney;
}
// 单边洗码
if($userInfo['type_xima'] == 2){
$ximaliang = $v['banker_amount'];
if($userInfo['type_xima'] == 1){
$ximaliang = $amount;
}else{
$ximaliang += $v['banker_amount'] + $v['tie_amount'];
}
}elseif($numberTabInfo['result'] == 3) {
$ximaliang = 0;
// 和赢
// 和赢:庄闲退回,开和不计洗码
if($v['tie_amount'] > 0){
$winMoney = $v['tie_amount'] * (1 + $userInfo['price_tie_baccarat']) + $winMoney;
}
// 开 和,下注庄和闲不扣钱
if($v['banker_amount'] > 0 && $v['player_amount'] > 0){
$winMoney = $v['player_amount'] + $v['banker_amount'] + $winMoney;
}elseif($v['banker_amount'] > 0){
@@ -229,12 +230,11 @@ class OpeningBaccaratService
$winMoney = $v['player_amount'] + $winMoney;
}
}
// 对子
if($numberTabInfo['pair'] == 3){
// 计算庄对下注的赢钱金额
if ($v['banker_pair_amount'] > 0) {
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
}
//计算闲对下注的赢钱金额
if ($v['player_pair_amount'] > 0) {
$winMoney = $v['player_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
}
@@ -242,22 +242,32 @@ class OpeningBaccaratService
if ($v['banker_pair_amount'] > 0) {
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
}
if($userInfo['type_xima'] != 1) $ximaliang += $v['player_pair_amount'];
}elseif($numberTabInfo['pair'] == 2){
if ($v['player_pair_amount'] > 0) {
$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){
$winMoney = $v['luck_six_amount'] * (1 + $userInfo['price_luck_six_2']) + $winMoney;
}
if ($numberTabInfo['luck_six'] == 3 && $v['luck_six_amount'] > 0){
}elseif ($numberTabInfo['luck_six'] == 3 && $v['luck_six_amount'] > 0){
$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){
$winMoney = $v['big_amount'] * (1 + $userInfo['price_big']) + $winMoney;
}
if ($numberTabInfo['big_small'] == 2){
if($userInfo['type_xima'] != 1) $ximaliang += $v['small_amount'];
}elseif ($numberTabInfo['big_small'] == 2){
$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;