# 任务任务：统一积分与元比例 (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)。
