继续。下面把前面的 页面文档 + API + 数据库 ER 汇总成一份可以正式进入项目立项、UI、前后端开发、测试评审的 《完整软件开发需求规格书 PRD》,同时把模块边界、业务规则、状态机、验收标准和开发任务统一起来。
会员推荐关系 + 新零售商城
完整软件开发需求规格书 PRD
文档版本: V1.0
文档状态: 开发基线
产品形态: 移动 Web
系统类型: 会员推荐关系平台 + 新零售商城
目标用户: 注册会员、审核会员、商城消费者、平台管理员
文档用途: 产品、UI、前端、后端、测试、运维共同使用
1. 项目背景
现有系统为一个多年迭代形成的传统移动 Web 系统,核心由两部分组成:
会员/推荐关系平台
+
新零售商城会员侧具备:
登录
注册
推荐关系
邀请注册
会员等级
等级升级
下级升级审核
团队成员商城侧具备:
商品分类
专区
商品详情
购物车
收货地址
订单
支付
个人中心
积分
积分转账
提现
收藏
关注
浏览记录当前系统主要问题包括:
- 会员平台与商城使用不同的视觉模板。
- 会员等级数据口径存在不一致。
- 会员推荐与商城体系缺少统一的信息架构。
- 部分业务流程存在阻断。
- 资产、提现、审核等关键业务缺乏清晰状态管理。
- 页面层面存在较多历史技术债务。
- 关键操作需要加强服务端权限、审计、幂等和数据一致性。
本项目目标不是简单复制旧页面,而是建立一套统一的业务、交互和技术基础。
2. 产品目标
2.1 业务目标
建立完整链路:
用户注册
↓
会员身份
↓
推荐关系
↓
会员升级
↓
团队
↓
商城
↓
订单
↓
积分资产
↓
转账/提现2.2 产品目标
新版需要解决:
业务统一
视觉统一
权限统一
数据统一
状态统一
资产统一2.3 技术目标
建立:
统一 API
统一数据库模型
统一权限体系
统一异常处理
统一审计机制
统一状态机
统一安全规范3. 产品总体架构
┌───────────────┐
│ 用户 │
└───────┬───────┘
│
┌───────▼───────┐
│ 登录 │
└───────┬───────┘
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
工作台 商城 我的
│ │ │
┌───────┼───────┐ ┌───┼──────┐ ┌────┼─────┐
│ │ │ │ │ │ │ │ │
邀请 升级 团队 分类 商品 购物车 资产 地址 资料
│ │ │
审核 订单 转账
│ │
支付 提现4. 一级导航
统一为:
工作台
商城
团队
订单
我的工作台
会员相关业务中心。
商城
商品浏览和购买。
团队
推荐关系和下级成员。
订单
购物交易。
我的
用户资料、资产及功能集合。
5. 用户角色
5.1 游客
可:
登录
注册
查看公开商城内容不能:
订单
积分
提现
团队
会员操作5.2 普通会员
可以:
查看会员信息
邀请注册
申请升级
查看团队
浏览商城
购物
查看订单
查看资产
积分转账
提现
管理资料5.3 审核会员
在普通会员基础上增加:
查看授权范围内的升级申请
审核升级申请5.4 管理员
后台管理:
用户
会员等级
推荐关系
升级审核
商品
分类
专区
订单
支付
积分
提现
公告
客服
系统配置
审计日志6. 用户注册体系
6.1 注册方式
当前业务以手机号为主要身份。
注册字段:
手机号
微信号
姓名
密码
确认密码
推荐人推荐人可以通过 URL:
/register?tid=10001自动建立。
6.2 推荐注册流程
推荐人生成邀请链接
↓
新用户打开链接
↓
获取 tid
↓
查询推荐人
↓
显示推荐人
↓
填写注册资料
↓
提交
↓
创建用户
↓
创建会员
↓
创建推荐关系整个过程需要事务保证。
6.3 注册业务规则
- 手机号必须唯一。
- 禁用用户不能注册。
- 推荐人必须存在且处于可推荐状态。
- 用户不能推荐自己。
- 注册成功后建立推荐关系。
- 推荐关系创建后不能由普通用户自行修改。
7. 会员体系
7.1 等级模型
示例:
一星会员
↓
二星会员
↓
三星会员
↓
...等级由:
member_levels统一定义。
用户当前等级由:
members.level_id统一保存。
7.2 商城与会员等级统一
目前存在:
会员系统:一星会员
商城系统:普通会员新版必须统一。
唯一权威数据:
members.level_id商城、工作台、团队页面全部从同一会员数据源读取。
8. 会员升级
8.1 升级规则
只能:
当前等级 → 下一等级例如:
一星 → 二星禁止:
一星 → 三星8.2 申请流程
会员中心
↓
会员升级
↓
读取升级资格
↓
显示下一等级
↓
提交申请
↓
进入待审核8.3 重复申请
存在:
pending申请时:
不能再次创建用户看到:
当前已有升级申请正在审核8.4 审核流程
申请人
│
▼
pending
│
├──────────┐
▼ ▼
approved rejected
│
▼
会员等级更新8.5 审核权限
审核人必须同时满足:
拥有审核权限
+
申请人属于可审核的数据范围
+
申请状态 = pending不能仅根据前端传入的 request_id 执行审核。
8.6 审核通过
事务内执行:
更新会员等级
更新申请状态
记录审核人
记录审核时间
写升级日志
写审计日志8.7 审核拒绝
事务内执行:
申请状态 = rejected
记录拒绝原因
记录审核人
记录审核时间
写审核日志会员等级不变化。
9. 团队体系
9.1 推荐关系
核心关系:
parent_user_id
↓
child_user_id保存在:
member_relations9.2 当前 V1
先支持:
直接下级展示:
直接成员数量
成员等级
成员基本信息9.3 隐私
手机号:
138****1234微信:
wx****123原则:
展示必要信息10. 商城首页
页面包含:
搜索
Banner
商品分类
专区
推荐商品
热门商品商品卡
统一:
商品图
商品名
价格可选:
销量
促销
积分
标签11. 商品分类
支持:
一级分类
二级分类
商品列表分类由后台维护。
商品不能在前端写死。
12. 商品专区
专区用于运营配置:
新品
热销
推荐
活动
品牌商品和专区采用多对多关系。
13. 商品详情
内容
商品图片
商品名称
商品价格
原价
规格
库存
销量
商品详情
积分抵扣规则13.1 规格
如果商品存在 SKU:
选择规格
↓
确定 SKU
↓
显示 SKU 价格
↓
显示 SKU 库存13.2 商品购买
两个核心按钮:
加入购物车
立即购买13.3 商品状态
正常
缺货
下架下架商品不能继续下单。
14. 商品内容合规
当前商品详情存在较多健康/医疗功效描述。
新版商品后台必须允许:
商品文案审核
图片审核
上下架审核未经审核内容不得直接发布。
产品宣传文案不得由技术团队自行判断其合规性。
15. 购物车
功能
加入商品
修改数量
删除商品
选择商品
全选
去结算15.1 购物车规则
相同 SKU:
合并数量例如:
商品 A SKU1 × 2再次加入:
商品 A SKU1 × 3变为:
商品 A SKU1 × 516. 收货地址
用户可以:
新增
编辑
删除
设为默认同一用户:
只能有一个默认地址16.1 地址快照
订单创建时必须保存:
收货人
手机号
省
市
区
详细地址即使用户后续修改地址,历史订单地址不能变化。
17. 订单
订单主要状态:
待付款
待发货
已发货
已完成
已取消
售后17.1 订单创建流程
购物车
↓
选择商品
↓
选择地址
↓
服务端重新读取商品
↓
重新计算价格
↓
重新计算优惠
↓
重新计算积分抵扣
↓
检查库存
↓
创建订单17.2 禁止信任前端价格
客户端可以提交:
sku_id
quantity
address_id不能作为最终依据:
price
discount
total
payable_amount这些由服务端计算。
17.3 订单商品快照
订单保存:
商品名称
SKU
规格
成交价格
数量
商品图片防止商品后续修改影响历史订单。
18. 支付
支付页面展示:
订单金额
支付方式
支付按钮支付成功的最终依据:
第三方支付回调 + 服务端验签不是前端跳转。
18.1 支付回调
服务端必须:
验签
↓
验证订单
↓
验证金额
↓
查询支付状态
↓
幂等处理
↓
更新支付
↓
更新订单19. 资产体系
资产模块分为:
积分账户
积分流水
积分转账
提现19.1 积分账户
账户:
可用积分
冻结积分示例:
可用:12,580
冻结:1,00019.2 积分抵扣
当前业务口径:
100 积分 = 1 元最终换算应由系统配置控制。
不要在前端写死。
19.3 积分流水
所有变动必须记录。
类型:
奖励
转入
转出
购物抵扣
冻结
解冻
提现
人工调整20. 积分转账
流程:
输入目标账号
↓
查询目标用户
↓
显示脱敏信息
↓
输入积分数量
↓
检查余额
↓
确认转账
↓
扣减发送方
↓
增加接收方
↓
双方生成流水必须使用事务。
20.1 转账限制
必须检查:
数量 > 0
余额足够
目标用户存在
目标用户正常
不能转给自己
满足系统转账规则20.2 幂等
转账必须支持:
Idempotency-Key避免用户快速连续点击导致重复转账。
21. 提现
21.1 提现前置条件
检查:
已实名
银行卡已配置
余额足够
账户状态正常
提现功能开启任一条件不满足:
禁止提交同时告诉用户缺少哪一项。
21.2 提现流程
资产
↓
提现
↓
检查资料
↓
检查余额
↓
输入提现金额
↓
确认
↓
创建提现申请
↓
审核
↓
通过
↓
打款21.3 提现状态
pending
reviewing
approved
rejected
paid
cancelled21.4 银行卡
敏感数据:
数据库加密
接口脱敏
页面脱敏
日志脱敏页面只显示:
中国银行
****123422. 我的
个人中心统一入口:
用户资料
订单
资产
地址
收藏
关注
浏览记录
客服
关于我们
设置23. 用户资料
分为:
基础资料
实名认证
银行卡避免所有信息堆在一个编辑页面。
24. 收藏
商品收藏:
收藏
取消收藏
收藏列表同一商品只能收藏一次。
25. 关注
V1 抽象为:
用户
+
对象类型
+
对象 ID后续可扩展:
店铺
品牌
商品
专区26. 浏览记录
同一用户浏览同一商品:
不重复无限创建而是更新:
browse_count
last_browsed_at27. 公告
公告支持:
标题
内容
置顶
开始时间
结束时间
状态工作台展示有效公告。
28. 客服
客服中心至少支持:
客服电话
客服微信
在线客服
服务时间
FAQ禁止继续存在与页面名称不匹配的错误跳转。
29. 关于我们
展示:
公司介绍
经营主体
营业执照
联系方式
用户协议
隐私政策30. 商家入驻
V1:
商家入驻
↓
查看入驻条件
↓
联系客服后续版本再扩展:
在线申请
资料上传
平台审核
店铺创建
商品发布31. 通用页面状态
所有页面统一设计:
正常
Loading
空状态
错误状态
无权限
登录失效32. 关键业务状态机
32.1 会员升级
pending
│
├── approve → approved
│
└── reject → rejected32.2 订单
pending_payment
│
├── cancel → cancelled
│
└── pay
↓
pending_shipment
↓
shipped
↓
completed32.3 提现
pending
↓
reviewing
├── rejected
│
└── approved
↓
paid33. 数据唯一来源
系统必须遵循:
用户身份
→ users
会员身份
→ members
会员等级
→ member_levels
推荐关系
→ member_relations
商品实时价格
→ product_skus
历史订单价格
→ order_items
订单状态
→ orders
支付状态
→ payments
积分余额
→ point_accounts
积分历史
→ point_transactions
提现状态
→ withdrawal_requests
系统审计
→ audit_logs不得出现两套独立数据源。
34. 权限体系
采用:
用户
↓
角色
↓
权限
↓
数据范围例如:
member.upgrade.apply
member.upgrade.review
team.view
order.create
order.view
asset.view
asset.transfer
asset.withdraw审核权限必须同时检查数据范围。
35. 安全要求
P0
必须完成:
HTTPS
安全密码哈希
Session 安全
CSRF
权限校验
越权测试
接口限流
敏感信息脱敏35.1 参数安全
以下字段不得被前端直接决定:
user_id
level_id
reviewer_id
order_id 对应用户
price
discount
payable_amount
points_balance
withdrawal_status36. 幂等要求
以下接口必须考虑幂等:
创建订单
发起支付
积分转账
提交提现
审核升级
确认收货37. 审计要求
以下行为必须记录:
登录
会员升级
升级审核
积分转账
提现申请
提现审核
订单关键状态变化
管理员资产修改
管理员会员修改记录:
操作者
目标资源
操作
原状态
新状态
IP
时间
请求 ID
结果38. 响应式要求
移动端:
375
390
414
428桌面端:
最大内容宽度建议 750px避免旧系统在 1280px 下无限放大。
39. Design System
统一组件:
Button
Input
Select
Dialog
Bottom Sheet
Toast
Tab
Badge
Card
List
Empty
Loading
Error
Navbar
Bottom Navigation
Product Card
Order Card40. 页面清单
| 编号 | 页面 | 类型 |
|---|---|---|
| P01 | 登录 | 公共 |
| P02 | 注册 | 公共 |
| P03 | 推荐注册 | 公共 |
| P04 | 工作台 | 一级 |
| P05 | 邀请注册 | 业务 |
| P06 | 升级申请 | 业务 |
| P07 | 升级记录 | 业务 |
| P08 | 升级审核 | 业务 |
| P09 | 审核详情 | 业务 |
| P10 | 团队 | 一级 |
| P11 | 商城首页 | 一级 |
| P12 | 分类 | 商城 |
| P13 | 专区 | 商城 |
| P14 | 商品详情 | 商城 |
| P15 | 购物车 | 商城 |
| P16 | 地址列表 | 账户 |
| P17 | 地址编辑 | 账户 |
| P18 | 确认订单 | 交易 |
| P19 | 支付 | 交易 |
| P20 | 订单列表 | 一级 |
| P21 | 订单详情 | 交易 |
| P22 | 我的 | 一级 |
| P23 | 资产 | 资产 |
| P24 | 积分明细 | 资产 |
| P25 | 积分转账 | 资产 |
| P26 | 提现 | 资产 |
| P27 | 提现记录 | 资产 |
| P28 | 个人资料 | 账户 |
| P29 | 收藏 | 账户 |
| P30 | 关注 | 账户 |
| P31 | 浏览记录 | 账户 |
| P32 | 客服 | 公共 |
| P33 | 关于我们 | 公共 |
| P34 | 商家入驻 | 公共 |
41. 第一阶段开发范围
Sprint 1:账户与会员
登录
注册
推荐注册
工作台
邀请
会员等级
升级
升级记录
审核
团队Sprint 2:商城
商城首页
分类
专区
商品
SKU
购物车
地址Sprint 3:交易
订单确认
订单创建
支付
订单列表
订单详情
订单状态Sprint 4:资产
积分
积分流水
积分转账
实名
银行卡
提现Sprint 5:体验与后台
收藏
关注
浏览记录
公告
客服
关于我们
后台基础功能42. 后台管理规划
虽然前期黑盒检查没有覆盖后台,但要预留以下模块。
用户管理
用户查询
用户详情
禁用
解禁会员管理
会员等级
会员详情
等级调整
升级审核推荐关系
推荐人
下级
团队关系
关系查询商品管理
商品
SKU
分类
专区
库存
上下架订单管理
订单查询
发货
取消
售后
退款资产管理
积分
积分流水
转账记录
提现审核内容
公告
客服
关于我们
商品详情系统
管理员
角色
权限
操作日志
系统配置43. 前端任务拆分
基础框架
FE-001 路由
FE-002 登录态
FE-003 API Client
FE-004 错误处理
FE-005 Toast/Dialog
FE-006 Loading/Empty
FE-007 Design System会员
FE-101 工作台
FE-102 推荐注册
FE-103 升级
FE-104 升级记录
FE-105 审核
FE-106 团队商城
FE-201 商城首页
FE-202 分类
FE-203 专区
FE-204 商品
FE-205 SKU
FE-206 购物车交易
FE-301 地址
FE-302 确认订单
FE-303 支付
FE-304 订单列表
FE-305 订单详情资产
FE-401 积分
FE-402 流水
FE-403 转账
FE-404 实名
FE-405 银行卡
FE-406 提现44. 后端任务拆分
认证
BE-001 用户
BE-002 登录
BE-003 注册
BE-004 Session
BE-005 限流会员
BE-101 会员
BE-102 等级
BE-103 推荐关系
BE-104 升级
BE-105 审核
BE-106 团队商城
BE-201 分类
BE-202 商品
BE-203 SKU
BE-204 专区
BE-205 购物车订单
BE-301 地址
BE-302 订单
BE-303 库存
BE-304 支付
BE-305 回调资产
BE-401 积分
BE-402 流水
BE-403 转账
BE-404 提现
BE-405 实名
BE-406 银行卡系统
BE-501 公告
BE-502 客服
BE-503 审计
BE-504 配置45. QA 测试任务
账号
QA-001 登录
QA-002 注册
QA-003 推荐关系
QA-004 Session会员
QA-101 升级
QA-102 重复升级
QA-103 审核
QA-104 越权审核
QA-105 团队商城
QA-201 商品
QA-202 SKU
QA-203 购物车
QA-204 地址交易
QA-301 创建订单
QA-302 库存
QA-303 支付
QA-304 支付回调
QA-305 订单状态资产
QA-401 积分
QA-402 转账
QA-403 并发转账
QA-404 提现
QA-405 重复提现安全
QA-501 越权
QA-502 CSRF
QA-503 XSS
QA-504 SQL Injection
QA-505 暴力破解
QA-506 敏感信息泄露46. 核心验收标准
会员升级
必须满足:
当前等级只能申请下一等级
重复申请被拦截
无权限用户不能审核
审核人不能审核无权管理的成员
审核成功会员等级正确变化
审核记录完整47. 订单验收
必须满足:
价格由服务端计算
库存由服务端判断
订单商品有快照
订单不能越权查看
支付回调必须验签
重复支付回调不会重复入账
订单状态不能非法跳转48. 积分验收
必须满足:
余额不能为负
转账不能超过余额
不能自己转给自己
重复请求不会重复扣款
发送方和接收方余额一致
双方均有流水49. 提现验收
必须满足:
未实名不能提现
未配置银行卡不能提现
余额不足不能提现
重复提交不能生成重复提现单
银行卡信息脱敏
提现状态流转正确
每次审核有日志50. 性能要求
V1 移动 Web 建议:
首屏可交互:目标 ≤ 3 秒
主要 API:目标 ≤ 500ms
列表 API:目标 ≤ 500ms
数据库慢查询:纳入监控具体指标需要根据实际服务器规格和用户量进一步压测确认。
51. 可用性要求
异常情况下:
支付服务异常
数据库异常
库存服务异常
第三方接口异常不能展示成功状态。
所有失败必须:
用户可理解
系统可追踪
后台可审计52. 数据一致性
涉及:
订单
支付
库存
积分
提现
会员等级必须使用事务或明确的一致性方案。
53. 旧系统迁移策略
如果不是全新系统,而是对现有系统重构,需要建立:
旧页面
↓
旧 API
↓
字段映射
↓
新 API
↓
新数据库迁移过程中:
旧会员等级
→ 新 member_levels
旧用户
→ users
旧团队关系
→ member_relations
旧订单
→ orders + order_items
旧积分
→ point_accounts + point_transactions迁移完成后必须进行:
用户数量校验
会员数量校验
推荐关系校验
订单数量校验
积分余额校验54. 旧接口迁移
已确认的旧接口:
/mob/UCenter/sqsj_ck_save
/mob/UCenter/sqsj_ck_update迁移:
旧保存升级申请
↓
POST /api/member/upgrade/apply
旧审核升级
↓
POST /api/member/upgrade/review旧:
90 = 同意
30 = 拒绝新:
approve
reject55. 技术架构建议
Browser
│
HTTPS
│
Nginx
│
Application
│
┌────────────┼────────────┐
│ │ │
Auth Member Mall
│ │ │
│ Upgrade/Team Product
│ Order
│ │
└───────────┬───────────────┘
│
Asset
│
Points/Transfer/Withdraw
│
MySQL
│
RedisV1 不需要为了技术形式强行拆微服务。
56. 上线前检查
产品
全部核心流程跑通
文案确认
状态确认
业务规则确认UI
375
390
414
428
桌面端前端
错误处理
接口超时
重复提交
Loading
Empty
权限后端
认证
授权
事务
幂等
日志
异常安全
HTTPS
CSRF
XSS
SQL Injection
IDOR
限流
敏感数据运维
监控
日志
数据库备份
恢复测试
告警
证书57. V1 MVP 完成标准
当以下流程全部跑通,可认为 MVP 完成:
用户
↓
注册
↓
登录
↓
会员中心
↓
邀请
↓
推荐关系
↓
会员升级
↓
审核
↓
团队
↓
商城
↓
商品
↓
购物车
↓
地址
↓
订单
↓
支付
↓
订单完成
↓
积分
↓
积分转账
↓
提现58. V1 不建议同时做的内容
第一版不建议同时加入大量复杂功能,例如:
复杂多级分销
佣金计算
复杂营销活动
优惠券体系
秒杀
拼团
直播
复杂商户结算
复杂财务系统这些会显著扩大:
数据库
权限
结算
订单
资产
测试的复杂度。
建议先完成现有核心业务闭环。
59. 最终产品结构
用户
│
┌──────────┴──────────┐
│ │
会员体系 商城
│ │
┌─────┼─────┐ ┌──────┼──────┐
│ │ │ │ │ │
邀请 升级 团队 商品 购物车 订单
│ │
审核 支付
│
完成
│
┌───▼───┐
│ 资产 │
└───┬───┘
│
┌────────┼────────┐
│ │ │
积分 转账 提现60. 最终开发原则
原则一
前端负责展示和交互,后端负责最终业务判断。
原则二
会员等级必须只有一个权威数据源。
原则三
推荐关系必须只有一个权威数据源。
原则四
积分必须有余额账户 + 流水账本。
原则五
订单必须保存商品和地址快照。
原则六
订单、积分、提现、升级审核等关键操作必须具备事务、幂等和审计能力。
原则七
所有涉及用户资产、权限和隐私的接口都不能信任前端参数。
原则八
新版本统一会员、商城、订单、资产的视觉和信息架构,不再延续旧系统的多模板拼接方式。
61. 项目交付物
最终项目建议形成:
01_PRD/
产品需求文档
02_UI/
页面原型
Design System
UI 设计稿
03_API/
OpenAPI
Swagger
Postman
04_DATABASE/
ER 图
字段设计
建表 SQL
数据字典
05_FRONTEND/
页面
组件
路由
API Client
06_BACKEND/
Service
Controller
Repository
权限
事务
07_QA/
测试用例
接口测试
安全测试
回归测试
08_DEPLOY/
部署文档
环境变量
数据库迁移
备份
监控62. 开发完成定义
一个功能只有同时满足以下条件才算完成:
产品规则明确
+
UI 页面完成
+
API 完成
+
数据库完成
+
权限完成
+
异常状态完成
+
日志完成
+
测试通过不能只做到:
按钮能点击就视为功能完成。
到这里,PRD + 页面/原型 + API + 数据库 四层已经完整串起来了。
下一份最适合直接落地开发的是 《MySQL 8.0 完整建表 SQL》:把上面所有表直接生成 CREATE TABLE、索引、唯一约束、初始会员等级、状态字典和基础测试数据,后端拿过去基本就可以开始建库。



