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

7.7 KiB

资金平台功能完善与架构增强计划

前置条件

  • 六步实施已完成
  • 11个模块编译通过
  • 数据库初始化完成
  • fund-sys服务运行正常
  • Gateway路由配置完成

A. 完善fund-sys权限管理

A.1 用户管理模块

目标: 实现用户CRUD接口

实施步骤:

  1. 创建 UserDTO.java (用户创建/更新DTO)
  2. 创建 UserVO.java (用户返回VO)
  3. 创建 UserService.javaUserServiceImpl.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.javaFundRequestDataService.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接口必须鉴权,敏感数据加密