Appearance
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.generator→la.lfpay.generator - 数据库初始化脚本:
gen_table、gen_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模块 - 迁移内容:
mapper、domain(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 状态: 已完成
核心组件
AppSecurityProperties - 安全配置属性
- 签名开关:
signature-enabled - 时间窗口:
timestamp-window(默认300秒) - 密钥对:
keys(AppKey → SecretKey)
- 签名开关:
RequestBodyCachingFilter - 请求体缓存过滤器
- 解决POST请求Body只能读取一次的问题
- 支持多次读取请求体
SignatureInterceptor - 签名验证拦截器
- 验证必需请求头(X-App-Key、X-Nonce、X-Timestamp、X-Signature)
- 防重放检查(Nonce去重)
- 时间戳有效性验证
- HMAC-SHA256签名验证
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工具类
- 命名空间管理(
nsAdd、nsExist、nsGetAllKeys、nsDeleteAll)
依赖
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.ymlapplication-prod.ymlapplication-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.sql、gen_table_column.sql
注意事项
- 不要添加文档 - 除非明确要求
- 测试需要数据库 - 确保数据源配置正确
- Redis必需 - 防重放攻击功能依赖Redis
- 端口占用 - System:6666, APP:8888
- 日志文件 -
.logs目录已忽略,不提交Git
更新日志
2025-11-13
- ✅ 完成APP防重放攻击功能
- ✅ 增强Redis基础设施
- ✅ 创建RedisUtils工具类
- ✅ 移除.logs目录Git跟踪
2025-11
- ✅ 完成代码生成器集成
- ✅ 完成DAO层架构重构
- ✅ 完成应用启动日志增强
- ✅ 解决循环依赖问题
- ✅ 统一包名规范
最后更新: 2025-11-13
维护者: lfpay.la