feat(puzzle): 实现拼图生成功能模块

- 新增拼图生成控制器 PuzzleGenerateController,支持 /api/puzzle/generate 接口
- 新增拼图模板管理控制器 PuzzleTemplateController,提供完整的 CRUD 和元素管理功能
- 定义拼图相关 DTO 类,包括模板、元素、生成请求与响应等数据传输对象
- 创建拼图相关的实体类 PuzzleTemplateEntity、PuzzleElementEntity 和 PuzzleGenerationRecordEntity
- 实现 Mapper 接口用于数据库操作,支持模板和元素的增删改查及生成记录管理
- 开发 PuzzleGenerateServiceImpl 服务,完成从模板渲染到图片上传的完整流程
- 提供 PuzzleTemplateServiceImpl 服务,实现模板及其元素的全生命周期管理
- 引入 PuzzleImageRenderer 工具类负责图像合成渲染逻辑
- 支持将生成结果上传至 OSS 并记录生成过程的日志和元数据
This commit is contained in:
2025-11-17 12:54:56 +08:00
parent 630d344b5a
commit 443f92ff92
22 changed files with 2600 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
package com.ycwl.basic.puzzle.dto;
import lombok.Data;
import java.util.Map;
/**
* 拼图生成请求DTO
*
* @author Claude
* @since 2025-01-17
*/
@Data
public class PuzzleGenerateRequest {
/**
* 模板编码(必填)
*/
private String templateCode;
/**
* 用户ID(可选)
*/
private Long userId;
/**
* 订单ID(可选)
*/
private String orderId;
/**
* 业务类型(可选)
*/
private String businessType;
/**
* 景区ID(可选)
*/
private Long scenicId;
/**
* 动态数据(key为元素的elementKey,value为实际值)
* 例如:{"userAvatar": "https://...", "userName": "张三", "orderNumber": "ORDER123"}
*/
private Map<String, String> dynamicData;
/**
* 输出格式(可选,默认PNG)
* 支持:PNG、JPEG
*/
private String outputFormat;
/**
* 图片质量(可选,默认90,范围0-100)
* 仅对JPEG格式有效
*/
private Integer quality;
}