- 所属产品:
- 版本号: 2.3.9.8
- 版本类型: 正式版
- 安全更新: 否
-
Bug 修复:
修复:货币编辑页“最大持有量”标签显示异常
货币编辑页面中“最大持有量”标签显示为原始 phrase 键名。原因是模板错误引用了通用键 max_amount,与 XenForo 核心 phrase 冲突。现已改为使用插件专属 phrase:hn_currency_max_amount 与 hn_currency_max_amount_explain。
优化:转账手续费显示格式
转账记录中的手续费数值此前直接使用 bcmath 原始字符串显示,例如 0.06000000。现已改为通过 Money::format() 方法进行格式化处理,自动去除尾部多余的零,显示为 0.06。
修复:撤销授权后购买记录仍显示为有效
撤销授权时仅写入 expire_date,未同步更新 purchase_status,导致数据库记录仍保持 purchased 状态。同时购买记录列表查询仅过滤 purchased 状态,导致已撤销记录无法显示。现已修复:撤销授权时同步写入 revoked 状态,并更新查询逻辑,使列表同时显示 purchased 与 revoked 记录。
修复:交易记录 AUTO_INCREMENT ID 异常跳跃
升级脚本与管理员手动迁移同时执行批量 INSERT,InnoDB 在执行 INSERT IGNORE 前会预分配 AUTO_INCREMENT 值,即使未实际插入数据也会推进计数器,导致 ID 从约 4600 跳跃到 8200 以上。现已在批量插入前加入幂等性检查(transaction_hash LIKE 'mj_migration_%'),防止重复执行迁移。 -
兼容性变更:
完善:手动迁移功能覆盖完整数据范围
此前管理员手动执行 migrateMJCredits() 时,仅迁移部分数据。现已将原升级脚本中的迁移逻辑统一整合到该方法中,确保一次迁移即可完整处理所有数据,包括:用户积分余额与每日签到时间
资源定价与货币信息
资源购买记录
交易历史记录
货币配置与积分事件规则
帖子悬赏数据
充值购买记录
资源支付类型标记
红包与红包领取记录
权限前缀(mjCredits → hnCredits)迁移
相关缓存重建
升级脚本现在仅负责 数据库结构变更,所有业务数据迁移统一通过 后台迁移工具 执行。
架构调整:升级脚本不再执行数据迁移
原升级脚本 upgrade2000000Step1–4 同时包含 Schema 修改与数据迁移逻辑,导致每次升级都会重复迁移数据。现已重构为仅执行数据库结构变更(ALTER TABLE),所有数据迁移统一由 migrateMJCredits() 方法负责。
没有评论。