主题
会员积分 PRD
文档信息
| 项目 | 内容 |
|---|---|
| 产品名称 | PMForge - 会员积分 |
| 文档版本 | v2.0 |
| 创建日期 | 2026-09-21 |
| 最后更新 | 2026-09-24 |
| 文档状态 | 评审中 |
| 优先级 | P1 |
一、功能概述
1.1 功能定位
如果把会员体系比作一家银行的客户体系,那么积分就是这家银行发行的"内部货币"——它有一套完整的"发行→流通→回收→销毁"生命周期。会员积分模块就是管理这套"内部货币"的中枢系统。
具体来说,本模块承担三大职责:
- 积分经济系统管理:定义积分的"发行规则"(签到送多少、消费返多少、邀请奖多少)和"回收规则"(过期清零、兑换消耗),确保积分经济系统健康运转,既不通胀(积分泛滥贬值)也不通缩(积分稀缺无人参与)
- 经验值成长系统管理:经验值是会员等级晋升的唯一依据,本模块管理各类场景的经验值发放和扣减规则,驱动会员等级体系运转
- 积分消耗场景运营:通过积分商城、积分抵扣等场景,让积分"花得出去",形成"赚积分→花积分→赚更多积分"的正向循环
与会员管理模块的关系:会员管理(05-01)负责"人的管理"——会员信息、等级、标签、分组;本模块负责"积分和经验值的管理"——规则配置、流水记录、统计分析。两者通过 member_user 表关联,共同构成完整的会员运营体系。
1.2 目标用户
| 用户类型 | 核心诉求 | 典型操作 |
|---|---|---|
| 超级管理员 | 把控积分经济系统平衡,防止积分通胀或通缩 | 配置全局积分规则、审核大额积分调整、查看积分统计 |
| 运营人员 | 灵活配置积分活动,提升会员活跃度和消费转化 | 管理积分规则、配置积分商城、手动发放积分、查看统计报表 |
| 客服人员 | 快速处理会员积分异议,提升服务效率 | 查询积分流水、手动调整积分、处理兑换售后 |
| 普通会员(C端) | 了解积分获取途径,高效使用积分,享受积分权益 | 签到赚积分、完成任务、积分兑换商品、查看积分明细 |
1.3 业务价值
| 价值维度 | 具体描述 | 衡量指标 |
|---|---|---|
| 提升用户活跃度 | 签到、任务等场景持续激励用户回访 | 日活提升率、签到率 |
| 增强用户留存 | 积分与经验值的累积形成沉没成本,降低流失 | 30日留存率、积分余额分布 |
| 促进消费转化 | 积分抵扣、积分兑换刺激用户下单 | 积分抵扣订单占比、兑换转化率 |
| 驱动等级成长 | 经验值驱动等级晋升,增强用户荣誉感 | 等级晋升率、高等级会员占比 |
| 精细化运营 | 积分数据统计为运营决策提供依据 | 积分发放/消耗比、过期率 |
| 降低获客成本 | 邀请好友奖励机制实现用户裂变 | 邀请注册转化率、获客成本 |
1.4 功能范围
| 功能分类 | 后台管理端 | 前台用户端 |
|---|---|---|
| 积分规则配置 | ✅ | ❌ |
| 经验值规则配置 | ✅ | ❌ |
| 积分记录查询 | ✅ | ✅(仅本人) |
| 经验值记录查询 | ✅ | ✅(仅本人) |
| 积分商城管理 | ✅ | ✅(浏览/兑换) |
| 手动积分调整 | ✅ | ❌ |
| 批量积分调整 | ✅ | ❌ |
| 积分统计分析 | ✅ | ❌ |
| 积分中心 | ❌ | ✅ |
| 签到赚积分 | ❌ | ✅ |
| 任务中心 | ❌ | ✅ |
二、用户场景
2.1 用户角色
| 角色 | 描述 | 核心诉求 |
|---|---|---|
| 超级管理员 | 系统最高权限管理者 | 配置积分体系全局规则,把控积分经济系统平衡 |
| 运营人员 | 负责会员运营的团队成员 | 灵活配置积分活动,管理积分商城,提升会员活跃度 |
| 客服人员 | 处理会员问题的支持团队 | 快速查询积分流水,处理积分异议与调整 |
| 普通会员 | 平台注册用户(C端用户) | 了解积分获取途径,高效使用积分,享受积分权益 |
2.2 使用场景
场景1:运营李姐配置签到积分规则
- 用户:运营人员李姐
- 场景:平台上线初期 → 李姐需要配置签到积分规则 → 进入"积分管理 → 规则配置" → 选择"签到"业务类型 → 设置每次签到获得 10 积分、5 经验值 → 启用规则 → 保存
- 期望:规则保存后立即生效,用户下次签到时自动获得对应积分和经验值
- 验收标准:
- AC-01:规则保存后,用户签到时积分增加量与配置值一致
- AC-02:禁用规则后,对应场景不再发放积分
- AC-03:同一业务类型只能有一条生效规则
场景2:学员小张每日签到获取积分
- 用户:普通会员小张
- 场景:小张打开APP → 进入签到页面 → 点击"签到"按钮 → 页面显示"签到成功!获得 10 积分 + 5 经验值" → 查看签到日历,连续签到3天 → 第7天获得额外奖励
- 期望:签到操作即时获得积分和经验值,连续签到有额外奖励,界面有明确的获得感
- 验收标准:
- AC-01:签到后积分和经验值即时到账,流水记录可查
- AC-02:同一自然日内重复点击签到按钮,不会重复发放(幂等性)
- AC-03:连续签到天数正确累计,断签后重置为0
- AC-04:签到日历正确展示当月签到记录
场景3:学员小张积分兑换商品
- 用户:普通会员小张
- 场景:小张进入积分商城 → 浏览积分商品列表 → 选择"PMForge定制笔记本"(500积分) → 点击"立即兑换" → 填写收货地址 → 确认兑换 → 积分扣减500 → 查看兑换记录 → 等待发货
- 期望:积分不足时明确提示,兑换成功后积分即时扣减,可在兑换记录中查看物流信息
- 验收标准:
- AC-01:积分不足时,兑换按钮置灰或提示"积分不足"
- AC-02:兑换成功后积分即时扣减,流水记录类型为"积分兑换"
- AC-03:库存为0时商品显示"已兑完",不可兑换
- AC-04:兑换记录状态流转正确(待审核→待发货→已发货→已完成)
场景4:客服小刘处理积分异议
- 用户:客服人员小刘
- 场景:会员投诉"我昨天消费了100元,应该返100积分,但只收到50" → 小刘在后台搜索该会员 → 查看积分流水记录 → 发现消费积分规则配置为"每消费2元返1积分" → 向会员解释规则 → 会员认可
- 期望:积分流水清晰可查,能快速定位积分变动原因
- 验收标准:
- AC-01:积分流水包含业务类型、变动数量、变动后余额、关联业务编号
- AC-02:支持按会员、业务类型、时间范围筛选
- AC-03:流水记录不可修改或删除
场景5:运营李姐手动调整积分
- 用户:运营人员李姐
- 场景:平台做活动,需要给所有VIP会员发放1000积分 → 李姐进入"积分管理 → 手动调整" → 选择批量调整 → 按标签"VIP会员"筛选 → 输入调整积分1000 → 填写原因"2026年双十一VIP专属福利" → 预览影响人数 → 确认提交
- 期望:支持批量操作,调整即时生效,流水记录完整
- 验收标准:
- AC-01:批量调整支持按筛选条件或Excel导入两种方式
- AC-02:单次批量调整不超过500人,超出提示分批操作
- AC-03:每条流水记录包含操作人信息和调整原因
- AC-04:扣减积分时,余额不足的用户跳过并记录失败原因
场景6:运营李姐查看积分统计报表
- 用户:运营人员李姐
- 场景:月度运营复盘 → 李姐进入"积分统计"页面 → 查看本月积分发放总量(50万)、消耗总量(30万)、净增量(20万) → 查看发放来源分布(签到40%、消费35%、活动20%、其他5%) → 查看积分余额分布 → 发现7天内有10万积分即将过期 → 决定发送过期提醒通知
- 期望:报表数据准确、可视化展示清晰,支持导出Excel
- 验收标准:
- AC-01:统计数据延迟不超过5分钟
- AC-02:支持按日/周/月维度切换查看
- AC-03:发放统计按业务类型拆分来源
- AC-04:过期预警展示7天内和30天内的过期积分量和涉及用户数
场景7:学员小张完成每日任务领取奖励
- 用户:普通会员小张
- 场景:小张进入任务中心 → 看到"浏览3个商品(+20积分)"任务 → 去浏览了3个商品 → 返回任务中心,任务状态变为"可领取" → 点击"领取奖励" → 20积分到账
- 期望:任务完成状态实时更新,奖励领取流程简洁
- 验收标准:
- AC-01:任务完成状态实时检测并更新
- AC-02:奖励领取后积分即时到账
- AC-03:每日00:00自动重置每日任务状态
- AC-04:已领取的任务不可重复领取
三、功能需求
3.1 后台管理端
3.1.1 功能清单
| 功能 | 优先级 | 说明 |
|---|---|---|
| 积分规则配置 | P0 | 按业务类型配置积分获取/消耗规则 |
| 经验值规则配置 | P0 | 按业务类型配置经验值获取规则 |
| 积分记录查询 | P0 | 分页查询积分流水,支持多维度筛选 |
| 积分记录导出 | P1 | 导出积分流水Excel |
| 经验值记录查询 | P1 | 分页查询经验值流水 |
| 经验值记录导出 | P1 | 导出经验值流水Excel |
| 手动积分调整 | P0 | 单个会员积分增减 |
| 批量积分调整 | P1 | 批量会员积分增减 |
| 积分商城活动管理 | P1 | 创建/编辑/关闭积分商城活动 |
| 积分兑换记录管理 | P1 | 查看兑换记录、审核、发货 |
| 积分统计分析 | P1 | 积分发放/消耗/余额/过期统计 |
3.1.2 积分规则配置
页面描述:
- 以卡片列表形式展示各业务类型的积分规则配置
- 每张卡片展示:业务类型名称、当前积分值、经验值、状态
- 点击"编辑"弹出配置弹窗
页面线框图:

编辑弹窗线框图:

业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 同一业务类型在同一租户下只能有一条配置规则 | 避免规则冲突,确保积分发放确定性 |
| R-02 | 积分值和经验值不能同时为0 | 无意义的规则不应存在,避免配置错误 |
| R-03 | 按比例计算时,积分值表示"每X元=1积分"中的X | 统一比例计算的基数含义,减少歧义 |
| R-04 | 每日上限为0表示不限制 | 部分场景(如消费)不应限制 |
| R-05 | 规则修改后即时生效,不影响已发放的积分 | 积分流水不可变,新规则只影响未来行为 |
| R-06 | 禁用规则后,对应场景不再发放积分和经验值 | 运营需要灵活开关各类积分活动 |
积分业务类型枚举:
| 类型编码 | 类型名称 | 方向 | 说明 |
|---|---|---|---|
| 1 | 签到 | 增加 | 每日签到获得积分 |
| 2 | 管理员修改 | 增加/减少 | 管理员手动调整积分 |
| 11 | 订单积分抵扣 | 减少 | 下单时使用积分抵扣金额 |
| 12 | 订单积分抵扣退还 | 增加 | 整单取消时退还抵扣积分 |
| 13 | 订单积分抵扣退还(部分) | 增加 | 单个商品退款时退还对应积分 |
| 21 | 订单积分奖励 | 增加 | 支付订单后赠送积分 |
| 22 | 订单积分奖励退还 | 减少 | 整单取消时扣除赠送积分 |
| 23 | 订单积分奖励退还(部分) | 减少 | 单个商品退款时扣除赠送积分 |
| 31 | 评价奖励 | 增加 | 完成订单评价后获得积分 |
| 32 | 分享奖励 | 增加 | 分享内容后获得积分 |
| 33 | 邀请注册奖励 | 增加 | 邀请新用户注册后获得积分 |
| 41 | 积分兑换 | 减少 | 积分商城兑换商品消耗积分 |
| 42 | 兑换退还 | 增加 | 兑换取消/失败后退还积分 |
| 51 | 积分过期 | 减少 | 超过有效期自动清零 |
| 52 | 过期退还 | 增加 | 过期积分恢复(管理员操作) |
经验值业务类型枚举:
| 类型编码 | 类型名称 | 方向 | 说明 |
|---|---|---|---|
| 0 | 管理员调整 | 增加/减少 | 管理员手动调整经验值 |
| 1 | 邀新奖励 | 增加 | 邀请好友注册获得经验值 |
| 4 | 签到奖励 | 增加 | 每日签到获得经验值 |
| 5 | 抽奖奖励 | 增加 | 参与抽奖活动获得经验值 |
| 11 | 下单奖励 | 增加 | 支付订单后获得经验值 |
| 12 | 下单奖励退还 | 减少 | 整单取消时扣除经验值 |
| 13 | 下单奖励退还(部分) | 减少 | 单个商品退款时扣除经验值 |
接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 获取积分规则列表 | GET | /admin-api/member/point/setting/list | 获取所有积分规则配置 |
| 更新积分规则 | PUT | /admin-api/member/point/setting/update | 更新指定业务类型的积分规则 |
| 获取经验值规则列表 | GET | /admin-api/member/experience/setting/list | 获取所有经验值规则配置 |
| 更新经验值规则 | PUT | /admin-api/member/experience/setting/update | 更新指定业务类型的经验值规则 |
3.1.3 积分记录查询
页面描述:
- 顶部:搜索栏(会员昵称/手机号、业务类型、变动方向、时间范围)
- 主体:积分流水列表
- 底部:分页组件 + 导出按钮
页面线框图:

业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 流水记录一经生成不可修改或删除 | 积分流水属于财务级数据,必须保证审计可追溯 |
| R-02 | 每次积分变动自动记录变动后余额(total_point) | 方便对账和追溯,无需实时计算 |
| R-03 | 通过 biz_id 和 biz_type 可关联到具体业务单据 | 支持从流水反查业务来源,处理异议时有据可查 |
| R-04 | 默认按创建时间倒序排列 | 最新记录优先展示,符合查询习惯 |
| R-05 | 仅展示当前租户下的会员积分记录 | 多租户数据隔离要求 |
| R-06 | 单次导出不超过10000条 | 防止大数据量导出导致系统压力 |
接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 获取积分记录分页 | GET | /admin-api/member/point/record/page | 后台分页查询积分流水 |
| 积分记录导出 | GET | /admin-api/member/point/record/export-excel | 导出积分流水为Excel |
请求参数(分页查询):
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| userId | Long | 否 | 会员编号 |
| nickname | String | 否 | 会员昵称(模糊匹配) |
| mobile | String | 否 | 手机号(模糊匹配) |
| bizType | Integer | 否 | 业务类型 |
| direction | Integer | 否 | 变动方向(1-增加 2-减少) |
| createTime | LocalDateTime[] | 否 | 创建时间范围 |
| pageNo | Integer | 是 | 页码 |
| pageSize | Integer | 是 | 每页条数 |
3.1.4 经验值记录查询
页面描述:
- 与积分记录查询页面结构类似
- 搜索栏增加业务类型筛选(签到/消费/邀请/管理员调整等)
- 列表展示经验值变动明细
业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 流水记录不可修改或删除 | 与积分流水一致,保证审计可追溯 |
| R-02 | 经验值累计达到等级阈值时自动触发等级晋升 | 等级体系的核心驱动逻辑 |
| R-03 | 经验值在自然场景下只增不减 | 签到、消费、邀请等只增加;仅退单和管理员扣减时减少 |
接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 获取经验值记录分页 | GET | /admin-api/member/experience/record/page | 分页查询经验值流水 |
| 获取经验值记录详情 | GET | /admin-api/member/experience/record/get | 根据ID查询详情 |
| 经验值记录导出 | GET | /admin-api/member/experience/record/export-excel | 导出经验值流水为Excel |
3.1.5 手动积分调整
页面描述:
- 单个调整:在会员列表操作列点击"调整积分",弹窗输入调整值
- 批量调整:独立页面,支持按筛选条件或Excel导入
单个调整弹窗线框图:

批量调整页面线框图:

业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 调整原因必填,记录到积分流水的 description 字段 | 所有手动调整必须有据可查,满足审计要求 |
| R-02 | 积分流水的 biz_id 记录操作人 user_id | 可追溯到具体操作人 |
| R-03 | 扣减积分后余额不能为负数 | 积分余额不允许为负,防止系统数据异常 |
| R-04 | 单次批量调整不超过500人 | 防止大批量操作导致系统压力或误操作影响面过大 |
| R-05 | 单次调整积分超过阈值(默认10000)需走审批流程 | 大额积分调整需要上级审批,防止滥用 |
| R-06 | 所有手动调整操作记录到操作日志 | 完整的审计链路:操作日志 + 积分流水双重记录 |
| R-07 | 调整提交后积分立即变动 | 运营操作需要即时反馈 |
| R-08 | 可选择同步调整经验值 | 部分场景需要积分和经验值同步变动 |
接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 更新会员积分 | PUT | /admin-api/member/user/update-point | 单个会员积分调整 |
| 批量调整积分 | POST | /admin-api/member/point/record/batch-update | 批量积分调整 |
| 下载批量调整模板 | GET | /admin-api/member/point/record/import-template | 下载Excel模板 |
| 获取积分调整审批列表 | GET | /admin-api/member/point/adjust/page | 查询审批记录 |
| 审批积分调整 | PUT | /admin-api/member/point/adjust/audit | 审批通过/拒绝 |
3.1.6 积分商城管理
页面描述:
- 活动列表页:展示所有积分商城活动,支持按状态筛选
- 活动编辑页:选择关联商品SPU/SKU、设置所需积分、兑换价格、库存、活动时间
活动列表线框图:

业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 积分商品关联商品SPU和SKU,复用商品模块的管理能力 | 避免重复建设商品管理,统一商品信息来源 |
| R-02 | 支持纯积分兑换和积分+现金混合模式 | 满足不同运营场景需求 |
| R-03 | 活动维度的库存独立管理,兑换成功即扣减库存 | 积分商城库存与商品主库存分离,互不影响 |
| R-04 | 兑换取消/退款时自动回滚库存 | 保证库存数据准确性 |
| R-05 | 可设置每人兑换次数上限 | 防止单个用户大量兑换,保证公平性 |
| R-06 | 高价值商品可开启兑换审核 | 高价值商品需要人工审核,防止恶意兑换 |
| R-07 | 多SKU时列表展示最低所需积分 | 让用户直观了解最低兑换门槛 |
| R-08 | 支持自定义商品展示排序 | 运营可将热门商品置顶展示 |
接口设计(后台管理端):
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 创建积分商城活动 | POST | /admin-api/promotion/point-activity/create | 创建积分商城活动 |
| 更新积分商城活动 | PUT | /admin-api/promotion/point-activity/update | 更新活动信息 |
| 关闭积分商城活动 | PUT | /admin-api/promotion/point-activity/close | 关闭指定活动 |
| 删除积分商城活动 | DELETE | /admin-api/promotion/point-activity/delete | 删除指定活动 |
| 获取活动详情 | GET | /admin-api/promotion/point-activity/get | 获取活动详情及关联商品 |
| 获取活动分页 | GET | /admin-api/promotion/point-activity/page | 分页查询活动列表 |
3.1.7 积分统计分析
页面描述:
- 概览面板:今日发放量、今日消耗量、总发放量、总消耗量、当前总余额
- 图表区域:发放趋势图、消耗趋势图、余额分布图、过期预警
统计面板线框图:

业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 统计数据基于积分流水表聚合计算 | 保证数据来源唯一,避免多数据源不一致 |
| R-02 | 统计数据准实时,延迟不超过5分钟 | 采用缓存+定时刷新,平衡实时性和系统性能 |
| R-03 | 发放统计按业务类型拆分来源 | 运营需要了解各渠道的积分发放占比 |
| R-04 | 余额分布按区间分段:0-100、101-500、501-1000、1001-5000、5000+ | 了解积分分布集中度,优化积分策略 |
| R-05 | 过期预警展示7天内和30天内的数据 | 给运营留出足够的提醒窗口 |
| R-06 | 统计数据按租户隔离 | 多租户架构要求 |
接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 获取积分概览 | GET | /admin-api/member/point/statistics/overview | 获取积分概览数据 |
| 获取积分发放统计 | GET | /admin-api/member/point/statistics/grant | 按时间范围和类型统计发放量 |
| 获取积分消耗统计 | GET | /admin-api/member/point/statistics/consume | 按时间范围和类型统计消耗量 |
| 获取积分余额分布 | GET | /admin-api/member/point/statistics/balance-distribution | 按余额区间统计用户分布 |
| 获取积分过期预警 | GET | /admin-api/member/point/statistics/expiry-warning | 获取即将过期的积分统计 |
| 积分统计导出 | GET | /admin-api/member/point/statistics/export-excel | 导出统计数据为Excel |
3.2 前台用户端
3.2.1 功能清单
| 功能 | 优先级 | 说明 |
|---|---|---|
| 积分中心 | P0 | 查看积分余额、经验值、明细记录 |
| 签到赚积分 | P0 | 每日签到获取积分和经验值 |
| 任务中心 | P1 | 完成每日任务领取积分奖励 |
| 积分商城 | P1 | 浏览积分商品、兑换商品 |
| 积分明细 | P0 | 查看积分变动记录 |
| 经验值明细 | P1 | 查看经验值变动记录 |
3.2.2 积分中心
页面描述:
- 顶部:积分余额、经验值、当前等级、升级进度
- 中部:快捷入口(签到、积分商城、任务中心)
- 底部:积分明细/经验值明细标签切换
页面线框图:

接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 获取用户积分记录分页 | GET | /app-api/member/point/record/page | 当前用户积分明细 |
| 获取用户经验值记录分页 | GET | /app-api/member/experience/record/page | 当前用户经验值明细 |
| 获取积分概览 | GET | /app-api/member/point/overview | 积分余额、经验值、等级信息 |
| 获取积分攻略 | GET | /app-api/member/point/guide | 积分获取途径列表 |
3.2.3 签到赚积分
页面描述:
- 顶部:签到按钮 + 今日签到状态
- 中部:连续签到进度条 + 7天奖励预览
- 底部:本月签到日历
页面线框图:

业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 每个自然日只能签到一次,以服务器时间00:00:00为界 | 统一签到时间标准,避免时区争议 |
| R-02 | 签到获得固定积分和经验值(由规则配置决定) | 运营可灵活调整签到奖励 |
| R-03 | 连续签到天数达到指定阈值时,额外奖励积分和经验值 | 激励用户持续签到,提升留存 |
| R-04 | 中断签到后连续天数重置为0 | 断签惩罚机制,增强连续签到的稀缺感 |
| R-05 | 签到操作需保证幂等性,防止并发重复签到 | 防止网络重试导致重复发放 |
| R-06 | V1.0暂不支持补签功能 | 降低V1.0复杂度,后续版本可扩展 |
接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 每日签到 | POST | /app-api/member/sign-in/create | 执行签到,自动发放积分和经验值 |
| 获取签到信息 | GET | /app-api/member/sign-in/get-sign-in-info | 签到日历、连续天数、今日是否已签到 |
3.2.4 任务中心
页面描述:
- 每日任务列表:展示任务名称、奖励积分、完成状态
- 成长任务:一次性任务(新手引导类)
业务规则:
| 规则编号 | 规则描述 | 设计原因 |
|---|---|---|
| R-01 | 任务类型分为每日任务(每日重置)和一次性任务(新手引导) | 区分日常运营和新手引导两类场景 |
| R-02 | 任务状态流转:未开始 → 进行中 → 已完成(待领取)→ 已领取 | 清晰的任务生命周期 |
| R-03 | 领取奖励后积分和经验值即时到账 | 即时反馈增强用户获得感 |
| R-04 | 每日00:00自动重置每日任务状态 | 每日任务需要每天重新完成 |
| R-05 | 后台可配置任务类型、完成条件、奖励值 | 运营灵活配置任务体系 |
| R-06 | 每日可完成的同类任务次数有上限 | 防止刷任务薅积分 |
接口设计:
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 获取任务列表 | GET | /app-api/member/task/list | 当前用户任务列表及完成状态 |
| 领取任务奖励 | POST | /app-api/member/task/receive-reward | 领取积分和经验值奖励 |
| 获取任务概览 | GET | /app-api/member/task/overview | 今日已完成数、待领取数 |
四、非功能需求
4.1 性能要求
| 场景 | 指标 | 目标值 | 实现思路 |
|---|---|---|---|
| 积分记录分页查询 | 响应时间 | < 500ms | 合理索引 + 分页限制 |
| 积分变更操作 | 响应时间 | < 200ms | 乐观锁/分布式锁保证原子性 |
| 签到操作 | 响应时间 | < 300ms | 含积分和经验值发放全流程 |
| 积分商城列表 | 响应时间 | < 500ms | 缓存热点商品数据 |
| 积分统计报表 | 响应时间 | < 3s | 缓存 + 异步计算 |
| 并发签到 | QPS | ≥ 1000 | Redis分布式锁 + 异步写库 |
| 积分扣减 | 并发安全 | 不超扣 | 数据库乐观锁(version字段) |
| 用户积分余额 | 缓存策略 | TTL 5分钟 | 变更时主动失效缓存 |
4.2 安全要求
| 安全项 | 要求 | 实现思路 |
|---|---|---|
| 积分变更鉴权 | 所有积分变更接口需登录鉴权 | Spring Security + Token校验 |
| 后台操作鉴权 | 后台接口需对应权限标识 | RBAC权限模型 |
| 防重复签到 | 服务端校验签到幂等性 | Redis分布式锁(key=userId+date) |
| 防积分超扣 | 扣减前校验余额 + 并发控制 | 数据库乐观锁 |
| 操作审计 | 管理员调整记录完整审计日志 | 操作日志 + 积分流水双重记录 |
| 数据隔离 | 多租户数据严格隔离 | SQL层强制tenant_id条件 |
| 接口限流 | 签到/任务领取等高频接口限流 | Redis + 滑动窗口限流 |
| 兑换防刷 | 积分兑换接口频率限制 | 限流 + 验证码校验 |
4.3 兼容性要求
| 兼容项 | 要求 |
|---|---|
| 数据库 | 支持 MySQL 5.7+、PostgreSQL 12+、Oracle 11g+ |
| 主键策略 | 使用 @KeySequence 注解兼容多种数据库主键自增策略 |
| 管理端 | 兼容 Chrome 80+、Firefox 78+、Edge 80+ |
| 移动端H5 | 适配 iOS 12+、Android 8+ 系统浏览器 |
| 小程序 | 适配微信基础库 2.15.0+ |
| 时区 | 签到日期以服务器配置时区为准 |
| 单位 | 积分单位为"个",金额单位为"分" |
五、数据设计
5.1 核心表关系

5.2 积分记录表(member_point_record)
| 字段名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id | BIGINT | 是 | 自增 | 主键 |
| user_id | BIGINT | 是 | - | 用户编号,关联 member_user.id |
| biz_id | VARCHAR(64) | 否 | NULL | 业务编码,关联具体业务单据或操作人 |
| biz_type | INT | 是 | - | 业务类型,对应 MemberPointBizTypeEnum 枚举 |
| title | VARCHAR(128) | 否 | NULL | 积分变动标题,如"签到获得10积分" |
| description | VARCHAR(512) | 否 | NULL | 积分变动详细描述 |
| point | INT | 是 | - | 变动积分值,正数=获得,负数=消耗 |
| total_point | INT | 是 | - | 变动后的积分余额 |
| creator | VARCHAR(64) | 否 | NULL | 创建者 |
| create_time | DATETIME | 是 | CURRENT_TIMESTAMP | 创建时间 |
| updater | VARCHAR(64) | 否 | NULL | 更新者 |
| update_time | DATETIME | 是 | CURRENT_TIMESTAMP | 更新时间 |
| deleted | BIT(1) | 是 | 0 | 逻辑删除标记 |
| tenant_id | BIGINT | 是 | - | 租户编号 |
约束设计:
| 约束类型 | 约束名 | 字段 | 说明 |
|---|---|---|---|
| 主键 | pk_point_record | id | 自增主键 |
| 普通索引 | idx_user_id | user_id | 按用户查询积分记录 |
| 普通索引 | idx_biz | biz_type, biz_id | 按业务类型和编号查询 |
| 普通索引 | idx_create_time | create_time | 按时间范围查询 |
| 普通索引 | idx_tenant_id | tenant_id | 租户隔离查询 |
5.3 经验值记录表(member_experience_record)
| 字段名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id | BIGINT | 是 | 自增 | 主键 |
| user_id | BIGINT | 是 | - | 用户编号,关联 member_user.id |
| biz_id | VARCHAR(64) | 否 | NULL | 业务编号 |
| biz_type | INT | 是 | - | 业务类型,对应 MemberExperienceBizTypeEnum 枚举 |
| title | VARCHAR(128) | 否 | NULL | 经验值变动标题 |
| description | VARCHAR(512) | 否 | NULL | 经验值变动详细描述 |
| experience | INT | 是 | - | 变动经验值,正数=获得,负数=扣减 |
| total_experience | INT | 是 | - | 变动后的经验值余额 |
| creator | VARCHAR(64) | 否 | NULL | 创建者 |
| create_time | DATETIME | 是 | CURRENT_TIMESTAMP | 创建时间 |
| updater | VARCHAR(64) | 否 | NULL | 更新者 |
| update_time | DATETIME | 是 | CURRENT_TIMESTAMP | 更新时间 |
| deleted | BIT(1) | 是 | 0 | 逻辑删除标记 |
| tenant_id | BIGINT | 是 | - | 租户编号 |
约束设计:
| 约束类型 | 约束名 | 字段 | 说明 |
|---|---|---|---|
| 主键 | pk_experience_record | id | 自增主键 |
| 普通索引 | idx_user_id | user_id | 按用户查询经验值记录 |
| 普通索引 | idx_biz | biz_type, biz_id | 按业务类型和编号查询 |
| 普通索引 | idx_create_time | create_time | 按时间范围查询 |
| 普通索引 | idx_tenant_id | tenant_id | 租户隔离查询 |
5.4 积分配置表(member_point_setting)
| 字段名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id | BIGINT | 是 | 自增 | 主键 |
| type | TINYINT | 是 | - | 积分类型:1-获取 2-消耗 |
| biz_type | INT | 是 | - | 业务类型编码 |
| point | INT | 是 | - | 积分值(固定值或比例基数) |
| status | TINYINT | 是 | 1 | 状态:0-禁用 1-启用 |
| creator | VARCHAR(64) | 否 | NULL | 创建者 |
| create_time | DATETIME | 是 | CURRENT_TIMESTAMP | 创建时间 |
| updater | VARCHAR(64) | 否 | NULL | 更新者 |
| update_time | DATETIME | 是 | CURRENT_TIMESTAMP | 更新时间 |
| deleted | BIT(1) | 是 | 0 | 逻辑删除标记 |
| tenant_id | BIGINT | 是 | - | 租户编号 |
约束设计:
| 约束类型 | 约束名 | 字段 | 说明 |
|---|---|---|---|
| 主键 | pk_point_setting | id | 自增主键 |
| 唯一索引 | uk_biz_type | biz_type, tenant_id | 同一租户下业务类型唯一 |
5.5 积分商城商品表(promotion_point_product)
| 字段名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id | BIGINT | 是 | 自增 | 主键 |
| activity_id | BIGINT | 是 | - | 积分商城活动编号 |
| spu_id | BIGINT | 是 | - | 商品SPU编号 |
| sku_id | BIGINT | 是 | - | 商品SKU编号 |
| count | INT | 是 | - | 每人可兑换次数 |
| point | INT | 是 | - | 所需兑换积分 |
| price | INT | 否 | 0 | 所需兑换金额,单位:分 |
| stock | INT | 是 | - | 商品库存 |
| activity_status | TINYINT | 是 | 1 | 商品状态:0-下架 1-上架 |
| creator | VARCHAR(64) | 否 | NULL | 创建者 |
| create_time | DATETIME | 是 | CURRENT_TIMESTAMP | 创建时间 |
| updater | VARCHAR(64) | 否 | NULL | 更新者 |
| update_time | DATETIME | 是 | CURRENT_TIMESTAMP | 更新时间 |
| deleted | BIT(1) | 是 | 0 | 逻辑删除标记 |
| tenant_id | BIGINT | 是 | - | 租户编号 |
约束设计:
| 约束类型 | 约束名 | 字段 | 说明 |
|---|---|---|---|
| 主键 | pk_point_product | id | 自增主键 |
| 普通索引 | idx_activity_id | activity_id | 按活动查询关联商品 |
| 普通索引 | idx_spu_id | spu_id | 按SPU查询关联积分商品 |
5.6 积分兑换记录表(member_point_exchange)
| 字段名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| id | BIGINT | 是 | 自增 | 主键 |
| user_id | BIGINT | 是 | - | 用户编号 |
| product_id | BIGINT | 是 | - | 积分商品编号 |
| product_name | VARCHAR(256) | 是 | - | 商品名称(冗余快照) |
| point | INT | 是 | - | 消耗积分 |
| status | TINYINT | 是 | 0 | 兑换状态(见数据字典) |
| exchange_time | DATETIME | 是 | - | 兑换时间 |
| creator | VARCHAR(64) | 否 | NULL | 创建者 |
| create_time | DATETIME | 是 | CURRENT_TIMESTAMP | 创建时间 |
| updater | VARCHAR(64) | 否 | NULL | 更新者 |
| update_time | DATETIME | 是 | CURRENT_TIMESTAMP | 更新时间 |
| deleted | BIT(1) | 是 | 0 | 逻辑删除标记 |
| tenant_id | BIGINT | 是 | - | 租户编号 |
约束设计:
| 约束类型 | 约束名 | 字段 | 说明 |
|---|---|---|---|
| 主键 | pk_point_exchange | id | 自增主键 |
| 普通索引 | idx_user_id | user_id | 按用户查询兑换记录 |
| 普通索引 | idx_product_id | product_id | 按商品查询兑换记录 |
| 普通索引 | idx_status | status | 按状态筛选兑换记录 |
| 普通索引 | idx_exchange_time | exchange_time | 按兑换时间范围查询 |
5.7 数据字典
积分兑换状态(member_point_exchange.status):
| 状态码 | 状态名称 | 说明 |
|---|---|---|
| 0 | 待审核 | 兑换提交后等待运营人员审核 |
| 1 | 待发货 | 审核通过,等待发货 |
| 2 | 已发货 | 商品已发出 |
| 3 | 已完成 | 用户确认收货,兑换流程结束 |
| 4 | 审核拒绝 | 审核未通过,积分退回 |
| 5 | 已取消 | 用户主动取消兑换,积分退回 |
积分配置状态(member_point_setting.status):
| 状态码 | 状态名称 | 说明 |
|---|---|---|
| 0 | 禁用 | 规则不生效,对应业务场景不发放积分 |
| 1 | 启用 | 规则生效,对应业务场景按配置发放积分 |
六、跨模块联动
6.1 集成模块清单
| 集成模块 | 集成方式 | 数据流向 | 说明 |
|---|---|---|---|
| 会员管理(05-01) | 数据库关联 | 双向 | member_user 是积分和经验值的归属主体,等级晋升由经验值驱动 |
| 会员签到(05-01) | 内部API调用 | 签到 → 积分 | 签到行为触发积分和经验值发放 |
| 商城模块(06) | 内部API调用 | 双向 | 订单支付触发积分发放;下单时积分抵扣触发积分扣减 |
| 商品模块(06) | 数据库关联 | 单向 | 积分商城商品关联SPU/SKU,复用商品基础信息 |
| 营销模块(06) | 数据库关联 | 单向 | 积分商城活动(promotion_point_activity)管理积分商品 |
| 通知模块(02) | 事件驱动 | 单向 | 积分变动通知、积分过期提醒、兑换发货通知 |
| 定时任务(02) | 定时触发 | 单向 | 积分过期清理、每日任务重置、统计数据刷新 |
| 工作流(03) | API调用 | 单向 | 大额积分调整审批流程 |
| 日志审计(01) | API调用 | 单向 | 管理员积分调整操作记录审计日志 |
6.2 关键业务流程
6.2.1 消费产生积分和经验值

6.2.2 积分兑换商品流程

6.2.3 积分过期处理流程

6.3 数据一致性要求
| 场景 | 一致性要求 | 实现方式 |
|---|---|---|
| 积分扣减 | 强一致性 | 数据库事务 + 乐观锁 |
| 积分发放 | 最终一致性 | 本地事务 + 异步通知 |
| 库存扣减 | 强一致性 | 数据库事务 |
| 等级晋升 | 最终一致性 | 经验值变更后异步检查升级 |
| 积分过期 | 最终一致性 | 定时任务批量处理 |
6.4 内部API接口(跨模块调用)
| 接口名称 | 方法 | 调用方 | 说明 |
|---|---|---|---|
| 增加用户积分 | MemberPointApi.addPoint | 商城、签到、任务 | 订单支付、签到、活动等场景调用 |
| 减少用户积分 | MemberPointApi.reducePoint | 商城、订单 | 积分抵扣、退款扣减等场景调用 |
| 创建积分记录 | MemberPointRecordService.createPointRecord | 内部 | 创建积分流水 |
| 增加用户经验值 | MemberLevelApi.addExperience | 签到、商城 | 签到、消费等场景调用 |
| 减少用户经验值 | MemberLevelApi.reduceExperience | 订单 | 退单等场景调用 |
七、附录
7.1 名词解释
| 名词 | 解释 | 通俗类比 |
|---|---|---|
| 积分(Point) | 用户在平台通过签到、消费、活动等途径获得的虚拟货币,可用于兑换商品或抵扣订单金额 | 就像航空公司的里程,飞行(消费)积累里程,里程可以换机票(兑换商品) |
| 经验值(Experience) | 用户成长值,用于衡量用户在平台的活跃度和贡献度,驱动会员等级晋升 | 就像游戏里的经验值,打怪(消费/签到)积累经验,经验够了就升级 |
| 积分流水 | 每次积分变动的记录,包含变动数量、变动后余额、业务类型等信息 | 就像银行流水,每笔收支都有记录,方便对账 |
| 积分商城 | 用户使用积分兑换商品的功能模块 | 就像机场的免税店,用里程换商品 |
| 积分活动 | 积分商城中的运营活动,关联具体商品SPU/SKU,设置积分和价格 | 就像商场的限时促销活动 |
| 签到 | 用户每日打卡行为,可获得积分和经验值奖励 | 就像上班打卡,每天打卡领全勤奖 |
| 连续签到 | 用户不间断连续签到的天数,达到阈值可获得额外奖励 | 就像健身打卡,连续打卡30天送私教课 |
| 每日任务 | 每日重置的任务列表,完成后可领取积分和经验值奖励 | 就像游戏的每日日常任务,做完领奖励 |
| 积分抵扣 | 用户在下单时使用积分抵扣部分订单金额 | 就像用信用卡积分抵扣年费 |
| 积分过期 | 积分在有效期内未使用则自动清零,有效期规则可配置 | 就像优惠券有有效期,过期就作废了 |
| 手动调整 | 管理员通过后台手动为用户增减积分的操作 | 就像银行柜台手动调整账户余额 |
| SPU | Standard Product Unit,标准产品单元,积分商城中关联的商品 | 就是"商品",比如"iPhone 15"是一个SPU |
| SKU | Stock Keeping Unit,库存量单位,积分商城中实际兑换的商品规格 | 就是"规格",比如"iPhone 15 黑色 256G"是一个SKU |
| biz_type | 业务类型编码,标识积分/经验值变动的业务场景 | 就像银行交易的"交易类型"(转账/消费/退款) |
| tenant_id | 租户编号,实现多租户数据隔离 | 就像不同公司的员工卡,只能在各自公司使用 |
| 乐观锁 | 通过版本号字段防止并发操作导致的数据不一致 | 就像多人编辑文档时的"冲突检测",后提交的人会被告知冲突 |
| 幂等性 | 同一操作执行多次与执行一次的效果相同 | 就像电梯按钮,按多次和按一次效果一样 |
| 分布式锁 | 在分布式系统中保证同一时刻只有一个节点能执行某个操作 | 就像洗手间的门锁,进去一个就锁门,其他人等 |
7.2 接口清单汇总
后台管理端
| 序号 | 接口名称 | 方法 | 路径 | 权限标识 |
|---|---|---|---|---|
| 1 | 获取积分规则列表 | GET | /admin-api/member/point/setting/list | point:setting:query |
| 2 | 更新积分规则 | PUT | /admin-api/member/point/setting/update | point:setting:update |
| 3 | 获取经验值规则列表 | GET | /admin-api/member/experience/setting/list | member:experience-record:query |
| 4 | 更新经验值规则 | PUT | /admin-api/member/experience/setting/update | member:experience-record:query |
| 5 | 获取积分记录分页 | GET | /admin-api/member/point/record/page | point:record:query |
| 6 | 积分记录导出 | GET | /admin-api/member/point/record/export-excel | point:record:export |
| 7 | 获取经验值记录详情 | GET | /admin-api/member/experience/record/get | member:experience-record:query |
| 8 | 获取经验值记录分页 | GET | /admin-api/member/experience/record/page | member:experience-record:query |
| 9 | 经验值记录导出 | GET | /admin-api/member/experience/record/export-excel | member:experience-record:export |
| 10 | 更新会员积分 | PUT | /admin-api/member/user/update-point | member:user:update-point |
| 11 | 批量调整积分 | POST | /admin-api/member/point/record/batch-update | point:record:batch-update |
| 12 | 下载批量调整模板 | GET | /admin-api/member/point/record/import-template | point:record:batch-update |
| 13 | 获取积分调整审批列表 | GET | /admin-api/member/point/adjust/page | point:adjust:query |
| 14 | 审批积分调整 | PUT | /admin-api/member/point/adjust/audit | point:adjust:audit |
| 15 | 获取积分概览 | GET | /admin-api/member/point/statistics/overview | point:statistics:query |
| 16 | 获取积分发放统计 | GET | /admin-api/member/point/statistics/grant | point:statistics:query |
| 17 | 获取积分消耗统计 | GET | /admin-api/member/point/statistics/consume | point:statistics:query |
| 18 | 获取积分余额分布 | GET | /admin-api/member/point/statistics/balance-distribution | point:statistics:query |
| 19 | 获取积分过期预警 | GET | /admin-api/member/point/statistics/expiry-warning | point:statistics:query |
| 20 | 积分统计导出 | GET | /admin-api/member/point/statistics/export-excel | point:statistics:export |
| 21 | 创建积分商城活动 | POST | /admin-api/promotion/point-activity/create | promotion:point-activity:create |
| 22 | 更新积分商城活动 | PUT | /admin-api/promotion/point-activity/update | promotion:point-activity:update |
| 23 | 关闭积分商城活动 | PUT | /admin-api/promotion/point-activity/close | promotion:point-activity:close |
| 24 | 删除积分商城活动 | DELETE | /admin-api/promotion/point-activity/delete | promotion:point-activity:delete |
| 25 | 获取活动详情 | GET | /admin-api/promotion/point-activity/get | promotion:point-activity:query |
| 26 | 获取活动分页 | GET | /admin-api/promotion/point-activity/page | promotion:point-activity:query |
| 27 | 获取活动列表 | GET | /admin-api/promotion/point-activity/list-by-ids | - (公共) |
前台用户端
| 序号 | 接口名称 | 方法 | 路径 | 鉴权 |
|---|---|---|---|---|
| 1 | 获取用户积分记录分页 | GET | /app-api/member/point/record/page | 需登录 |
| 2 | 获取用户经验值记录分页 | GET | /app-api/member/experience/record/page | 需登录 |
| 3 | 获取积分概览 | GET | /app-api/member/point/overview | 需登录 |
| 4 | 获取积分攻略 | GET | /app-api/member/point/guide | 需登录 |
| 5 | 每日签到 | POST | /app-api/member/sign-in/create | 需登录 |
| 6 | 获取签到信息 | GET | /app-api/member/sign-in/get-sign-in-info | 需登录 |
| 7 | 获取任务列表 | GET | /app-api/member/task/list | 需登录 |
| 8 | 领取任务奖励 | POST | /app-api/member/task/receive-reward | 需登录 |
| 9 | 获取任务概览 | GET | /app-api/member/task/overview | 需登录 |
| 10 | 获取积分商城活动分页 | GET | /app-api/promotion/point-activity/page | 无需登录 |
| 11 | 获取积分商城活动详情 | GET | /app-api/promotion/point-activity/get-detail | 无需登录 |
| 12 | 获取积分商城活动列表 | GET | /app-api/promotion/point-activity/list-by-ids | 无需登录 |
7.3 权限配置
| 权限标识 | 说明 | 所属模块 |
|---|---|---|
| point:setting:query | 查看积分规则配置 | 积分管理 |
| point:setting:update | 修改积分规则配置 | 积分管理 |
| point:record:query | 查看积分记录 | 积分管理 |
| point:record:export | 导出积分记录 | 积分管理 |
| point:record:batch-update | 批量调整积分 | 积分管理 |
| point:statistics:query | 查看积分统计 | 积分管理 |
| point:statistics:export | 导出积分统计 | 积分管理 |
| point:adjust:query | 查看积分调整审批 | 积分管理 |
| point:adjust:audit | 审批积分调整 | 积分管理 |
| member:user:update-point | 调整会员积分 | 会员管理 |
| member:experience-record:query | 查看经验值记录 | 等级管理 |
| member:experience-record:export | 导出经验值记录 | 等级管理 |
| promotion:point-activity:create | 创建积分商城活动 | 营销管理 |
| promotion:point-activity:update | 更新积分商城活动 | 营销管理 |
| promotion:point-activity:query | 查看积分商城活动 | 营销管理 |
| promotion:point-activity:close | 关闭积分商城活动 | 营销管理 |
| promotion:point-activity:delete | 删除积分商城活动 | 营销管理 |
7.4 错误码定义
| 错误码 | 错误信息 | 处理建议 |
|---|---|---|
| POINT_RECORD_NOT_FOUND | 积分记录不存在 | 检查记录ID是否正确 |
| POINT_SETTING_DUPLICATE | 积分规则已存在 | 同一业务类型只能配置一条规则 |
| POINT_BALANCE_INSUFFICIENT | 积分余额不足 | 提示用户积分不足,引导获取积分 |
| POINT_EXCHANGE_STOCK_EMPTY | 商品库存不足 | 提示商品已兑完 |
| POINT_EXCHANGE_LIMIT_EXCEED | 超出兑换次数限制 | 提示每人兑换次数上限 |
| POINT_BATCH_UPDATE_OVER_LIMIT | 批量调整超出人数限制 | 分批操作,每批不超过500人 |
| POINT_ADJUST_REASON_REQUIRED | 调整原因不能为空 | 填写调整原因 |
| POINT_SIGN_IN_DUPLICATE | 今日已签到 | 提示用户明日再来 |
| POINT_TASK_ALREADY_RECEIVED | 任务奖励已领取 | 提示不可重复领取 |
| POINT_TASK_NOT_COMPLETED | 任务未完成 | 提示先完成任务 |
| EXPERIENCE_RECORD_NOT_FOUND | 经验值记录不存在 | 检查记录ID是否正确 |
| STATISTICS_DATA_DELAYED | 统计数据存在延迟 | 提示数据延迟不超过5分钟 |
7.5 修订记录
| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| v1.0 | 2026-09-24 | PMForge | 初稿 |
| v2.0 | 2026-09-19 | PMForge | 全量重写:增强业务场景描述(命名用户角色)、补充验收标准(AC)、新增ASCII页面线框图(8+页面)、业务规则增加"设计原因"列、新增跨模块联动章节(含流程图)、名词解释增加通俗类比(18项)、补充错误码定义(12项) |