ypshidifu
|
afdae1b63b
|
fix(sync): 拉取交易即刻贴标防重复处理 — 新增confirmed_transactions表+ack_transaction接口
|
2026-07-14 11:38:30 +08:00 |
|
ypshidifu
|
6984bc79fd
|
feat(admin): 搜索框支持ban/tempban关键字筛选封禁玩家
|
2026-07-14 00:48:28 +08:00 |
|
ypshidifu
|
8261b4dbfd
|
feat(admin): 用户管理添加封禁玩家/临时封禁筛选标签页
|
2026-07-14 00:37:10 +08:00 |
|
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
|
dff381adeb
|
修复(admin.php): 三个看板函数使用未定义的 esc() → escAdmHtml()
- today_bonds / active_players / online_curve 三个 load 函数
- 全部 8 处 esc(...) 替换为后台已定义的 escAdmHtml(...)
|
2026-07-13 20:04:23 +08:00 |
|
ypshidifu
|
19472baab0
|
后台集成: 三个数据看板页面(今日债券/本时活跃/在线曲线)
- admin.php 侧边栏新增三个导航项
- 新增 loadBondsToday/loadActiveHour/loadOnlineCurve 三个加载函数
- 直接从独立PHP端点(today_bonds/active_players/online_curve)获取数据
- 纯CSS条形图展示24小时在线曲线,无需Chart.js CDN依赖
- 各看板自动定时刷新(30s/10s/60s),切换页面时清理定时器
|
2026-07-13 19:53:28 +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 |
|
ypshidifu
|
9b39c9e56f
|
修复: 权限管理多项问题
1. 权限字段补齐: PHP $PERM_TYPES对齐Java全部32个权限键
- 新增denyEntityInteract(实体交互)、denyMobAttack(攻击生物)
- 修正denyPeaceMode→peaceMode(键名与Java对齐)
- 数据迁移: 自动重命名DB中已有的denyPeaceMode为peaceMode
2. 权限编辑二态化: 成员权限只有允许/禁止,不存在"领地默认"
- 移除前端"默认"状态,改为允许(green)/禁止(red)二态切换
- 后端: 禁用时存false而非删除键,确保Java端正确识别
3. 角色切换修复: 移除visitor选项(访客=未授权玩家)
- 下拉菜单只保留admin/member
- 确认对话框文案对应调整
4. 同步删除逻辑: handleSyncPermissions新增清理机制
- 删除incoming列表中不存在的旧记录(120秒宽限期)
- synced_at=NULL的记录不参与删除(防误删PHP本地创建)
- role CASE简化为role=excluded.role(信任Java为角色权威源)
5. 部署: json_encode加JSON_UNESCAPED_UNICODE防双重编码
|
2026-07-12 01:07:27 +08:00 |
|