phase-1-tasks.md 15 KB

阶段一:基础设施与用户体系 — 详细任务清单

工期:3-4周(15-20天) 目标:管理员能录入数据,用户能登录并看到有价值的信息 功能点:20个 流程:M1(需求) → M2(架构) → M3(编码) → M4(测试)


里程碑总览

Week 1-2              Week 2-3              Week 3-4
┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│ M1 需求分析      │  │ M3 编码实现      │  │ M3 编码(续)+自检 │
│ M2 架构设计      │  │ (核心模块)       │  │ M4 测试验收      │
│ (可并行)         │  │                 │  │                 │
└─────────────────┘  └─────────────────┘  └─────────────────┘
  5-7天                  7-8天                  5-7天

M1 Team A — 需求分析(3-4天)

交付产物

序号 文件路径 说明
1 deliveries/team-a-requirement/spec.md 阶段一需求规格
2 deliveries/team-a-requirement/use-cases.md 用例文档
3 deliveries/team-a-requirement/constraints.md 约束条件
4 deliveries/team-a-requirement/DELIVERY-MANIFEST.md 交付清单

任务分解

任务 内容 耗时
M1.1 基于 requirements-specification.md 提取阶段一的20个功能点详细需求 1天
M1.2 编写用例文档(每个功能点至少1个主用例+异常用例) 1天
M1.3 编写约束条件(技术约束、安全约束、适老化约束) 0.5天
M1.4 编写 DELIVERY-MANIFEST.md(含给下游关键信息) 0.5天

M1 用例覆盖清单

功能模块 用例数 核心用例
数据库建表 2 全量建表成功、索引创建验证
角色管理 3 创建角色、绑定权限、角色列表
账号管理 4 创建账号、分配角色、启用/禁用、列表查询
字典管理 4 品种/工种/农资/行政区划 CRUD
操作日志 2 日志记录、日志查询
Excel 模板下载 1 下载4类模板
Excel 上传+预览 4 上传、预览有效行、预览错误行、预览重复行
数据校验+去重 3 手机号校验、去重检测、跳过/覆盖选择
确认入库 3 同步入库(≤100行)、异步入库(>100行)、完成通知
审核框架 3 审核列表、通过操作、驳回+原因
导入数据审核 2 待审数据展示、审核后生效
行情配置 3 设置价格区间、设置趋势、行情列表
微信登录 3 登录成功、拒绝授权兜底、Token 签发
身份路由 3 0个身份提示、1个直接进入、N个选择页
身份选择页 2 大卡片展示、点击进入
今日行情 2 涨价展示、降价展示
金刚区 2 4入口展示、灰态入口
手机号加密 2 加密存储验证、phone_hash 查询
权限框架 3 小程序拦截器、后台拦截器、越权拦截
接口脱敏 2 手机号脱敏、姓名脱敏

M1 验收标准

  • spec.md 覆盖20个功能点,每个有独立章节
  • use-cases.md 用例数 ≥ 45(覆盖所有功能的正常+异常场景)
  • constraints.md 包含技术约束、安全约束、适老化约束
  • DELIVERY-MANIFEST.md 的"给下游团队的关键信息"完整

M2 Team B — 架构设计(3-4天)

交付产物

序号 文件路径 说明
1 deliveries/team-b-architecture/design.md 架构设计文档
2 deliveries/team-b-architecture/api-definition.md 接口定义
3 deliveries/team-b-architecture/tech-stack.md 技术选型说明
4 deliveries/team-b-architecture/DELIVERY-MANIFEST.md 交付清单

任务分解

任务 内容 耗时
M2.1 模块架构设计(分层架构:Controller→Service→Mapper) 0.5天
M2.2 数据库详细设计(字段类型、索引、注释) 0.5天
M2.3 接口定义(RESTful API,请求/响应格式) 1天
M2.4 安全架构设计(加密方案、拦截器链、脱敏策略) 0.5天
M2.5 技术选型说明 0.5天
M2.6 DELIVERY-MANIFEST.md 0.5天

M2 接口清单(阶段一)

认证模块

接口 方法 模块 说明
/api/wx/auth/login POST gateway-mobile 微信登录
/api/wx/auth/identity-list GET gateway-mobile 获取身份列表
/api/admin/auth/login POST gateway-management 后台登录

系统管理模块

接口 方法 模块 说明
/api/admin/roles GET/POST service-system 角色列表/创建
/api/admin/roles/{id} PUT/DELETE service-system 角色编辑/删除
/api/admin/users GET/POST service-system 账号列表/创建
/api/admin/users/{id} PUT service-system 账号编辑
/api/admin/dicts GET/POST service-system 字典列表/创建
/api/admin/dicts/{id} PUT/DELETE service-system 字典编辑/删除
/api/admin/logs GET service-system 操作日志查询

数据导入模块

接口 方法 模块 说明
/api/admin/import/template/{type} GET service-system 下载模板
/api/admin/import/upload POST service-system 上传 Excel
/api/admin/import/preview POST service-system 预览导入数据
/api/admin/import/confirm POST service-system 确认入库

审核模块

接口 方法 模块 说明
/api/admin/audit/list GET service-audit 审核列表
/api/admin/audit/{id} PUT service-audit 审核操作(通过/驳回)

行情模块

接口 方法 模块 说明
/api/admin/market-price GET/POST service-trade 行情列表/配置
/api/admin/market-price/{id} PUT/DELETE service-trade 行情编辑/删除
/api/wx/market-price GET gateway-mobile 今日行情(小程序端)

小程序首页

接口 方法 模块 说明
/api/wx/home/market-price GET gateway-mobile 首页行情数据
/api/wx/home/entries GET gateway-mobile 金刚区入口配置

M2 验收标准

  • api-definition.md 接口数 ≥ 20(覆盖所有功能点)
  • DDL 每张表有字段注释
  • design.md 包含模块架构图、安全架构图
  • tech-stack.md 列出所有依赖及版本
  • DELIVERY-MANIFEST.md 的"给下游团队的关键信息"完整

M3 Team C — 编码实现(10-12天)

模块拆分与并行策略

并行组1(基础层,无依赖):
├── C-Common: service-common 共享库
├── C-DB: 全量建表 SQL + MyBatis XML
└── C-Security: 加密/脱敏/拦截器基础框架

并行组2(业务层,依赖并行组1):
├── C-System: 系统管理(角色/账号/字典/日志)
├── C-Import: 数据导入(上传/预览/校验/入库)
└── C-Audit: 审核框架

并行组3(展示层,依赖并行组2):
├── C-Trade: 行情管理
├── C-Auth: 微信登录+身份路由
└── C-Home: 小程序首页

串行(集成层):
└── C-Gateway: 网关配置+拦截器注册

任务详细分解

C-Common: service-common 共享库(1天)

任务 文件 说明
C-Common.1 ApiResult.java 统一响应体
C-Common.2 PageResult.java 分页响应体
C-Common.3 BaseEntity.java 基础实体(id, created_at, updated_at)
C-Common.4 BizException.java 业务异常类
C-Common.5 ErrorCode.java 错误码枚举
C-Common.6 PageUtil.java 分页工具
C-Common.7 AesUtil.java AES 加密工具
C-Common.8 PhoneUtil.java 手机号脱敏工具
C-Common.9 JwtUtil.java JWT 工具

C-DB: 数据库(1天)

任务 文件 说明
C-DB.1 schema.sql 全量建表 SQL(15张表+索引)
C-DB.2 data.sql 初始数据(字典+管理员)
C-DB.3 SysUserMapper.xml 用户表 MyBatis 映射
C-DB.4 UserIdentityMapper.xml 身份表映射
C-DB.5 MarketPriceMapper.xml 行情表映射
C-DB.6 AuditLogMapper.xml 审核日志映射
C-DB.7 OperationLogMapper.xml 操作日志映射
C-DB.8 其他 Mapper.xml 剩余表的映射(空表预建)

C-Security: 安全基础设施(2天)

任务 文件 模块 说明
C-Sec.1 WxAuthInterceptor.java gateway-mobile 微信 JWT 拦截器
C-Sec.2 AdminAuthInterceptor.java gateway-management 后台 JWT 拦截器
C-Sec.3 PermissionInterceptor.java gateway-* RBAC 权限拦截器
C-Sec.4 DataMaskingInterceptor.java gateway-* 数据脱敏拦截器
C-Sec.5 WebMvcConfig.java gateway-* 拦截器注册配置
C-Sec.6 SecurityConfig.java service-common 安全配置常量

C-System: 系统管理(2天)

任务 文件 说明
C-Sys.1 SysRoleController.java 角色管理 API
C-Sys.2 SysRoleService.java 角色业务逻辑
C-Sys.3 SysUserController.java 账号管理 API
C-Sys.4 SysUserService.java 账号业务逻辑
C-Sys.5 DictController.java 字典管理 API
C-Sys.6 DictService.java 字典业务逻辑
C-Sys.7 OperationLogService.java 操作日志记录
C-Sys.8 OperationLogAspect.java 日志切面(AOP)

C-Import: 数据导入(2天)

任务 文件 说明
C-Imp.1 ImportController.java 导入 API(上传/预览/确认)
C-Imp.2 ExcelParseService.java Excel 解析(Apache POI)
C-Imp.3 ImportValidateService.java 数据校验(手机号/必填项)
C-Imp.4 ImportDedupService.java 去重逻辑(手机号+身份)
C-Imp.5 ImportExecuteService.java 入库执行(同步/异步)
C-Imp.6 ImportTemplateService.java 模板下载
C-Imp.7 FieldMappingConfig.java 字段映射配置(硬编码4种模板)

C-Audit: 审核框架(1天)

任务 文件 说明
C-Aud.1 AuditController.java 审核 API(列表/通过/驳回)
C-Aud.2 AuditService.java 审核业务逻辑
C-Aud.3 AuditLogService.java 审核日志记录
C-Aud.4 SlaReminderTask.java SLA 提醒定时任务(24h/48h)

C-Trade: 行情管理(0.5天)

任务 文件 说明
C-Trade.1 MarketPriceController.java 行情 CRUD API(后台)
C-Trade.2 MarketPriceService.java 行情业务逻辑
C-Trade.3 WxMarketPriceController.java 行情查询 API(小程序端)

C-Auth: 微信登录(1.5天)

任务 文件 说明
C-Auth.1 WxAuthController.java 登录 API(code→JWT)
C-Auth.2 WxAuthService.java 登录业务逻辑
C-Auth.3 IdentityService.java 身份查询+路由逻辑
C-Auth.4 WxApiService.java 微信 API 调用(code2session)

C-Home: 小程序首页(0.5天)

任务 文件 说明
C-Home.1 HomeController.java 首页 API(行情+金刚区)
C-Home.2 HomeService.java 首页数据聚合

C-Gateway: 网关配置(0.5天)

任务 文件 说明
C-Gw.1 GatewayMobileConfig.java 移动端网关路由配置
C-Gw.2 GatewayManagementConfig.java 管理端网关路由配置
C-Gw.3 application.properties 完整配置(DB/Redis/OSS/短信/JWT)

编译自检(Team C 执行)

# 依赖链编译
cd com.fenzhitech.crrc.service-common && ./gradlew compileJava
cd com.fenzhitech.crrc.service-system && ./gradlew compileJava
cd com.fenzhitech.crrc.service-audit && ./gradlew compileJava
cd com.fenzhitech.crrc.service-trade && ./gradlew compileJava
cd com.fenzhitech.crrc.gateway-mobile && ./gradlew compileJava
cd com.fenzhitech.crrc.gateway-management && ./gradlew compileJava

M3 验收标准

  • DELIVERY-MANIFEST.md 注明编译自检结果(零错误)
  • 每个 Controller 方法对应 api-definition.md 中一个接口
  • MyBatis XML 全部使用 #{} 语法(无 ${}
  • 手机号存储为 AES 密文
  • 接口返回手机号脱敏
  • 操作日志 AOP 切面正常记录

M4 Team D — 测试验收(5-7天)

交付产物

序号 文件路径 说明
1 deliveries/team-d-testing/test-cases.md 测试用例
2 deliveries/team-d-testing/test-report.md 测试报告
3 deliveries/team-d-testing/bug-list.md Bug 清单
4 deliveries/team-d-testing/DELIVERY-MANIFEST.md 交付清单
5 {module}/src/test/java/ 自动化测试代码

测试重点(业务领导指定)

核心接口(必须测试)

  • /api/admin/auth/login — 后台登录
  • /api/wx/auth/login — 微信登录
  • /api/admin/import/upload — Excel 上传
  • /api/admin/import/preview — 导入预览
  • /api/admin/import/confirm — 确认入库
  • /api/admin/audit/{id} — 审核操作
  • /api/wx/market-price — 今日行情

重点场景

场景 说明
登录成功/失败 微信登录正常流程、拒绝授权兜底
身份路由 0/1/N个身份的路由逻辑
Excel 导入 空行/格式错误/重复/超大文件
预览准确性 有效行/错误行/重复行计数正确
审核操作 通过/驳回、SLA 提醒触发
权限隔离 不同角色访问隔离、越权拦截
手机号安全 加密存储验证、接口脱敏验证

任务分解

任务 内容 耗时
M4.1 编写测试用例(≥45个,覆盖所有用例) 1.5天
M4.2 编写自动化测试代码(JUnit 4 + Spring Boot Test) 2天
M4.3 执行手动验证(核心接口冒烟) 0.5天
M4.4 运行 ./gradlew test 确认全部通过 0.5天
M4.5 编写 test-report.md 和 bug-list.md 0.5天
M4.6 Bug 修复(如有) 1-2天

M4 验收标准

  • 测试用例数 ≥ 45
  • 核心接口测试覆盖 ≥ 80%
  • ./gradlew test 全部通过
  • 测试代码未修改 src/main/java/ 下的文件
  • Bug 清单含复现步骤+严重等级
  • test-report.md 记录完整测试结果

阶段一风险与缓解

风险 影响 概率 缓解措施
20个功能点工期不足 延期1-2周 优先完成登录+导入+行情,审核框架可延到阶段2a初
Excel 导入格式多样性 字段映射不全 MVP 硬编码覆盖4种标准模板
微信手机号授权拒绝 用户无法注册 后台手动绑定兜底
Spring Boot 1.5.9 兼容性 SDK 版本冲突 阶段零已验证
安全框架与业务逻辑耦合 代码复杂度高 拦截器独立模块,AOP 切面解耦