06-验收流程与标准.md 16 KB

智价云(药店版) - 验收流程与标准

⚠️ MVP 阶段说明
本项目为全新项目,尚未上线,当前处于 MVP(最小可行产品)阶段
本文档定义的是 MVP 版本的验收标准,正式上线前需全部通过。

版本:v1.1-MVP | 更新日期:2026-07-01 | 状态:开发中


1. 验收流程

1.1 验收阶段

开发完成 → 代码审查 → 单元测试通过 → 集成测试通过
→ 部署测试环境 → 功能验收 → 性能验收 → 安全验收
→ 签署验收报告 → 上线

1.2 验收角色

角色 职责
开发负责人 代码审查、单元测试、技术验收
测试负责人 功能测试、回归测试、性能测试
产品经理 功能验收、用户体验确认
运维负责人 部署验收、监控告警确认
安全负责人 安全扫描、漏洞检查

2. 功能验收标准

2.1 用户认证模块

编号 验收项 通过标准 优先级
FA-01 短信验证码发送 60s内收到6位验证码,格式正确;1分钟内同IP限1次 P0
FA-02 短信验证码登录 正确验证码登录成功,返回Token P0
FA-03 新用户自动注册 首次登录自动创建用户,分配默认权益 P0
FA-04 邀请码注册 携带邀请码注册,自动建立邀请关系并发放会员奖励 P1
FA-05 微信扫码登录 扫码后获取授权码,登录成功 P0
FA-06 微信绑定手机号 首次微信登录引导绑定手机号 P1
FA-07 Token刷新 Refresh Token有效期内可刷新 P1
FA-08 验证码过期 5分钟后验证码失效 P1
FA-09 密码登录(手机号) 手机号+正确密码登录成功,返回Token P0
FA-10 密码登录(昵称) 昵称+正确密码登录成功,返回Token P1
FA-11 设置密码 已登录用户设置密码成功 P1
FA-12 修改密码 验证旧密码后修改密码成功 P1
FA-13 修改手机号 验证码验证通过后修改绑定手机号 P1
FA-14 登录来源追踪 记录登录设备、IP、来源(WINDOWS/MINIAPP等) P2

2.2 会员体系模块

编号 验收项 通过标准 优先级
FA-20 会员信息查询 返回当前会员等级、有效期(membershipExpireAt)、剩余天数(membershipDaysRemaining) P0
FA-21 会员权益查询 返回指定等级的每日/每月/每年配额和并发数 P0
FA-22 注册即得PLUS SMS/微信注册自动获得PLUS普通会员,无过期时间 P0
FA-23 付费购买PRO 支付成功后立即激活PRO,t_user与t_user_membership实时同步 P0
FA-24 邀请奖励PRO 成功邀请新用户注册→邀请人自动获得30天PRO会员(等级匹配规则) P0
FA-25 营业执照审核送PRO 首次审核通过赠送30天PRO P1
FA-26 同等级续期 PRO续期PRO→在现有到期时间上叠加30天 P1
FA-27 升级不降级 ULTRA用户获邀请奖励→续期ULTRA 30天,不降为PRO P1
FA-28 到期自动降级 PRO到期后→自动降为PLUS,t_user同步清除membershipExpireAt P0
FA-29 会员记录查询 分页查询会员记录,支持按用户/等级/来源筛选 P1
FA-30 会员权益配置 数据库中3个等级的权益配置正确(PLUS=10次/天, PRO=999次/天) P0
FA-31 全局过期时间同步 t_user.membershipExpireAt与t_user_membership.effectiveTo实时一致 P0
FA-32 支付方案 仅开放MONTHLY_PRO和YEARLY_PRO,PLUS免费无付费套餐 P0

2.3 爬虫配额模块

编号 验收项 通过标准 优先级
FA-30 配额状态查询 返回日/月/年配额、额外配额明细 P0
FA-31 会员权益配额消耗 消耗次数正确扣减 P0
FA-32 额外配额消耗 快过期优先消耗 P0
FA-33 优惠券消耗 useCouponFirst=true时优先使用优惠券 P1
FA-34 日配额上限 超出日配额返回拒绝 P0
FA-35 月配额上限 超出月配额返回拒绝 P0
FA-36 年配额上限 超出年配额返回拒绝 P1
FA-37 配额明细展示 extraQuotaBreakdown显示各来源明细 P1
FA-38 过期配额清理 定时任务每小时标记过期记录 P2
FA-39 爬虫使用日志 记录含平台信息、消耗来源 P1

2.4 药品搜索比价模块

编号 验收项 通过标准 优先级
FA-40 药品搜索比价 输入药品名返回各平台报价,消耗1次配额 P0
FA-41 搜索建议 返回热门药品列表(公开,无需登录) P1
FA-42 搜索结果排序 按价格从低到高排序展示 P0
FA-43 平台筛选 支持多选平台查询 P1

2.5 平台账号绑定模块

编号 验收项 通过标准 优先级
FA-45 绑定平台账号 绑定成功,密码AES-256加密存储 P0
FA-46 解绑平台账号 解绑成功,记录删除 P0
FA-47 查询已绑账号 返回已绑定平台列表(不返回密码) P0
FA-48 验证平台账号 验证账号有效性,记录验证状态 P1
FA-49 平台配置查询 返回启用平台列表(公开) P1

2.6 搜索历史与关注列表模块

编号 验收项 通过标准 优先级
FA-50 搜索历史记录 每次搜索自动记录历史 P1
FA-52 删除搜索记录 删除指定记录/清空全部 P1
FA-53 添加关注 关注药品成功,记录价格信息 P1
FA-54 关注列表查询 返回关注列表含价格变动信息 P1
FA-55 取消关注 取消关注成功 P1
FA-56 关注统计 返回关注总数等统计信息 P2

2.7 邀请系统模块

编号 验收项 通过标准 优先级
FA-60 获取邀请码 自动生成唯一邀请码和链接 P0
FA-61 邀请统计 显示邀请人数、注册人数、累计奖励、摘要文本 P0
FA-62 邀请记录 每条记录含被邀请人昵称、注册状态、奖励次数 P0
FA-63 落地页(公开) 展示邀请人信息、下载链接、应用名称 P0
FA-64 点击追踪 每次打开链接click_count+1 P1
FA-65 多渠道落地页 channel=windows/wechat/miniapp/dingtalk/feishu 正确返回 P1
FA-66 邀请人奖励 被邀请人注册后,邀请人获赠1个月高级会员(PRO),立即到账 P0
FA-67 被邀请人奖励 被邀请人注册即得普通会员(PLUS),永久免费 P0
FA-68 邀请码解析 支持链接/邀请码双模式智能解析 P1
FA-69 邀请奖励上限 单个邀请人累计奖励上限30人,超限可继续邀请但不再发放奖励 P1
FA-70 补填邀请码 注册30天内可补填,邀请人同样获得1个月PRO奖励 P1
FA-71 邀请爬虫配额 邀请页crawlerTodayRemaining与爬虫状态页todayRemaining一致 P2
FA-72 额外配额明细 邀请页crawlerQuotaFromInvites正确反映邀请贡献的配额 P2
FA-69 URL Scheme自动填入 zhijiayun://invite?code=XXX 正确生成 P1
FA-70 落地页占位符 {inviter}和{pharmacy}动态替换正确 P2

2.8 支付系统模块

编号 验收项 通过标准 优先级
FA-75 支付方案列表 返回上架的会员套餐列表(公开) P0
FA-76 创建支付订单 选择套餐+渠道创建订单,生成二维码 P0
FA-77 查询订单 按订单号查询订单状态 P0
FA-78 我的订单 返回用户所有订单列表 P1
FA-79 模拟支付 开发环境模拟支付成功,订单状态更新 P1
FA-80 微信回调 接收微信支付回调,验签通过后更新订单 P0
FA-81 支付宝回调 接收支付宝回调,验签通过后更新订单 P0
FA-82 支付成功发放会员 支付成功后自动发放对应会员等级 P0
FA-83 订单过期 超过15分钟未支付订单自动过期 P1
FA-84 创建支付方案(运营) 运营创建套餐方案成功 P1
FA-85 上下架方案(运营) 运营上架/下架方案成功 P1
FA-86 渠道切换 PENDING订单可切换支付渠道,重新生成二维码 P1
FA-87 重复支付记录 订单已PAID时第二笔回调记录到 t_payment_order_extra_payment P0
FA-88 重复支付幂等 同一tradeNo不重复记录,不重复退款 P0
FA-89 自动退款-微信 重复支付自动调用微信退款API,refund_status=SUCCESS P0
FA-90 自动退款-支付宝 重复支付自动调用支付宝退款API,refund_status=SUCCESS P0
FA-91 退款失败处理 退款失败时 refund_status=FAILED,记录 refund_fail_reason P1
FA-92 模拟模式退款 mock模式下重复支付模拟退款成功,不调用真实SDK P1
FA-93 签约协议-发起签约 用户可发起微信/支付宝签约协议 P1
FA-94 签约协议-查询列表 返回用户签约列表,含协议状态 P1
FA-95 签约协议-解约 用户可解约,协议状态更新为UNSIGNED P1
FA-96 安心付-卡模板创建 运营可创建安心付卡模板 P2
FA-97 安心付-扣款通知 接收支付宝安心付扣款通知,正确匹配用户 P1
FA-98 平台会话管理 用户可更新/查询/删除平台会话 P2
FA-99 搜索历史记录 搜索记录保存到 /api/search-record/history P2

2.9 运营管理模块

编号 验收项 通过标准 优先级
FA-90 邀请配置读取 返回当前激活配置 P0
FA-91 邀请配置更新 更新奖励月数、下载链接、落地页配置 P0
FA-92 手动发放爬虫次数 指定用户发放成功,配额立即生效 P0
FA-93 发放记录查询 按用户/类型筛选,返回完整记录 P1
FA-94 用户列表查询 分页查询用户,支持按手机号/角色筛选 P0
FA-95 用户角色修改 SUPER_ADMIN修改用户角色成功 P0
FA-96 体验配额配置 创建/更新体验配额配置成功 P1
FA-97 营业执照审核 运营审核通过/驳回成功 P1

2.10 优惠券模块

编号 验收项 通过标准 优先级
FA-100 优惠券发放 批量发放给指定用户,设置有效期 P1
FA-101 我的优惠券 按状态筛选(未使用/已使用/已过期) P1
FA-102 可用优惠券 返回未过期且未使用的优惠券 P1

2.11 操作审计日志模块

编号 验收项 通过标准 优先级
FA-105 审计日志记录 关键操作自动记录审计日志 P0
FA-106 审计日志查询 按模块/操作类型/时间范围筛选查询 P1
FA-107 敏感操作标记 禁用用户、审核操作等标记为敏感 P1
FA-108 操作前后数据快照 记录操作前后的数据变化 P2

2.12 RBAC权限控制模块

编号 验收项 通过标准 优先级
FA-110 USER访问用户接口 普通用户可访问用户侧接口 P0
FA-111 USER访问管理接口 普通用户访问管理接口返回403 P0
FA-112 ADMIN访问管理接口 运营可访问运营后台接口 P0
FA-113 ADMIN访问超管接口 运营访问超管接口返回403 P0
FA-114 SUPER_ADMIN全权限 超管可访问所有接口 P0
FA-115 未认证访问保护接口 未认证访问保护接口返回401 P0

3. 性能验收标准

编号 指标 标准 测试方法
PA-01 接口响应时间(P95) < 500ms 压测工具
PA-02 接口响应时间(P99) < 1000ms 压测工具
PA-03 登录接口 QPS > 100 并发压测
PA-04 爬虫状态接口 QPS > 200 并发压测
PA-05 搜索比价接口响应 < 3s(P95) 压测工具
PA-06 数据库连接池 正常负载不超过 maximum-pool-size 80% 监控
PA-07 Redis 连接池 正常负载不超过 max-active 80% 监控
PA-08 慢请求比例 < 1%(超过1000ms) 日志分析
PA-09 限流响应 超出阈值返回429 + 限流响应头 压测验证

4. 安全验收标准

编号 验收项 通过标准 检查方法
SA-01 JWT认证 未认证接口返回401 接口测试
SA-02 RBAC权限控制 不同角色访问越权接口返回403 接口测试
SA-03 白名单配置 仅公开接口可无Token访问 安全扫描
SA-04 限流策略 超出阈值返回429 压测验证
SA-05 SQL注入 无SQL注入漏洞 安全扫描工具
SA-06 参数校验 非法参数返回400 接口测试
SA-07 密码加密 用户密码BCrypt加密存储,平台密码AES-256加密 代码审查
SA-08 AK/SK安全 阿里云AK/SK、微信/支付宝密钥通过环境变量注入 代码审查
SA-09 CVE漏洞 无高危CVE漏洞(BouncyCastle已升级至1.84) 依赖扫描
SA-10 HTTPS 生产环境启用HTTPS 配置检查
SA-11 短信限流 IP维度1分钟1次限制有效 接口测试
SA-12 支付回调验签 生产环境微信/支付宝回调验签通过 代码审查
SA-13 重复支付退款安全 退款仅触发一次(幂等),退款失败不影响主流程 代码审查
SA-14 CORS配置 跨域配置正确,不暴露敏感头 配置检查

5. 部署验收标准

编号 验收项 通过标准
DA-01 应用启动 启动无报错,健康检查返回UP
DA-02 数据库连接 正常读写,建表脚本执行成功
DA-03 Redis连接 缓存、限流正常工作
DA-04 日志输出 日志格式正确,包含请求路径、耗时、traceId
DA-05 环境变量 AK/SK、支付密钥通过环境变量注入
DA-06 初始数据 3个平台配置、会员权益配置、体验配额配置、邀请配置、支付方案已初始化
DA-07 SQL初始化 schema.sql 幂等执行(CREATE IF NOT EXISTS + ON DUPLICATE KEY UPDATE)
DA-08 短信测试模式 开发环境短信测试模式启用(固定验证码123456)
DA-09 支付模拟模式 开发环境支付模拟模式启用(mock=true)

6. 验收检查清单

6.1 代码质量

  • 所有代码通过编译(mvn clean compile
  • 单元测试全部通过(mvn test
  • 无编译警告(或已评估确认可忽略)
  • 代码审查通过,无严重代码异味

6.2 文档完整性

  • 产品文档
  • 架构文档
  • 接口文档
  • 部署文档
  • 测试文档
  • 验收流程与标准

6.3 功能完整性

  • 用户认证(短信+密码+微信)
  • 会员体系(PLUS/PRO/ULTRA + 权益配置)
  • 爬虫配额管理(日/月/年三周期 + 额外配额 + 优惠券)
  • 药品搜索比价(搜索+建议+消耗配额)
  • 平台账号绑定(绑定/解绑/验证/加密存储)
  • 搜索历史与关注列表
  • 邀请裂变系统(多渠道 + 会员时长奖励 + 智能解析)
  • 支付系统(微信/支付宝 + 套餐管理 + 模拟支付 + 渠道切换 + 重复支付自动退款 + 签约协议 + 安心付)
  • 优惠券系统
  • 运营管理后台(用户管理 + 配置管理 + 审核管理)
  • 操作审计日志系统
  • 平台会话管理(会话更新/查询/删除)
  • 搜索历史(/api/search-record/history 增删查)
  • RBAC三级角色权限控制
  • 网关层请求日志与Redis限流

6.4 运维就绪

  • 配置文件模板完整(.env.example)
  • 环境变量说明清晰
  • 健康检查接口可用
  • 日志输出规范(含traceId、请求路径、耗时)
  • 数据库备份策略
  • Docker Compose 部署配置可用

7. 验收签署

项目 签字 日期
开发负责人
测试负责人
产品经理
运维负责人
安全负责人

验收结论:☐ 通过 ☐ 有条件通过(附整改清单) ☐ 不通过

备注