Commit Graph
6 Commits
Author SHA1 Message Date
ypshidifu 984c629cc0 修复(today_bonds): 改用game_transactions单一数据源消除重复计算
【根因】同一笔Web商城购买被写入两张表:
- web_transactions(PHP端cashier.php直接写入)
- game_transactions(Java端同步,含balance_before/after)
导致消费金额被重复统计(如youpaishidifu今日消费显示410而非205)。

【修复】移除所有web_transactions查询,只用game_transactions作为
唯一数据源。每笔交易通过balance_after-balance_before判断方向,
余额增加→收入,余额减少→消费,100%准确且无重复。

验证结果(youpaishidifu今日):
- 消费:205 ✓(之前显示410,实际应为205)
- 收入:5302 ✓(与XLS流水一致)
2026-07-13 21:38:45 +08:00
ypshidifu 6ad469452f 修复(today_bonds,admin.php): PHP数组key自动转整数导致r.name为number→escAdmHtml爆炸\n\n【根因】PHP中[['player_name']]当玩家名为纯数字时,PHP自动将\narray key转为integer,array_keys返回整数。JSON编码后name字段为number。\nJS端(r.name||'') → 123||'' = 123,123.replace() → TypeError。\n\n【修复】\n- today_bonds.php: 'name' => (string) 显式字符串化\n- admin.php: escAdmHtml 改用 String(s??'') 防御所有非字符串类型 2026-07-13 21:18:26 +08:00
ypshidifu 8f0bf8cd52 修复(today_bonds): web_transactions用type区分方向, game_transactions用balance差值
【问题】两表的 amount 始终为正,不能用金额符号判断收支方向。
【修复】
- web_transactions: amount<0 →消费, amount>0中用type区分(shop_buy/shop_cart=消费,其他=收入)
- game_transactions: balance_after > balance_before →收入, 反之为消费
- 覆盖 admin_add/deduct/refund 和 Java同步的所有交易类型
2026-07-13 20:51:31 +08:00
ypshidifu ffa8b4cce0 修复(today_bonds): 消费收入需同时统计web_transactions和game_transactions
用户截图中的 shop_buy 等支出记录在 game_transactions 表而非
web_transactions 表,之前的查询只覆盖 web_transactions 导致消费为0。
现在合并两个表的数据:game_transactions.amount < 0 也计入消费,
amount > 0 也计入收入。
2026-07-13 20:35:27 +08:00
ypshidifu ba484e957d 修复(today_bonds,online_curve): 债券看板消费数据源错误+在线曲线不记录快照
今日债券:
- 消费改为从 web_transactions.amount<0 取绝对值
- 收入从 web_transactions.amount>0 取
- 移除 orders.db.cashier_orders 消费查询(导致消费总是0)

在线曲线:
- 新增 ensureRecentSnapshot() 自动记录机制
- 每次 action=data 时检查上次快照是否>55秒前,是则自动记录
- 避免后台只调 action=data 导致永不记录快照的 bug
2026-07-13 20:25:58 +08:00
ypshidifu 5e581adef3 新增: 三个PHP数据看板页面
- today_bonds.php: 今日债券变动看板(消费/收入/净变动)
- active_players.php: 本小时在线活跃看板(实时在线玩家)
- online_curve.php: 24小时在线曲线图(Chart.js柱状图+自动快照)
2026-07-13 19:12:21 +08:00