# 资金平台功能完善与架构增强计划 ## 前置条件 - ✅ 六步实施已完成 - ✅ 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接口必须鉴权,敏感数据加密