feat(user-center): 新增收货地址管理功能

- 添加收货地址实体类、控制器、服务类和数据访问接口
- 实现收货地址创建、获取列表、获取详情、更新和删除功能- 集成JWT认证,确保操作的安全性
- 新增相关API文档
This commit is contained in:
ylweng
2025-09-11 23:23:51 +08:00
parent 6c22882cb8
commit 33c138c839
77 changed files with 14049 additions and 139 deletions

View File

@@ -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 5Java单元测试框架
- MockitoJava Mock框架
- PostmanAPI接口测试工具
- 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技术栈提供技术培训和指导
- 微服务架构增加了系统复杂性:制定详细的架构设计文档
- 多团队协作可能存在的沟通问题:建立定期沟通机制