Skip to content

LFPay 项目状态跟踪

项目概述

项目名称: LFPay
技术栈: Spring Boot 3.5.7 + Java 21 + MyBatis Plus 3.5.14
架构: Maven多模块项目
基础路径: /Users/jian/606/lfpay/code/pay


模块结构

1. Infrastructure(基础设施层)

  • infra-common - 通用工具类
  • infra-security - 安全框架
  • infra-mybatisplus - MyBatis Plus配置
  • infra-redis - Redis缓存(含Redisson)
  • infra-captcha - 验证码
  • infra-spring-task - 定时任务
  • infra-log - 日志处理

2. DAO(数据访问层)

  • system-dao - 系统数据访问(Mapper、Entity、DTO)
  • app-dao - APP数据访问

3. Module(业务模块层)

  • system-module - 系统业务模块
  • system-generator - 代码生成器模块
  • app-module - APP业务模块

4. Interface(接口层/启动模块)

  • system-start - 系统服务启动(端口6666)
  • app-start - APP服务启动(端口8888)

已完成功能

✅ 1. 代码生成器集成(system-generator)

完成时间: 2025-11 状态: 已完成

核心功能

  • 数据库表查询(支持多数据源)
  • 表结构导入
  • 代码预览
  • 代码下载(ZIP)
  • 模板引擎:Velocity 2.4.1

技术实现

  • 替换Anyline为JDBC DatabaseMetaData
  • 包名重构:com.coin.generatorla.lfpay.generator
  • 数据库初始化脚本:gen_tablegen_table_column

REST API

  • GET /tool/gen/getDataNames - 获取数据源列表
  • GET /tool/gen/db/list - 查询数据库表
  • GET /tool/gen/list - 查询已导入表
  • POST /tool/gen/importTable - 导入表
  • GET /tool/gen/preview/{tableId} - 预览代码
  • GET /tool/gen/download/{tableId} - 下载代码

测试

  • 测试位置:interface/system-start/src/test
  • 测试类:GeneratorTest.java
  • 配置文件:application-test.yml
  • 快速脚本:run-test.sh

✅ 2. DAO层架构重构

完成时间: 2025-11 状态: 已完成

重构内容

  • system-module抽离数据访问层
  • 创建独立system-dao模块
  • 迁移内容:mapperdomain(entity/dto)、resources/mapper/*.xml

包名调整

  • 原包名:la.lfpay.system.service.*
  • 新包名:la.lfpay.system.dao.*

依赖关系

system-module → system-dao → infra-mybatisplus
app-module → app-dao → infra-mybatisplus

✅ 3. 应用启动日志增强

完成时间: 2025-11 状态: 已完成

功能

  • 启动成功后输出详细信息
  • 显示模块名称
  • 显示本地/外部访问地址
  • 显示端口号
  • 显示激活的Profile

示例输出

----------------------------------------------------------
    Application 'System Service' is running! Access URLs:
    Local:      http://localhost:6666
    External:   http://192.168.1.100:6666
    Profile(s): [dev]
----------------------------------------------------------

✅ 4. APP防重放攻击功能

完成时间: 2025-11-13 状态: 已完成

核心组件

  1. AppSecurityProperties - 安全配置属性

    • 签名开关:signature-enabled
    • 时间窗口:timestamp-window(默认300秒)
    • 密钥对:keys(AppKey → SecretKey)
  2. RequestBodyCachingFilter - 请求体缓存过滤器

    • 解决POST请求Body只能读取一次的问题
    • 支持多次读取请求体
  3. SignatureInterceptor - 签名验证拦截器

    • 验证必需请求头(X-App-Key、X-Nonce、X-Timestamp、X-Signature)
    • 防重放检查(Nonce去重)
    • 时间戳有效性验证
    • HMAC-SHA256签名验证
  4. RedisUtils - Redis工具类

    • 命名空间管理
    • Nonce存储和查询
    • 自动过期清理

配置示例

yaml
app:
  security:
    signature-enabled: false  # 开发环境关闭
    timestamp-window: 300
    keys:
      "magic------asguiuasiu678234---2389423794": "secret..."
      "ios-client": "test-app-key"

签名算法

待签名字符串 = HTTP方法 + "\n" + URI + "\n" + Query参数 + "\n" + Body + "\n" + Nonce + "\n" + Timestamp
签名 = HMAC-SHA256(待签名字符串, SecretKey)

依赖

  • hutool-crypto:5.8.34 - HMAC签名
  • redisson-spring-boot-starter:3.35.0 - Redis客户端
  • infra-redis - Redis配置

✅ 5. Redis基础设施增强

完成时间: 2025-11-13 状态: 已完成

新增功能

  • Redisson集成
  • RedisUtils工具类
  • 命名空间管理(nsAddnsExistnsGetAllKeysnsDeleteAll

依赖

xml
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.35.0</version>
</dependency>

待完成功能

🔲 1. app-module业务模块

优先级: 高 预计时间: 待定

待实现

  • 创建app-module模块
  • 实现APP业务逻辑
  • Controller层
  • Service层
  • 依赖app-dao

依赖关系

app-start → app-module → app-dao

🔲 2. 数据库配置完善

优先级: 高 预计时间: 待定

待配置

  • 数据源配置(MySQL连接信息)
  • 初始化SQL脚本执行
  • 代码生成器表结构初始化
  • 多数据源配置(如需要)

配置文件

  • application-dev.yml
  • application-prod.yml
  • application-test.yml

🔲 3. 安全认证完善

优先级: 中 预计时间: 待定

待实现

  • Sa-Token集成
  • 权限控制
  • 接口鉴权
  • Token刷新机制
  • 登录/登出

当前问题

  • API测试时提示"认证失败,无法访问系统资源"
  • 需要配置白名单或临时关闭认证

🔲 4. API文档

优先级: 中 预计时间: 待定

待实现

  • Swagger/OpenAPI集成
  • 接口文档生成
  • 在线调试功能

配置

yaml
springdoc:
  api-docs:
    enabled: true
    path: /v3/api-docs

🔲 5. 单元测试完善

优先级: 中 预计时间: 待定

待实现

  • Service层单元测试
  • Controller层集成测试
  • Mapper层测试
  • 测试覆盖率提升

当前状态

  • 代码生成器测试:已完成
  • 其他模块测试:待补充

🔲 6. 日志系统完善

优先级: 低 预计时间: 待定

待实现

  • 日志分级配置
  • 日志文件切割
  • 日志归档策略
  • ELK集成(可选)

当前状态

  • 基础日志:已配置
  • .logs目录:已加入.gitignore

🔲 7. 监控和运维

优先级: 低 预计时间: 待定

待实现

  • Spring Boot Actuator配置
  • 健康检查端点
  • 指标监控
  • 链路追踪(可选)

技术债务

1. 循环依赖问题

状态: 已解决 解决方案: 测试代码从system-generator移至system-start

2. 包名不一致

状态: 已解决 解决方案: 统一使用la.lfpay.*包名

3. 依赖管理

状态: 进行中 待优化:

  • 版本统一管理
  • 依赖冲突检查
  • 传递依赖优化

快速启动

编译项目

bash
mvn clean install -DskipTests -T 4

启动System服务

bash
cd interface/system-start
java -jar target/system-start.jar
# 访问: http://localhost:6666

启动APP服务

bash
cd interface/app-start
java -jar target/app-start.jar
# 访问: http://localhost:8888

运行测试

bash
./run-test.sh

配置文件

主配置

  • application.yml - 主配置
  • application-dev.yml - 开发环境
  • application-prod.yml - 生产环境
  • application-test.yml - 测试环境

特殊配置

  • generator.yml - 代码生成器配置
  • upload-allowed-types.yml - 文件上传类型配置

脚本工具

1. run-test.sh

  • 快速运行单元测试
  • 启动应用
  • 编译打包
  • 查看测试指南

2. test-generator-api.sh

  • 测试代码生成器API
  • 获取数据源列表
  • 查询数据库表
  • 查询已导入表

数据库

表结构

  • gen_table - 代码生成业务表
  • gen_table_column - 代码生成业务字段

初始化脚本

  • 位置:module/system-generator/src/main/resources/sql/
  • 文件:gen_table.sqlgen_table_column.sql

注意事项

  1. 不要添加文档 - 除非明确要求
  2. 测试需要数据库 - 确保数据源配置正确
  3. Redis必需 - 防重放攻击功能依赖Redis
  4. 端口占用 - System:6666, APP:8888
  5. 日志文件 - .logs目录已忽略,不提交Git

更新日志

2025-11-13

  • ✅ 完成APP防重放攻击功能
  • ✅ 增强Redis基础设施
  • ✅ 创建RedisUtils工具类
  • ✅ 移除.logs目录Git跟踪

2025-11

  • ✅ 完成代码生成器集成
  • ✅ 完成DAO层架构重构
  • ✅ 完成应用启动日志增强
  • ✅ 解决循环依赖问题
  • ✅ 统一包名规范

最后更新: 2025-11-13
维护者: lfpay.la