fundplatform/.qoder/plans/资金平台功能完善与架构增强计划_4e6331df.md

298 lines
7.7 KiB
Markdown

# 资金平台功能完善与架构增强计划
## 前置条件
- ✅ 六步实施已完成
- ✅ 11个模块编译通过
- ✅ 数据库初始化完成
- ✅ fund-sys服务运行正常
- ✅ Gateway路由配置完成
---
## A. 完善fund-sys权限管理
### A.1 用户管理模块
**目标**: 实现用户CRUD接口
**实施步骤**:
1. 创建 `UserDTO.java` (用户创建/更新DTO)
2. 创建 `UserVO.java` (用户返回VO)
3. 创建 `UserService.java``UserServiceImpl.java`
4. 创建 `UserController.java` (REST接口)
5. 实现接口:
- `POST /api/v1/sys/user` - 创建用户
- `PUT /api/v1/sys/user/{id}` - 更新用户
- `GET /api/v1/sys/user/{id}` - 查询用户
- `GET /api/v1/sys/user/page` - 分页查询
- `DELETE /api/v1/sys/user/{id}` - 删除用户
**涉及文件**:
- `fund-sys/src/main/java/com/fundplatform/sys/dto/UserDTO.java`
- `fund-sys/src/main/java/com/fundplatform/sys/vo/UserVO.java`
- `fund-sys/src/main/java/com/fundplatform/sys/service/UserService.java`
- `fund-sys/src/main/java/com/fundplatform/sys/service/impl/UserServiceImpl.java`
- `fund-sys/src/main/java/com/fundplatform/sys/controller/UserController.java`
### A.2 角色管理模块
**实施步骤**: 同用户管理,创建Role相关类
**接口**: `/api/v1/sys/role` 系列接口
### A.3 菜单管理模块
**实施步骤**: 同用户管理,创建Menu相关类
**接口**: `/api/v1/sys/menu` 系列接口
### A.4 部门管理模块
**实施步骤**: 同用户管理,创建Dept相关类
**接口**: `/api/v1/sys/dept` 系列接口
**验证**: 每个模块完成后执行 `mvn -pl fund-sys clean install`
---
## B. 完善其他业务模块
### B.1 fund-req用款申请模块
**目标**: 实现用款申请完整业务流程
**实施步骤**:
1. 创建 `FundRequest.java` 实体类
2. 创建 `FundRequestMapper.java``FundRequestDataService.java`
3. 创建 `FundRequestService.java` 和实现类
4. 创建 `FundRequestController.java`
5. 实现接口:
- `POST /api/v1/req/fund-request` - 创建申请
- `PUT /api/v1/req/fund-request/{id}/approve` - 审批通过
- `PUT /api/v1/req/fund-request/{id}/reject` - 审批拒绝
- `GET /api/v1/req/fund-request/page` - 分页查询
**涉及文件**:
- `fund-req/src/main/java/com/fundplatform/req/data/entity/FundRequest.java`
- `fund-req/src/main/java/com/fundplatform/req/data/mapper/FundRequestMapper.java`
- `fund-req/src/main/java/com/fundplatform/req/data/service/FundRequestDataService.java`
- `fund-req/src/main/java/com/fundplatform/req/service/FundRequestService.java`
- `fund-req/src/main/java/com/fundplatform/req/controller/FundRequestController.java`
### B.2 fund-exp支出管理模块
**实施步骤**: 类似fund-req,创建支出相关类
### B.3 fund-receipt收款管理模块
**实施步骤**: 类似fund-req,创建收款相关类
---
## C. Gateway增强
### C.1 全局日志过滤器
**目标**: 记录所有请求日志,生成TraceId
**实施步骤**:
1. 创建 `GlobalLogFilter.java` (实现GatewayFilter)
2. 生成TraceId并写入请求头
3. 记录请求路径、方法、耗时
4. 配置到application.yml
**涉及文件**:
- `fund-gateway/src/main/java/com/fundplatform/gateway/filter/GlobalLogFilter.java`
- `fund-gateway/src/main/resources/application.yml`
### C.2 JWT鉴权过滤器
**目标**: 验证JWT Token,提取用户信息
**实施步骤**:
1. 创建 `JwtAuthFilter.java`
2. 验证Token有效性
3. 提取userId、tenantId写入请求头
4. 配置白名单路径(登录、健康检查等)
**涉及文件**:
- `fund-gateway/src/main/java/com/fundplatform/gateway/filter/JwtAuthFilter.java`
- `fund-gateway/src/main/resources/application.yml`
### C.3 限流配置
**实施步骤**:
1. 添加Redis依赖
2. 配置RequestRateLimiter过滤器
3. 设置限流规则(每秒请求数)
---
## D. 服务治理
### D.1 集成Nacos服务注册发现
**目标**: 实现服务自动注册和发现
**实施步骤**:
1. 添加Nacos依赖到所有服务
2. 配置Nacos地址(从memory获取: localhost:8848)
3. 配置服务名称和分组
4. 启动服务验证注册成功
**涉及文件**:
- 所有服务的 `pom.xml` 添加nacos依赖
- 所有服务的 `application.yml` 添加nacos配置
### D.2 集成Sentinel熔断降级
**实施步骤**:
1. 添加Sentinel依赖
2. 配置熔断规则
3. 配置降级逻辑
### D.3 统一配置中心
**实施步骤**:
1. 在Nacos创建配置文件
2. 各服务从Nacos读取配置
---
## E. 日志与监控
### E.1 集成ELK日志聚合
**目标**: 统一日志收集和分析
**实施步骤**:
1. 配置Logback输出JSON格式日志
2. 部署Filebeat收集日志
3. 部署Logstash处理日志
4. 部署Elasticsearch存储日志
5. 部署Kibana可视化
### E.2 集成SkyWalking链路追踪
**实施步骤**:
1. 添加SkyWalking Agent
2. 配置链路追踪
3. 集成Gateway和Feign
### E.3 Prometheus+Grafana监控
**实施步骤**:
1. 添加Micrometer依赖
2. 配置Prometheus端点
3. 部署Prometheus采集指标
4. 部署Grafana可视化
---
## F. 数据库优化
### F.1 读写分离配置
**实施步骤**:
1. 配置主从数据库
2. 使用ShardingSphere实现读写分离
3. 配置路由规则
### F.2 连接池优化
**实施步骤**:
1. 优化HikariCP配置(连接数、超时时间)
2. 配置连接池监控
### F.3 索引优化
**实施步骤**:
1. 分析慢查询SQL
2. 添加必要索引
3. 优化查询语句
---
## G. 高可用架构
### G.1 服务集群部署
**实施步骤**:
1. 各服务打包为Docker镜像
2. 配置Docker Compose或K8s部署
3. 配置负载均衡
### G.2 网关集群部署
**实施步骤**:
1. Gateway多实例部署
2. 配置Nginx负载均衡
### G.3 数据库高可用
**实施步骤**:
1. 配置MySQL主从复制
2. 配置自动故障切换
---
## H. 安全增强
### H.1 HTTPS配置
**实施步骤**:
1. 生成SSL证书
2. 配置Spring Boot HTTPS
3. 配置Gateway HTTPS
### H.2 API签名验证
**实施步骤**:
1. 设计签名算法(时间戳+密钥+签名)
2. 创建签名拦截器
3. 各服务集成签名验证
### H.3 数据加密存储
**实施步骤**:
1. 敏感字段加密(手机号、身份证等)
2. 使用AES或RSA加密
3. 配置加解密工具类
---
## I. 性能优化
### I.1 Redis缓存集成
**目标**: 减少数据库查询压力
**实施步骤**:
1. 添加Redis依赖(从memory获取密码: zjf@123456)
2. 配置Redis连接
3. 实现缓存工具类
4. 对热点数据添加缓存
**涉及文件**:
- `fund-common/src/main/java/com/fundplatform/common/cache/RedisService.java`
- 所有服务的 `pom.xml` 添加redis依赖
- 所有服务的 `application.yml` 添加redis配置
### I.2 接口性能测试
**实施步骤**:
1. 使用JMeter编写测试脚本
2. 压测核心接口
3. 分析性能瓶颈
4. 优化慢接口
### I.3 异步处理优化
**实施步骤**:
1. 引入消息队列(RabbitMQ/Kafka)
2. 异步处理耗时操作
3. 实现最终一致性
---
## 实施优先级
| 优先级 | 模块 | 预计时间 | 依赖 |
|--------|------|----------|------|
| P0 | C.1 Gateway日志过滤器 | 2小时 | 无 |
| P0 | C.2 Gateway鉴权过滤器 | 3小时 | 无 |
| P1 | A.1 用户管理模块 | 4小时 | 无 |
| P1 | B.1 fund-req用款申请 | 4小时 | 无 |
| P1 | D.1 Nacos服务注册 | 4小时 | 无 |
| P2 | I.1 Redis缓存集成 | 4小时 | 无 |
| P2 | E.1 ELK日志聚合 | 1天 | 无 |
| P3 | 其他模块 | 按需 | 前置模块 |
---
## 验证标准
每个阶段完成后需验证:
1. ✅ 编译通过: `mvn clean install`
2. ✅ 服务启动正常
3. ✅ 接口测试通过
4. ✅ Git提交代码
---
## 风险提示
1. **Spring Cloud版本兼容性**: 注意Spring Boot 3.2与Spring Cloud版本匹配
2. **数据库性能**: 注意索引优化,避免慢查询
3. **服务稳定性**: 添加熔断降级,防止雪崩
4. **安全性**: API接口必须鉴权,敏感数据加密