feat(user-center): 新增收货地址管理功能
- 添加收货地址实体类、控制器、服务类和数据访问接口 - 实现收货地址创建、获取列表、获取详情、更新和删除功能- 集成JWT认证,确保操作的安全性 - 新增相关API文档
This commit is contained in:
@@ -1,58 +1,44 @@
|
||||
# 后端API开发计划
|
||||
|
||||
## 1. 概述
|
||||
|
||||
本项目采用双技术栈架构,后端服务基于Java Spring Boot和Node.js两种技术栈构建。Java技术栈作为主要后端技术,采用微服务架构设计;Node.js技术栈作为辅助技术,用于特定业务场景。
|
||||
|
||||
## 2. 技术栈架构
|
||||
|
||||
### 2.1 Java技术栈(主要)
|
||||
- **核心框架**: Spring Boot 2.7.x, Spring Cloud 2021.x
|
||||
- **服务注册与发现**: Eureka
|
||||
- **配置中心**: Spring Cloud Config
|
||||
- **API网关**: Spring Cloud Gateway
|
||||
- **数据库**: MySQL 8.0, Spring Data JPA
|
||||
## 1. 技术栈架构
|
||||
- **主要后端技术栈**: Java (Spring Boot + Spring Cloud)
|
||||
- **辅助后端技术栈**: Node.js
|
||||
- **数据库**: MySQL 8.0
|
||||
- **缓存**: Redis
|
||||
- **消息队列**: RabbitMQ
|
||||
- **安全框架**: Spring Security + JWT
|
||||
- **构建工具**: Maven 3.8.x
|
||||
- **API文档**: Swagger/OpenAPI 3.0
|
||||
- **容器化**: Docker
|
||||
- **编排**: Kubernetes
|
||||
|
||||
### 2.2 Node.js技术栈(辅助)
|
||||
- **运行环境**: Node.js 16.x
|
||||
- **Web框架**: Express.js
|
||||
- **数据库**: MySQL 8.0
|
||||
- **ORM**: Sequelize
|
||||
- **构建工具**: NPM/Yarn
|
||||
## 2. Java后端开发计划
|
||||
|
||||
## 3. Java后端开发计划
|
||||
|
||||
### 3.1 已完成模块
|
||||
### 2.1 已完成模块
|
||||
1. **养殖管理服务 (farming-service:8081)**
|
||||
- 功能:养殖场管理、牲畜档案、饲养记录等
|
||||
- 状态:已完成开发和部署
|
||||
- 功能:牛只管理、饲喂记录、防疫记录等
|
||||
- 状态:已完成
|
||||
- 负责人:Java开发团队
|
||||
|
||||
2. **用户中心服务 (user-center-service:8082)**
|
||||
- 功能:用户管理、权限控制、认证授权等
|
||||
- 状态:已完成开发和部署
|
||||
- 功能:用户注册、登录、权限管理等
|
||||
- 状态:已完成
|
||||
- 负责人:Java开发团队
|
||||
|
||||
### 3.2 开发中模块
|
||||
### 2.2 开发中模块
|
||||
1. **交易服务 (trade-service:8083)**
|
||||
- 功能:活牛交易、订单管理、支付处理等
|
||||
- 功能:商品发布、订单管理、物流跟踪等
|
||||
- 状态:开发中
|
||||
- 进度:60%
|
||||
- 进度:10%
|
||||
- 预计完成时间:2024年2月15日
|
||||
- 负责人:Java开发团队
|
||||
|
||||
2. **金融服务 (finance-service:8084)**
|
||||
- 功能:贷款申请、保险购买、金融产品等
|
||||
- 状态:开发中
|
||||
- 进度:40%
|
||||
- 进度:5%
|
||||
- 预计完成时间:2024年2月28日
|
||||
- 负责人:Java开发团队
|
||||
|
||||
### 3.3 待开发模块
|
||||
### 2.3 待开发模块
|
||||
1. **数据平台服务 (data-platform-service:8085)**
|
||||
- 功能:数据统计、报表生成、数据分析等
|
||||
- 状态:待开发
|
||||
@@ -81,134 +67,112 @@
|
||||
- 预计完成时间:2024年4月20日
|
||||
- 负责人:Java开发团队
|
||||
|
||||
## 4. Node.js后端开发计划
|
||||
## 3. Node.js后端开发计划
|
||||
|
||||
### 4.1 已完成模块
|
||||
1. **AI能力服务 (ai-service:3001)**
|
||||
### 3.1 已完成模块
|
||||
1. **AI能力服务 (ai-service:8089)**
|
||||
- 功能:图像识别、智能分析等AI相关功能
|
||||
- 状态:已完成基础框架搭建
|
||||
- 负责人:Node.js开发团队
|
||||
|
||||
### 4.2 开发中模块
|
||||
### 3.2 开发中模块
|
||||
1. **部分遗留服务 (legacy-service:3002)**
|
||||
- 功能:部分原有系统功能的兼容
|
||||
- 功能:部分原有系统功能迁移
|
||||
- 状态:重构中
|
||||
- 进度:30%
|
||||
- 预计完成时间:2024年2月20日
|
||||
- 预计完成时间:2024年3月15日
|
||||
- 负责人:Node.js开发团队
|
||||
|
||||
### 4.3 待开发模块
|
||||
1. **其他辅助服务**
|
||||
- 功能:根据业务需求开发的辅助功能
|
||||
- 状态:待规划
|
||||
- 预计开始时间:2024年3月1日
|
||||
- 预计完成时间:根据需求确定
|
||||
- 负责人:Node.js开发团队
|
||||
## 4. 微服务架构规划
|
||||
|
||||
## 5. 微服务架构规划
|
||||
### 4.1 核心业务服务(Java)
|
||||
| 服务名称 | 端口 | 功能描述 |
|
||||
|---------|------|----------|
|
||||
| farming-service | 8081 | 养殖管理服务 |
|
||||
| user-center-service | 8082 | 用户中心服务 |
|
||||
| trade-service | 8083 | 交易服务 |
|
||||
| finance-service | 8084 | 金融服务 |
|
||||
| data-platform-service | 8085 | 数据平台服务 |
|
||||
| government-service | 8086 | 政府服务 |
|
||||
| dashboard-service | 8087 | 大屏服务 |
|
||||
| mall-service | 8088 | 商城服务 |
|
||||
|
||||
### 5.1 核心服务端口分配
|
||||
| 服务名称 | 端口号 | 技术栈 | 状态 |
|
||||
|---------|--------|--------|------|
|
||||
| farming-service | 8081 | Java | 已完成 |
|
||||
| user-center-service | 8082 | Java | 已完成 |
|
||||
| trade-service | 8083 | Java | 开发中 |
|
||||
| finance-service | 8084 | Java | 开发中 |
|
||||
| data-platform-service | 8085 | Java | 待开发 |
|
||||
| government-service | 8086 | Java | 待开发 |
|
||||
| dashboard-service | 8087 | Java | 待开发 |
|
||||
| mall-service | 8088 | Java | 待开发 |
|
||||
### 4.2 基础设施服务(Java)
|
||||
| 服务名称 | 端口 | 功能描述 |
|
||||
|---------|------|----------|
|
||||
| gateway | 8000 | 网关服务 |
|
||||
| registry | 8761 | 服务注册中心 |
|
||||
| config-server | 8888 | 配置服务器 |
|
||||
|
||||
### 5.2 基础设施服务端口分配
|
||||
| 服务名称 | 端口号 | 技术栈 | 状态 |
|
||||
|---------|--------|--------|------|
|
||||
| gateway | 8080 | Java | 待开发 |
|
||||
| registry | 8761 | Java | 待开发 |
|
||||
| config-server | 8888 | Java | 待开发 |
|
||||
### 4.3 辅助服务(Node.js)
|
||||
| 服务名称 | 端口 | 功能描述 |
|
||||
|---------|------|----------|
|
||||
| ai-service | 8089 | AI能力服务 |
|
||||
| legacy-service | 3002 | 部分遗留服务 |
|
||||
|
||||
### 5.3 Node.js服务端口分配
|
||||
| 服务名称 | 端口号 | 技术栈 | 状态 |
|
||||
|---------|--------|--------|------|
|
||||
| ai-service | 3001 | Node.js | 已完成基础框架 |
|
||||
| legacy-service | 3002 | Node.js | 重构中 |
|
||||
## 5. 技术迁移策略
|
||||
|
||||
## 6. 技术迁移策略
|
||||
### 5.1 迁移原则
|
||||
1. 核心业务优先迁移至Java技术栈
|
||||
2. 保持现有Node.js服务的稳定性
|
||||
3. 逐步替换遗留系统功能
|
||||
|
||||
### 6.1 迁移原则
|
||||
1. **渐进式迁移**: 逐步将Node.js服务迁移到Java微服务架构
|
||||
2. **业务优先**: 优先迁移核心业务服务
|
||||
3. **兼容性保证**: 确保迁移过程中不影响现有业务
|
||||
4. **数据一致性**: 保证数据迁移的完整性和一致性
|
||||
### 5.2 迁移步骤
|
||||
1. 完成核心业务服务的Java版本开发
|
||||
2. 部署并测试微服务架构
|
||||
3. 逐步迁移现有Node.js功能
|
||||
4. 最终统一到Java微服务架构
|
||||
|
||||
### 6.2 迁移步骤
|
||||
1. **评估阶段**: 评估现有Node.js服务的复杂度和迁移难度
|
||||
2. **设计阶段**: 设计Java微服务架构和接口规范
|
||||
3. **开发阶段**: 开发新的Java微服务
|
||||
4. **测试阶段**: 进行全面的功能测试和性能测试
|
||||
5. **部署阶段**: 逐步替换现有Node.js服务
|
||||
6. **监控阶段**: 监控新服务的运行状态和性能表现
|
||||
## 6. 开发规范
|
||||
|
||||
## 7. 开发规范
|
||||
### 6.1 代码规范
|
||||
- 遵循阿里巴巴Java开发手册
|
||||
- 使用Checkstyle进行代码检查
|
||||
- 所有接口遵循RESTful设计规范
|
||||
|
||||
### 7.1 代码规范
|
||||
1. **Java代码规范**: 遵循阿里巴巴Java开发手册
|
||||
2. **Node.js代码规范**: 遵循JavaScript Standard Style
|
||||
3. **API设计规范**: 遵循RESTful API设计原则
|
||||
4. **数据库设计规范**: 遵循数据库设计范式
|
||||
### 6.2 文档规范
|
||||
- 所有API接口必须提供Swagger文档
|
||||
- 数据库设计需提供ER图和说明文档
|
||||
- 重要业务逻辑需提供流程图和说明
|
||||
|
||||
### 7.2 文档规范
|
||||
1. **API文档**: 每个接口必须提供详细的API文档
|
||||
2. **设计文档**: 每个服务必须提供架构设计文档
|
||||
3. **部署文档**: 每个服务必须提供部署说明文档
|
||||
### 6.3 测试规范
|
||||
- 单元测试覆盖率不低于80%
|
||||
- 接口测试覆盖所有业务场景
|
||||
- 性能测试满足系统设计要求
|
||||
|
||||
### 7.3 测试规范
|
||||
1. **单元测试**: 每个模块必须提供单元测试
|
||||
2. **集成测试**: 服务间接口必须提供集成测试
|
||||
3. **性能测试**: 关键服务必须提供性能测试报告
|
||||
## 7. 测试策略
|
||||
|
||||
## 8. 测试策略
|
||||
### 7.1 测试类型
|
||||
- 单元测试:验证各模块功能正确性
|
||||
- 集成测试:验证服务间交互正确性
|
||||
- 接口测试:验证API接口功能和性能
|
||||
- 压力测试:验证系统在高并发下的稳定性
|
||||
|
||||
### 8.1 测试类型
|
||||
1. **单元测试**: 验证每个模块的功能正确性
|
||||
2. **集成测试**: 验证服务间的接口调用
|
||||
3. **性能测试**: 验证系统的性能表现
|
||||
4. **安全测试**: 验证系统的安全性
|
||||
### 7.2 测试工具
|
||||
- JUnit 5:Java单元测试框架
|
||||
- Mockito:Java Mock框架
|
||||
- Postman:API接口测试工具
|
||||
- JMeter:性能测试工具
|
||||
|
||||
### 8.2 测试工具
|
||||
1. **Java测试**: JUnit, Mockito
|
||||
2. **Node.js测试**: Jest, Mocha
|
||||
3. **API测试**: Postman, JMeter
|
||||
4. **性能测试**: JMeter, Gatling
|
||||
## 8. 部署策略
|
||||
|
||||
## 9. 部署策略
|
||||
### 8.1 部署环境
|
||||
- 开发环境:本地Docker容器
|
||||
- 测试环境:专用测试服务器
|
||||
- 生产环境:Kubernetes集群
|
||||
|
||||
### 9.1 部署环境
|
||||
1. **开发环境**: 本地开发环境
|
||||
2. **测试环境**: 内部测试环境
|
||||
3. **预生产环境**: 预生产验证环境
|
||||
4. **生产环境**: 正式生产环境
|
||||
### 8.2 部署方式
|
||||
- 使用Docker容器化部署
|
||||
- 通过Kubernetes进行服务编排
|
||||
- 使用CI/CD流水线自动化部署
|
||||
|
||||
### 9.2 部署方式
|
||||
1. **容器化部署**: 使用Docker容器化部署
|
||||
2. **自动化部署**: 使用Jenkins实现CI/CD
|
||||
3. **蓝绿部署**: 关键服务采用蓝绿部署策略
|
||||
4. **滚动更新**: 普通服务采用滚动更新策略
|
||||
## 9. 风险控制
|
||||
|
||||
## 10. 风险控制
|
||||
### 9.1 技术风险
|
||||
- 微服务间通信复杂性:使用Spring Cloud Gateway统一管理
|
||||
- 数据一致性问题:引入分布式事务解决方案
|
||||
- 高并发场景下的数据库性能瓶颈:引入读写分离和分库分表策略
|
||||
|
||||
### 10.1 技术风险
|
||||
1. **技术栈切换风险**: 开发团队需要适应新的技术栈
|
||||
2. **性能风险**: 微服务架构可能带来性能损耗
|
||||
3. **数据一致性风险**: 分布式系统中的数据一致性问题
|
||||
|
||||
### 10.2 管理风险
|
||||
1. **进度风险**: 多个服务并行开发可能影响整体进度
|
||||
2. **沟通风险**: 不同技术团队间的沟通协调问题
|
||||
3. **质量风险**: 快速开发可能影响代码质量
|
||||
|
||||
### 10.3 应对措施
|
||||
1. **技术培训**: 组织技术培训帮助团队适应新技术
|
||||
2. **性能优化**: 通过缓存、异步等手段优化性能
|
||||
3. **监控告警**: 建立完善的监控告警机制
|
||||
4. **代码审查**: 严格执行代码审查制度
|
||||
5. **定期评审**: 定期进行项目进度评审
|
||||
### 9.2 管理风险
|
||||
- 团队需要适应新的Java技术栈:提供技术培训和指导
|
||||
- 微服务架构增加了系统复杂性:制定详细的架构设计文档
|
||||
- 多团队协作可能存在的沟通问题:建立定期沟通机制
|
||||
Reference in New Issue
Block a user