# 交付清单 — Team B 架构师 ## 里程碑信息 - **阶段**: 架构设计 - **里程碑编号**: milestone-2 - **提交时间**: 2026-05-30 18:00 - **负责团队**: Team B ## 交付产物 | 序号 | 文件路径 | 说明 | 覆盖度检查 | 核心内容摘要 | |------|----------|------|------------|--------------| | 1 | deliveries/team-b-architecture/design.md | 架构设计文档 | 模块数: 5/5, 架构层: 4/4 | 系统架构、数据库设计、接口设计、安全设计、技术选型 | | 2 | deliveries/team-b-architecture/api-definition.md | 接口定义文档 | 接口数: 25/25, 模块数: 5/5 | 认证5接口、用户4接口、系统8接口、审核3接口、首页5接口 | | 3 | deliveries/team-b-architecture/tech-stack.md | 技术选型文档 | 类别: 8/8 | 后端技术栈、前端技术栈、开发工具、部署环境、设计规范 | | 4 | deliveries/team-b-architecture/DELIVERY-MANIFEST.md | 本交付清单 | - | 交付物清单、关键信息、问题反馈 | ## 修改文件清单 | 序号 | 文件路径 | 操作类型 | 说明 | |------|----------|----------|------| | 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 | 新增 | 本交付清单 | ## 交付说明 本次交付为阶段一(基础设施与用户体系)的架构设计成果,基于 Team A 的需求规格(spec.md)进行设计。 ### 核心内容 1. **系统架构设计** - 四层架构:客户端层 → API网关层 → 业务逻辑层 → 数据存储层 - 模块划分:用户模块、系统模块、审核模块、首页模块、通用模块 - 分层职责:Controller(API入口)→ Service(业务逻辑)→ Mapper(数据访问) 2. **数据库设计** - 核心表:sys_user、user_identity、sys_role、sys_permission、sys_dict、audit_log、operation_log - 索引设计:phone_hash唯一索引、openid唯一索引、user_id索引、identity_type索引 - 加密方案:手机号AES加密存储,SHA256哈希用于查询 3. **接口设计** - 接口总数:25个 - 模块分布:认证5个、用户4个、系统8个、审核3个、首页5个 - 接口规范:RESTful风格,统一响应格式,错误码规范 4. **安全设计** - 认证流程:JWT Token认证,拦截器校验,RBAC权限控制 - 数据安全:手机号加密、密码BCrypt、敏感数据脱敏 - 接口安全:参数校验、SQL注入防护、防重放攻击 5. **技术选型** - 后端:Java 8 + Spring Boot 1.5.9 + MyBatis + MySQL + Redis - 前端:微信小程序 + Vue 2 + Element UI + ECharts - 工具:Maven + Git + Gogs ## 给下游团队的关键信息 ### 关键决策 1. **分层架构**: Controller → Service → Mapper,职责清晰,便于测试 2. **接口设计**: 25个接口覆盖20个功能点,部分功能合并为单个接口 3. **数据库设计**: 7张核心表,索引设计覆盖高频查询场景 4. **安全方案**: JWT认证 + RBAC权限 + 手机号加密,满足安全要求 5. **技术栈**: 固定版本,避免兼容性问题 ### 隐含约束 1. **Controller 必须参数校验**: 使用 @Valid 或手动校验 2. **Service 必须事务管理**: 使用 @Transactional 注解 3. **Mapper 必须 #{} 参数化**: 禁止使用 ${} 4. **接口响应必须统一格式**: 使用 ApiResult 包装 5. **敏感数据必须脱敏**: 手机号、密码等 ### 特别注意 1. **身份路由逻辑**: 0个身份→提示联系村委会,1个身份→直接进入,N个身份→选择页 2. **密码锁定机制**: 连续5次错误锁定30分钟,需记录锁定时间 3. **审核SLA**: ≤24小时提醒,48小时升级,需定时任务支持 4. **Token黑名单**: 退出登录时将Token加入Redis黑名单 ## 对上团队的问题 无。Team A 的需求规格清晰完整,架构设计无歧义。 ## 待确认事项 1. **数据库连接池**: 建议使用 HikariCP(Spring Boot 1.5.x 默认),是否需要调整? 2. **日志框架**: 建议使用 Logback(Spring Boot 默认),是否需要切换? 3. **缓存策略**: Token黑名单和验证码使用Redis,是否需要其他缓存?