Commit Graph

49 Commits

Author SHA1 Message Date
7316591ebd ```
refactor(puzzle): 移除重复图片检测中的异常抛出逻辑

- 删除了当所有图片URL相同时抛出DuplicateImageException的检查代码
- 保留了URL去重和日志记录功能
- 简化了重复图片检测流程
```
2026-02-07 20:22:29 +08:00
1e71add551 Revert "refactor(storage): 简化存储适配器配置逻辑并移除降级机制"
This reverts commit 95c82cfcf2.
2026-02-05 22:47:13 +08:00
95c82cfcf2 refactor(storage): 简化存储适配器配置逻辑并移除降级机制
- 移除默认存储配置常量 DEFAULT_STORAGE
- 简化 UploadStage 中的存储适配器获取逻辑,直接使用 StorageFactory.use()
- 移除降级到默认存储的处理机制
- 在 PuzzleGenerateServiceImpl 中复用存储适配器实例
- 移除 SourceRepository 中的 StorageUnsupportedException 导入
- 移除 GoodsServiceImpl 中的 StorageType 枚举导入
- 移除 SourceServiceImpl 中的 ScenicService 依赖注入
- 移除 PrinterServiceImpl 中的复杂存储适配器配置逻辑
- 在 TaskTaskServiceImpl 中统一使用景点存储适配器
- 在 FaceCleaner 中添加新的存储清理逻辑,使用独立的图片存储适配器
- 添加 sourceImageUrlMap 和 sourceScenicIdMap 来优化文件清理逻辑
2026-02-05 14:16:16 +08:00
ecbdec4518 test(puzzle 2026-01-27 09:47:33 +08:00
a8156976be feat(puzzle): 添加免费拼图通知任务功能
- 在MemberPuzzleMapper中新增listFreeUnpurchased方法用于查询指定时间范围内生成且未购买的免费拼图记录
- 新增FreePuzzleNotificationTask定时任务类,每天晚7点执行免费拼图通知
- 添加SQL映射配置实现免费拼图记录的查询逻辑
- 实现微信订阅通知触发机制,向符合条件的用户发送免费拼图领取通知
- 集成景区信息查询和会员信息获取功能用于通知内容构造
2026-01-20 18:35:57 +08:00
4a07f5bba9 fix(puzzle): 修复拼图生成服务中的打印队列关联ID问题
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
- 将硬编码的0L替换为实际的拼图记录ID
- 确保打印队列记录能正确关联到对应的拼图生成记录
- 更新代码注释以明确ID的用途和关联关系
2026-01-17 03:24:43 +08:00
50aaf7cb1a refactor(puzzle): 移除边缘渲染任务数据访问层
- 删除了 PuzzleEdgeRenderTaskMapper 接口文件
- 移除了对应的 MyBatis XML 映射文件
- 清理了数据库操作相关的实体映射配置
- 移除了任务领取、成功标记、失败标记等数据库操作方法
- 删除了查询下一条可领取任务的业务逻辑实现
2026-01-17 02:50:10 +08:00
a5a9ff09f2 feat(watermark): 添加边缘端水印处理功能
- 引入 WatermarkEdgeService 支持边缘端渲染
- 在 WatermarkConfig 中添加边缘端相关配置参数
- 在 WatermarkStage 中实现边缘端处理逻辑和降级机制
- 修改 ImageWatermarkOperatorEnum 的默认输出格式为 jpg
- 移除已废弃的 DefaultImageWatermarkOperator 类
- 更新 GoodsServiceImpl 使用边缘端处理水印
- 优化 PuzzleEdgeWorkerIpInterceptor 允许本地回环地址访问
- 修正 PrinterDefaultWatermarkTemplateBuilder 样式常量名称
2026-01-16 17:25:19 +08:00
8d5a10cce1 feat(puzzle): 添加水印拼图功能支持
- 在 PuzzleEdgeRenderTaskEntity 中新增 taskType 和 watermarkType 字段
- 添加 TASK_TYPE_PUZZLE 和 TASK_TYPE_WATERMARK 常量定义
- 新增 PuzzleWatermarkMapper 依赖注入
- 实现 handleWatermarkTaskSuccess 方法处理水印拼图任务成功逻辑
- 修改 taskSuccess 方法根据任务类型分别处理原始拼图和水印拼图
- 新增 createWatermarkRenderTask 方法创建水印拼图边缘渲染任务
- 为水印拼图任务添加独立的存储目录和文件命名规则
- 实现水印拼图结果写入 puzzle_watermark 表的功能
2026-01-16 13:56:29 +08:00
eba727b446 feat(puzzle): 添加拼图水印功能支持
- 创建 PuzzleWatermarkEntity 实体类用于存储拼图水印信息
- 定义水印类型、URL、关联记录ID等关键字段
- 实现 PuzzleWatermarkMapper 数据访问层接口
- 提供新增水印记录的 insert 方法
- 添加批量查询水印的 listByRecordIds 方法
- 实现按记录和类型查询单条水印的 getByRecordAndType 方法
- 支持按人脸ID和水印类型进行条件查询
- 为拼图不同场景下的水印版本管理提供数据支撑
2026-01-16 13:55:40 +08:00
d15d070cb4 refactor(puzzle): 重构拼图功能实现会员拼图关联管理
- 移除原有的图片裁切功能和userArea字段
- 删除originalImageUrl字段,统一使用resultImageUrl
- 添加MemberPuzzleEntity实体类管理会员拼图关联关系
- 创建MemberPuzzleMapper接口及XML映射文件
- 实现PuzzleRelationProcessor处理器负责关联记录创建
- 在拼图生成完成后自动创建会员拼图关联记录
- 添加景区配置中的免费拼图数量设置
- 实现免费拼图逻辑控制
- 更新拼图模板和生成记录的数据结构
- 修改AppPuzzleController中图片URL的获取方式
- 优化PuzzleEdgeRenderTaskService中的图片处理流程
2026-01-16 11:23:21 +08:00
63d31d69a9 feat(puzzle): 实现拼图模板缓存功能
- 集成 PuzzleRepository 缓存层替代直接数据库查询
- 在 PriceBiz 中使用缓存查询拼图模板数据
- 在 AppTemplateController 中添加景区模板封面URL批量获取接口
- 在 PuzzleTemplateServiceImpl 中实现模板增改时的缓存清理逻辑
- 在 FaceServiceImpl 中使用缓存查询拼图模板
- 优化模板查询性能并减少数据库压力
2026-01-15 17:01:17 +08:00
2fb6aa42cf feat(image): 添加图片叠加功能支持
- 新增 OverlayImageConfig 类用于配置叠加图片参数
- 支持通过 imageKey 从 dynamicData 动态获取图片 URL
- 提供默认图片 URL 配置选项
- 支持设置叠加图片宽高比例(0.0-1.0 范围)
- 实现图片适配模式配置(CONTAIN、COVER、FILL、SCALE_DOWN)
- 添加圆角半径配置,支持自动圆形效果
- 支持水平垂直对齐方式设置(CENTER、LEFT、RIGHT、TOP、BOTTOM)
- 提供水平垂直偏移量调节功能
- 更新配置验证逻辑,增加叠加图片配置校验
- 修改图片 URL 校验规则,支持动态数据填充
- 更新 JSON Schema 配置模板,包含叠加图片配置项
2026-01-15 13:36:13 +08:00
6d774e4d76 fix(print): 修复打印队列添加逻辑
- 将打印记录ID参数
2026-01-14 10:11:07 +08:00
d902b480b8 fix(print): 修复打印队列添加功能
- 将打印记录ID参数修改为固定值0L
- 添加代码注释说明打印特有逻辑
2026-01-10 20:37:56 +08:00
fc0d5fed9b refactor(puzzle): 移除 worker 认证逻辑并简化任务处理
- 删除 PuzzleEdgeWorkerAuthRequest 认证请求类
- 移除 Controller 中的 accessKey 参数验证
- 删除 RenderWorkerEntity 和 RenderWorkerRepository 相关依赖
- 使用默认 workerId 替代动态 worker 验证逻辑
- 将 IP 验证职责移至拦截器层
- 简化客户端状态上报处理逻辑
- 统一任务处理流程中的 workerId 使用方式
2026-01-10 20:33:03 +08:00
3291371dd7 feat(puzzle): 添加景区模板列表缓存功能
- 新增景区模板列表缓存KEY常量PUZZLE_TEMPLATES_BY_SCENIC_KEY
- 在清除模板缓存时同步清除对应景区的模板列表缓存
- 实现listTemplateByScenic方法根据景区ID获取启用模板列表并缓存
- 实现clearTemplateByScenicCache方法清除景区模板列表缓存
- 重构人脸匹配编排器使用新的缓存方法替代原有数据库查询
- 移除过期的redisTemplate依赖
2026-01-07 17:40:58 +08:00
54cdee333d feat(puzzle): 添加拼图素材版本缓存优化重复生成
- 新增 puzzleSourceVersionCache 缓存用于记录拼图素材版本
- 实现 isPuzzleSourceChanged 方法判断素材是否变化
- 添加 markPuzzleSourceVersion 方法标记当前素材版本
- 实现 invalidatePuzzleSourceVersion 方法清除指定人脸缓存
- 在人脸关系变更时自动清除相关拼图素材版本缓存
- 重构 AppPuzzleController 使用 PuzzleRepository 替代直接访问 Mapper
- 添加生成记录缓存机制,包括按人脸ID和记录ID的缓存
- 实现素材版本缓存命中时复用历史记录功能
- 优化重复内容检测逻辑,添加缓存标记机制
- 在各种生成流程中添加缓存清除逻辑确保数据一致性
2026-01-07 17:40:58 +08:00
a9ae00d580 refactor(puzzle): 重构拼图同步生成逻辑
- 添加详细的方法执行日志记录
- 实现参数校验和模板查询验证
- 增加元素排序和动态数据构建
- 集成重复图片检测机制
- 添加内容去重检测和历史记录复用
- 实现边缘渲染任务创建和
2026-01-05 16:02:28 +08:00
295815f1fa feat(puzzle): 添加拼图渲染任务同步等待机制
- 引入 CompletableFuture 支持任务异步等待
- 创建 TaskWaitResult 类封装任务执行结果
- 实现 registerWait 和 waitForTask 方法支持同步等待
- 添加 waitFutures 缓存池管理等待任务
- 实现超时清理机制防止内存泄漏
- 提供 createAndWait 便捷方法一键创建并等待
- 在任务完成和失败时自动通知等待方
- 添加过期 future 清理机制优化内存使用
2026-01-05 14:59:25 +08:00
52ce26e630 feat(puzzle): 添加拼图边缘渲染功能
- 集成 PuzzleEdgeWorkerIpInterceptor 拦截器进行 IP 校验
- 添加 PuzzleEdgeWorkerSecurityProperties 配置类
- 创建 PuzzleEdgeRenderTaskController 提供边缘渲染接口
- 添加多种 DTO 类用于边缘渲染任务数据传输
- 创建 PuzzleEdgeRenderTaskEntity 实体和 Mapper 接口
- 实现 PuzzleEdgeRenderTaskService 核心服务逻辑
- 重构 PuzzleGenerateServiceImpl 使用边缘渲染服务
- 移除原有的线程池执行器和同步渲染逻辑
- 添加定时任务处理渲染超时和重试机制
- 实现自动打印队列添加功能
2026-01-03 23:47:37 +08:00
21d8c56e82 feat(puzzle): 添加拼图模块缓存仓库并集成缓存功能
- 新增 PuzzleRepository 缓存仓库类,提供模板和元素的 Redis 缓存功能
- 实现模板按 ID 和编码的双向缓存,减少数据库查询压力
- 实现元素列表按模板 ID 缓存,避免重复查询
- 在模板服务中集成缓存,更新和删除时自动清除相关缓存
- 在生成服务中使用缓存读取模板和元素数据
- 添加缓存过期机制,设置 24 小时自动过期
- 实现批量缓存清除功能,支持按模式删除缓存
2026-01-01 21:39:43 +08:00
f8374519c3 feat(puzzle): 添加拼图生成异步处理能力
- 移除 @RequiredArgsConstructor 注解,改用手动构造函数注入
- 添加 ThreadPoolExecutor 实现拼图生成异步处理
- 新增 generateAsync 方法支持异步生成拼图
- 新增 generateSync 方法支持同步生成拼图
- 重构核心生成逻辑为 doGenerateInternal 方法供同步异步共用
- 在 FaceMatchingOrchestrator 中优化拼图模板生成逻辑
- 支持根据场景选择同步或异步生成模式
- 添加线程池队列大小监控和日志记录
2026-01-01 21:26:34 +08:00
6e0ebcd1bd fix(puzzle): 优化拼图生成失败日志记录
- 修改日志记录格式,添加异常消息详情
- 保持错误响应信息的一致性
2026-01-01 19:43:13 +08:00
95a5977ae2 feat(puzzle): 添加模板打印相关字段
- 在 PuzzleTemplateDTO 中新增 autoAddPrint 字段表示自动添加到打印队列
- 在 PuzzleTemplateDTO 中新增 canPrint 字段表示是否可以打印
- 在 PuzzleTemplateDTO 中新增 userArea 字段表示用户查看区域
- 在 TemplateCreateRequest 中新增 autoAddPrint 字段表示自动添加到打印队列
- 在 TemplateCreateRequest 中新增 canPrint 字段表示是否可以打印
- 在 TemplateCreateRequest 中新增 userArea 字段表示用户查看区域
2025-12-18 10:32:21 +08:00
10b39ec4c1 feat(puzzle): 支持拼图原图保存与自动打印功能
- 在PuzzleGenerationRecordEntity中新增originalImageUrl字段用于存储未裁切的原图URL
- 在PuzzleTemplateEntity中新增autoAddPrint、canPrint和userArea字段支持打印配置
- 更新PuzzleGenerationRecordMapper.xml以支持新字段的读写操作
- 在PuzzleGenerateServiceImpl中实现原图上传、用户区域裁切以及自动添加到打印队列逻辑
- 新增cropImage方法处理图片按指定区域裁切
- 集成PrinterService实现拼图完成后自动添加到打印队列功能
- 优化生成流程日志记录,区分原图和最终图片的URL信息
2025-12-17 22:56:50 +08:00
51c7de2474 feat(fill): 新增设备缩略图数据源策略
- 实现DeviceThumbImageDataSourceStrategy类,支持根据deviceIndex获取设备缩略图
- 支持从过滤后的机位列表或直接通过deviceIndex两种方式查询数据
- 默认使用LATEST排序策略,可配置type类型(默认为图片类型2)
- 添加对filteredDeviceIds上下文参数的支持,提升数据筛选灵活性
- 增强日志记录,便于调试和问题追踪
- 在DataSourceType枚举中新增DEVICE_THUMB_IMAGE类型定义
2025-12-13 21:47:41 +08:00
24bbb63bf7 feat(config): 添加Mybatis Plus分页插件和Mapper扫描配置
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
- 配置MybatisPlusInterceptor分页插件
- 添加@MapperScan注解扫描多个mapper包
- 为多个service注入添加@Lazy注解解决循环依赖
- 在VoucherServiceImpl和PuzzleGenerateServiceImpl中启用懒加载
- 优化订单服务中的依赖注入配置
2025-12-05 16:14:43 +08:00
302b6811c4 feat(puzzle): 优化二维码生成与去重逻辑
- 避免重复上传已存在的微信小程序二维码
- 在去重检测中跳过 dateStr 字段以提高准确性
- 添加文件存在性检查,减少不必要的上传操作
- 记录并返回已存在文件的访问 URL
- 提升 puzzle 服务的性能与资源利用率
2025-11-21 18:11:41 +08:00
cd5ba23d59 feat(puzzle): 添加模板封面图片字段并更新相关逻辑
- 在PuzzleTemplateDTO和TemplateCreateRequest中新增coverImage字段
- 在PuzzleTemplateEntity中新增coverImage字段并映射到数据库
- 更新FaceServiceImpl以支持获取模板封面图片URL
- 修改Mapper XML文件以支持coverImage字段的读写操作
- 调整SQL查询和插入语句以包含新的coverImage字段
- 更新三拼图内容页面逻辑以使用模板封面图片URL
2025-11-21 16:04:59 +08:00
a860319ea1 refactor(puzzle): 移除拼图生成记录中的复用逻辑
- 删除 PuzzleGenerationRecordEntity 中的 isDuplicate 和 originalRecordId 字段
- 移除插入记录时设置 isDuplicate 的逻辑
- 删除 FaceMatchingOrchestrator 中查询历史记录的逻辑
- 更新 Mapper XML 文件,移除相关字段和条件判断
- 简化生成流程,不再检查模板是否已生成
2025-11-21 11:41:11 +08:00
0db713b4a8 feat(puzzle): 实现拼图生成去重机制
- 新增内容哈希计算逻辑,基于元素内容生成SHA256哈希用于去重判断
- 添加重复图片检测功能,当所有IMAGE元素使用相同URL时抛出异常
- 实现历史记录查询接口,根据模板ID、内容哈希和景区ID查找重复记录
- 扩展生成响应对象,增加isDuplicate和originalRecordId字段标识复用情况
- 更新数据库实体和Mapper,新增content_hash、is_duplicate等字段支持去重
- 添加完整的单元测试和集成测试,覆盖去重检测、哈希计算等核心逻辑
- 引入DuplicateImageException和PuzzleBizException异常类完善错误处理
2025-11-21 11:02:43 +08:00
d458f918ed feat(text): 实现文本垂直居中对齐功能
- 修改TextElement类中的Y坐标计算逻辑
- 新增总文本高度计算和垂直偏移量
- 调整起始Y坐标以支持垂直居中对齐
- 保持原有逐行绘制逻辑不变
2025-11-20 23:10:50 +08:00
8991d68673 docs(claude): 更新设备数量匹配策略的描述
- 修改模式1的匹配逻辑为实际机位数大于等于deviceCount
- 修改模式2的匹配逻辑为从指定列表过滤后数量大于等于deviceCount
- 保持配置顺序并只取前N个设备进行匹配
2025-11-20 17:27:31 +08:00
3b93e07a66 feat(fill): 更新机位数量匹配策略为大于等于匹配
- 修改策略注释说明匹配方式由精确匹配改为大于等于匹配
- 更新全局数量匹配逻辑,从 == 改为 >= 判断
- 更新列表数量匹配逻辑,从 == 改为 >= 判断
- 在列表匹配成功时,只取前 N 个机位存入 context.extra
- 调整日志描述,明确显示最小数量与实际数量的比较
- 更新单元测试用例以验证大于等于匹配逻辑
- 增加测试用例验证匹配成功时只取前 N 个机位的行为
- 调整测试用例名称和断言逻辑以适应新的匹配规则
2025-11-20 16:38:08 +08:00
2fd852c5c6 feat(puzzle): 增强拼图填充引擎功能
- 新增 requireRuleMatch 参数控制是否必须匹配规则
- 重构 DeviceCountConditionStrategy 支持两种匹配模式
- 移除已废弃的 DeviceCountRangeConditionStrategy
- 引入 FillResult 类封装填充结果信息
- 优化条件上下文和数据源上下文的 extra 字段类型
- 更新相关测试用例和文档说明
2025-11-20 15:11:13 +08:00
536f2866f6 feat(puzzle): 添加统计人脸ID生成记录数量功能
- 在PuzzleGenerationRecordMapper接口中新增countByFaceId方法
- 在PuzzleGenerationRecordMapper.xml中实现对应的SQL查询
- 支持根据faceId统计生成记录的数量
2025-11-20 11:41:09 +08:00
4cbd0dc255 feat(puzzle): 新增微信小程序二维码生成功能
- 在DataSourceContext中新增scenicId字段用于景区关联
- 实现WechatQrcodeDataSourceStrategy策略类,支持生成并上传微信小程序码
- 扩展DataSourceType枚举,增加WECHAT_QRCODE类型
- 修改PuzzleElementFillEngine执行方法,支持传入scenicId参数
- 在PuzzleGenerateServiceImpl中集成二维码自动生成逻辑
- 新增generateWechatQrcode方法用于生成并上传小程序码到OSS
- 完善日志记录和异常处理机制
- 添加必要的工具类和存储服务依赖注入
2025-11-20 11:00:53 +08:00
f6d6a63977 feat(puzzle): 修改生成记录查询逻辑以支持人脸ID
- 将查询条件从 orderId 更改为 faceId
- 更新 Mapper 接口方法名和参数
- 修改 XML 映射文件中的字段和查询条件
- 调整插入记录时使用的字段名称
- 更新基础列定义以反映新的字段结构
2025-11-20 10:48:08 +08:00
67aebd5770 refactor(puzzle): 移除填充规则中的景区ID依赖
- 删除 PuzzleFillRuleDTO、PuzzleFillRuleSaveRequest 和 PuzzleFillRuleEntity 中的 scenicId 字段
- 从 ConditionContext 和 DataSourceContext 中移除 scenicId 属性
- 更新 PuzzleElementFillEngine 的 execute 方法,不再接收和传递 scenicId 参数
- 修改 PuzzleGenerateServiceImpl 中调用填充引擎的逻辑,去除 scenicId 判断和传参
- 调整 PuzzleFillRuleMapper.xml 配置文件,移除 scenic_id 映射关系
- 更新所有相关单元测试用例,删除对 scenicId 的引用和验证
- 简化规则查询方法,由 listByTemplateAndScenic 改为 listByTemplateId
- 移除因缺少 scenicId 而产生的警告日志和特殊处理分支
2025-11-19 23:23:08 +08:00
6d18a770b8 feat(puzzle): 实现人脸匹配后异步生成拼图模板功能
- 移除查询规则时的景区ID参数,简化规则加载逻辑
- 为人脸匹配编排器添加拼图模板服务依赖
- 新增异步生成拼图模板方法,在人脸识别成功后触发
- 优化Mapper接口,添加@Mapper注解并移除冗余查询方法
- 更新文档说明,同步修改规则查询方式描述
- 清理SourceMapper中重复的deleted条件过滤逻辑
2025-11-19 22:48:01 +08:00
b6cbb18a7f docs(puzzle): 更新Claude模块文档结构
- 移除了联系方式和维护者信息
- 简化了文档结尾的元数据部分
- 优化了设备ID匹配策略文档的引用格式
2025-11-19 18:29:45 +08:00
cfb3625ac0 feat(puzzle): 实现智能自动填充引擎和安全增强
- 新增拼图元素自动填充引擎 PuzzleElementFillEngine
- 支持基于规则的条件匹配和数据源解析
- 实现机位数量、机位ID等多维度条件策略
- 添加 DEVICE_IMAGE、USER_AVATAR 等数据源类型支持
- 增加景区隔离校验确保模板使用安全性
- 强化图片下载安全校验,防范 SSRF 攻击
- 支持本地文件路径解析和公网 URL 安全检查
- 完善静态值数据源策略支持 localPath 配置
- 优化生成流程中 faceId 和 scenicId 的校验逻辑
- 补充相关单元测试覆盖核心功能点
2025-11-19 17:28:41 +08:00
778afaaa83 feat(puzzle): 实现拼图自动填充规则引擎及相关功能
- 新增拼图填充规则管理Controller、DTO、Entity等核心类
- 实现条件评估策略模式,支持多种匹配规则
- 实现数据源解析策略模式,支持多种数据来源
- 新增拼图元素自动填充引擎,支持优先级匹配和动态填充
- 在SourceMapper中增加设备统计和查询相关方法
- 在PuzzleGenerateRequest中新增faceId字段用于触发自动填充
- 完善相关枚举类和工具类,提升系统可维护性和扩展性
2025-11-19 11:10:23 +08:00
42e806df76 feat(puzzle): 添加批量替换模板元素功能
- 在 PuzzleTemplateController 中新增 replaceElements 接口
- 在 PuzzleElementMapper 中新增 getByTemplateIdAndKey 查询方法
- 在 PuzzleTemplateServiceImpl 中实现 replaceElements 业务逻辑
- 在 IPuzzleTemplateService 接口中定义 replaceElements 方法
- 在 PuzzleElementMapper.xml 中添加对应 SQL 查询语句
2025-11-18 12:47:24 +08:00
af60e95529 feat(puzzle): 添加模板分页查询功能并优化DTO序列化
- 在PuzzleTemplateController中新增pageTemplates接口支持分页查询
- 为ElementCreateRequest和PuzzleElementDTO添加@JsonProperty注解优化JSON序列化
- 实现PuzzleTemplateServiceImpl中的pageTemplates分页逻辑
- 使用PageHelper实现分页查询并限制最大页面大小为100
- 在IPuzzleTemplateService接口中定义pageTemplates方法签名及文档说明
- 添加参数校验确保page和pageSize的有效性
- 返回PageResponse对象封装分页结果供前端使用
2025-11-18 12:05:21 +08:00
3d361200b0 refactor(puzzle): 重构元素DTO及新增元素基类
- 将ElementCreateRequest和PuzzleElementDTO中的elementType从Integer改为String
- 删除所有类型特定字段,新增config和configMap支持JSON配置
- 新增BaseElement抽象基类定义元素通用行为
- 添加ElementConfig接口和具体实现类ImageConfig、TextConfig
- 创建ElementFactory工厂类和ElementRegistrar注册器
- 新增ElementType枚举和ElementValidationException异常类
- 实现ImageElement和TextElement具体元素类
- 添加Position位置信息封装类
2025-11-18 08:13:38 +08:00
e2b450682b feat(puzzle): 优化拼图生成逻辑并新增完整测试套件
- 在PuzzleGenerateServiceImpl中改进图片上传逻辑,支持contentType指定
- 在PuzzleImageRenderer中优化背景图片缩放算法,使用原生Java方法提升性能
- 修改scaleImage方法实现,完善多种图片适配模式(COVER、CONTAIN、FILL等)
- 新增PuzzleRealScenarioIntegrationTest集成测试类,覆盖真实业务场景
- 添加PuzzleTemplateServiceImplTest单元测试,使用Mockito模拟数据库交互
- 创建MockImageUtil工具类,支持测试过程中生成各类模拟图片
- 构建PuzzleTestDataBuilder测试数据构造器,简化测试模板和元素创建
- 增加RealScenarioTestHelper辅助类,提升测试代码复用性
-
2025-11-17 16:50:53 +08:00
443f92ff92 feat(puzzle): 实现拼图生成功能模块
- 新增拼图生成控制器 PuzzleGenerateController,支持 /api/puzzle/generate 接口
- 新增拼图模板管理控制器 PuzzleTemplateController,提供完整的 CRUD 和元素管理功能
- 定义拼图相关 DTO 类,包括模板、元素、生成请求与响应等数据传输对象
- 创建拼图相关的实体类 PuzzleTemplateEntity、PuzzleElementEntity 和 PuzzleGenerationRecordEntity
- 实现 Mapper 接口用于数据库操作,支持模板和元素的增删改查及生成记录管理
- 开发 PuzzleGenerateServiceImpl 服务,完成从模板渲染到图片上传的完整流程
- 提供 PuzzleTemplateServiceImpl 服务,实现模板及其元素的全生命周期管理
- 引入 PuzzleImageRenderer 工具类负责图像合成渲染逻辑
- 支持将生成结果上传至 OSS 并记录生成过程的日志和元数据
2025-11-17 12:54:56 +08:00