Commit Graph
45 Commits
Author SHA1 Message Date
fengshao1227 e44d645547 fix: 洗码量按客户完整规则重写
百家乐+龙虎:
- 单边洗码(type_xima=2):输口计洗码,开和不计
- 双边洗码(type_xima=1):所有投注都计洗码,开和不计(庄闲退回部分除外)
- 龙虎和局不杀龙虎,全额退回
2026-05-29 05:37:40 +08:00
fengshao1227 c3621121ca fix: 龙虎洗码量改为所有输口之和,和局通杀龙虎计入洗码 2026-05-28 18:04:53 +08:00
fengshao1227 477ca7f6c9 fix: 百家乐洗码量改为所有输口投注额之和
原逻辑只算庄/闲的投注额,对子、和、幸运6、大小的输口不计入。
改为:所有输的位置的投注额都计入洗码量(庄、闲、和、庄对、闲对、幸运6、大小)。
2026-05-28 18:03:35 +08:00
testadmin 8edc071997 fix: 倒计时卡住根因修复 — Redis TTL缓冲+前端watchdog兜底
根因:CountdownService用while(sleep(1))阻塞循环推送倒计时,
Redis key TTL=wait_time,3台同时运行时worker争用导致循环慢于
Redis过期时间,key先过期→循环中断→倒计时冻结在当前秒数。

修复:
1. Redis TTL加10秒缓冲(waitTime+10),防止key提前过期
2. 前端加watchdog兜底:服务端2秒没推送就本地继续倒计时
2026-05-19 14:25:48 +08:00
testadmin aa74a6edc1 fix: 荷官端卡住根因修复 — endBet防抖+状态同步+WaybillRemind越界
1. end_bet_error翻译从'停止成功'改为'已停止下注'(误导荷官以为操作成功)
2. endBet()加2秒防抖,防止连按Enter导致重复请求
3. Numpad 0加状态守卫,只在bet_status=1时才调endBet
4. endBet失败时前端自动同步服务端bet_status,不再弹错误框
5. 后端end_bet_error响应附带当前bet_status供前端同步
6. WaybillRemindService路子珠pattern检测加try-catch,消除每日59次offset -1错误
2026-05-19 00:28:02 +08:00
testadmin 3bac9960b8 refine: normalize bet log names and init_table_fail level 2026-05-14 11:50:59 +08:00
testadmin a180fe8385 feat: complete logging audit - fill all gaps
- Filter noisy audio play() errors from frontend log
- Add logging to ALL 8 ToBet services (was only Baccarat)
- Add InitTableService logging (Sumday/Boot/NumberTab creation & failure)
- Add logview.sh for quick log viewing
- Add log_cleanup.sh for 30-day rotation
2026-05-14 11:49:36 +08:00
testadmin 7fe15a0d50 fix: unify log path to runtime/log/ for all contexts
- Logger: use root_path()/runtime/log/ instead of runtime_path()/log/
  (runtime_path() returns app-specific path in multi-app mode)
- Remove debug output from Log controller
2026-05-14 11:44:57 +08:00
testadmin cbe48e938a debug: return runtime path and data keys 2026-05-14 11:43:53 +08:00
testadmin b733eab816 debug: add error catching to log endpoint 2026-05-14 11:41:58 +08:00
testadmin df6aa119a0 fix: use getContent() for JSON body parsing in log endpoint 2026-05-14 11:40:54 +08:00
testadmin 966b3133bf fix: parse JSON body in log report endpoint 2026-05-14 11:38:59 +08:00
testadmin 817e262140 fix: frontend error reporting route - bypass auth middleware
- Create handle/controller/Log.php (no auth) for dealer error reports
- Update error-report.js URL: /index/log_report → /log/report
- index app already has Log controller at /log/report
2026-05-14 11:37:58 +08:00
testadmin b518578266 feat: complete logging coverage - all services + frontend route fix
Backend additions:
- UserConnectService, ScanConnectService: connection logging
- ToBetCommonService, ToBetBaccaratService: bet rejection/success logging
- ResetBoot, ResetNumberTab, ResetBaccarat, ResetDt: reset event logging
- handle/Index: log_report controller method (fixes route for dealer端)
- index/Log: log_report controller for player端 (no auth required)

Frontend:
- error-report.js: fix report URL to /index/log_report (matches handle controller)

Total: 21 backend files with 60 Logger calls across 5 categories
2026-05-14 11:35:34 +08:00
testadmin d77c6beac7 feat: add logging module for backend + frontend error reporting
Backend:
- New Logger utility (app/utils/Logger.php) with category-based log files
  (connect/game/bet/error/frontend under runtime/log/)
- Log WebSocket connect/close events (WsConnect, WsClose)
- Log dealer auth success/failure (SpaceConnectService)
- Log all game events: startBet, endBet, changeBoot, opening for all 7 game types
- Log unhandled exceptions (ExceptionHandle)
- Separate SQL/error logs via apart_level, enable realtime_write for Swoole
- Add /log/report POST endpoint for frontend error ingestion

Frontend:
- New error-report.js with window.onerror + unhandledrejection auto-reporting
- Added to all 12 dealer HTML templates
- Bump VERSION_V to v10.1.0
2026-05-14 11:28:33 +08:00
testadmin 710bb45614 fix: handle.js syntax error causing niuniu dealer page crash
- Line 1953: `ctb.{strokeStyle = "#ff2202";}` → `ctb.strokeStyle = "#ff2202";`
  This typo from Dragon 7 bead road styling broke the entire JS parser
- Bump VERSION_V to v10.0.9 to force browser cache refresh
2026-05-14 11:15:02 +08:00
testadmin 0f571f21ec fix: 修改结果龙7归庄、熊8归闲(之前写反了) 2026-05-13 19:22:47 +08:00
testadmin ef66019c29 feat: 修改上局结果支持幸运6/龙7/熊8
- tab_b.html: 下拉菜单加6/7/8选项(5段格式 opening-pair-luck_six-dragon_seven-panda_eight)
- handle_b.js: retreated()解析并传dragon_seven/panda_eight
- NumberTab: resetBaccarat更新luck_six/dragon_seven/panda_eight字段
- ResetBaccaratService: 比较条件加上三个字段
2026-05-13 19:09:43 +08:00
testadmin abf608582a chore: 版本号v10.0.7强制刷新荷官端缓存 2026-05-13 18:16:09 +08:00
testadmin cf9800b74a fix: common.php 强制加载中文语言包,解决Swoole环境lang()返回key的问题 2026-05-11 15:54:12 +08:00
testadmin e9b3fde30e fix: lang文件放到app/lang/目录(TP6初始化从appPath=app/加载,不是app/handle/) 2026-05-11 14:54:17 +08:00
testadmin 7c1fee312f fix: 添加荷官端中文语言包(从Pro复制),防止翻译丢失 2026-05-11 14:37:07 +08:00
testadmin 71d28ef630 chore: .gitignore 加入 vendor/runtime/.DS_Store,清理 git 索引 2026-05-11 14:13:05 +08:00
testadmin 5b74fee7a8 fix: 龙虎手动模式(tab_dt.html)补上#resultAreaTimer/#resultAreaImg 2026-05-11 14:05:30 +08:00
testadmin ba687cfb57 fix: 所有游戏荷官端统一改造倒计时/结果显示
- handle.js: 移除所有.countdown操作,改用#resultAreaTimer
- handle.js: showPng/showPngDt改为HTML文字(庄对红/闲对蓝)
- common.css: 加.countdown/.result-box隐藏规则
- tab_nn/tab_knn/tab_toning/tab_b_auto/tab_dt_auto: 加#resultAreaTimer/#resultAreaImg
- 版本号 v10.0.4 → v10.0.5
2026-05-11 14:02:31 +08:00
testadmin 207f742770 fix: 开牌结果改用HTML文字显示,庄对红色/闲对蓝色
- showPng()不再用PNG图片,改为HTML文字渲染
- 庄对永远红色(#b20a00),闲对永远蓝色(#0543bc)
- 版本号 v10.0.3 → v10.0.4
2026-05-06 15:48:03 +08:00
testadmin 3104243f5c chore: 版本号 v10.0.2 → v10.0.3 强制客户端刷新缓存 2026-05-06 11:24:10 +08:00
testadmin 307338fa7d feat: 计时/开牌结果移到右侧面板(限红区旁边)
- tab_b.html: limit-box 和 result-area 并排布局
- CSS: 隐藏原始大 overlay,结果在右侧面板显示
- JS: countDown/showPng 同步更新到 #resultAreaTimer/#resultAreaImg
2026-05-05 23:01:16 +08:00
testadmin 1c666a22be fix: 路单查询补查 luck_six/dragon_seven/panda_eight 字段
根因:getByBootIdDone 只查 result,pair,新字段没传到 Waybill,前端拿不到数据
2026-05-02 00:02:58 +08:00
testadmin 39a1d0dea8 feat: 路子珠显示幸运6/龙7/熊8特殊图标
- DB: cg_number_tab 加 dragon_seven, panda_eight 列
- 后端: OpeningBaccaratService 接收并存储 dragon_seven/panda_eight
- Waybill: showRoad 数据含 luck_six/dragon_seven/panda_eight
- 前端 SoloPath: 绿色圆「6」=幸运6, 金色圆「7」=龙7, 蓝色圆「8」=熊8
- handle_b.js: 键盘7/8设置对应隐藏字段,opening()传参
2026-05-01 23:36:33 +08:00
testadmin 3a13580754 chore: 版本号 v10.0.1 → v10.0.2 强制浏览器刷新 JS 缓存 2026-04-22 15:33:53 +08:00
testadmin 80282468cd fix: 百家乐/龙虎模板 JS 版本号改为动态,解决浏览器缓存不刷新
- tab_b.html: handle_b.js?3 → handle_b.js{Think.VERSION_V}
- tab_dt.html: handle_b.js?1 → handle_b.js{Think.VERSION_V}
- 硬编码版本号导致浏览器缓存旧JS,小键盘+号键移除不生效
2026-04-22 14:57:11 +08:00
testadmin dd3776e759 fix: resetNumberTab 支持 bet_status=3 + 路单变量名修正
- ResetNumberTabService: 条件增加 bet_status==3,修复 || 应为 && 的逻辑错误
- WaybillRemindService: last_banker_lenth → last_player_lenth(result==2 是闲家)
- 所有荷官操作端 handle_*.js: resetNumberTab 同步支持 betStatus==3
2026-04-20 10:51:49 +08:00
li 46dd7f6a1f fix: 百家乐开牌崩溃 - WaybillRemindService闲赢分支变量名错误
result==2(闲赢) show_y<6时设置了$last_banker_lenth
但后续使用$last_player_lenth → Undefined variable → Swoole异常
2026-03-29 18:13:25 +08:00
黎小北 728ce45856 修复扫牌器获取的 boot_id是旧数据的问题,导致下注等异常 2026-03-25 07:03:00 +08:00
黎小北 0d420e3a78 修复作废操作操作错误的局 2026-03-25 06:30:12 +08:00
黎小北 a9108d7581 牛牛作废增加调试日志 2026-03-25 06:15:09 +08:00
li db34f5dba9 revert: 回滚SpaceConnectService bet_status改动,避免影响牛牛操作端位置显示 2026-03-15 20:39:53 +08:00
li f97ad09a8b fix: onlineLogin响应补充bet_status字段 - 修复牛牛操作端刷新后牌面丢失 2026-03-15 19:43:28 +08:00
li 90d348d77a feat: 五公杀赔从5倍改为4倍,四条杀赔保持5倍 2026-02-11 19:53:08 +08:00
li 67a44a3dba feat: 牛牛新增四条(炸弹)牌型 result=12
- CardPositionNn::JudgeCowCow() 新增四条识别(4张相同点数)
- OpeningNnService::doBet() 新增 result==12 赔率分支(闲1/2/3共12处)
2026-02-11 17:32:17 +08:00
li 94cbf9a093 chore: 清理未提交的DS_Store文件 2026-02-11 16:59:23 +08:00
li 83f3d2319d fix: 修复龙虎resetDt余额回滚公式符号错误
龙虎修改开奖结果后,余额计算公式将旧win_total用+号(应为-号),
导致改回正确结果后只扣了抽水而未扣回本金。
与resetBaccarat逻辑对齐:+ $v['win_total'] → - $v['win_total']
2026-02-11 16:13:02 +08:00
li ca996c227c Refactor ChatConnect and related classes to use dynamic typing for properties and method parameters. Update event handling to use a consistent naming convention for emitted events. Adjust WebSocket message handling methods to accept event arrays instead of specific data structures. Update configuration for Swoole to increase ping intervals and timeouts. 2026-01-29 03:04:40 +08:00
li b8cd0c9418 add 2026-01-28 23:48:20 +08:00