bindbox-game/docs/standardize_points_ratio/TASK_standardize_points_ratio.md

2.0 KiB

任务任务:统一积分与元比例 (Task List)

0. 预备工作

  • 确认数据备份: 提醒用户备份数据库。
  • 代码同步: 确保本地代码是最新的。

1. 后端改造 (Backend)

  • 修改核心计算包 (internal/pkg/points/convert.go)
    • 修改 CentsToPoints(cents * rate) / 100
    • 修改 PointsToCents(points * 100) / rate
    • 修改 RefundPointsAmount 适配新公式
  • 业务逻辑适配 (internal/service/user)
    • 检查 points_convert.go 中的 CentsToPoints 调用,确保读取配置 Key points_exchange_rate (或复用旧 Key 但明确含义)。
    • 检查 points_consume.go 等文件,确保无其他硬编码。
  • 单元测试
    • 运行 internal/pkg/points 的测试,确保 100 分钱在 Rate=1 时转为 1 积分。

2. 管理后台改造 (Admin Frontend)

  • 更新系统配置页 (web/admin/src/views/system/configs/index.vue)
    • 新增 "积分配置" 卡片。
    • 添加 points_exchange_rate 编辑项。
    • 添加说明: "1元 = ? 积分"。

3. 小程序改造 (Mini Program)

  • 全局搜索积分展示
    • 搜索 / 100* 0.01 相关的积分代码。
  • 修复工具函数
    • 修改 utils/format.js 或类似文件中的 formatPoints
  • 修复页面展示
    • pages-user/points/index.vue (积分明细)
    • pages-user/orders/detail.vue (如果有积分抵扣展示)
    • 其他涉及积分展示的页面。

4. 数据迁移 (Migration)

  • 提供 SQL 脚本
    • 存入 docs/standardize_points_ratio/migration.sql
  • (Optional) 执行迁移
    • 根据用户指示决定是否执行。

5. 验证 (Verification)

  • 后端验证
    • 重启服务。
    • 模拟支付 1 元,查看数据库增加 1 积分。
  • 前端验证
    • 查看积分列表,显示为 1 (而不是 0.01 或 100)。