feat(puzzle): 添加拼图水印功能支持

- 创建 PuzzleWatermarkEntity 实体类用于存储拼图水印信息
- 定义水印类型、URL、关联记录ID等关键字段
- 实现 PuzzleWatermarkMapper 数据访问层接口
- 提供新增水印记录的 insert 方法
- 添加批量查询水印的 listByRecordIds 方法
- 实现按记录和类型查询单条水印的 getByRecordAndType 方法
- 支持按人脸ID和水印类型进行条件查询
- 为拼图不同场景下的水印版本管理提供数据支撑
This commit is contained in:
2026-01-16 13:33:09 +08:00
parent 27a18096b5
commit eba727b446
3 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
package com.ycwl.basic.model.pc.puzzle.entity;
import lombok.Data;
/**
* 拼图水印实体
* 存储拼图在不同场景下的水印版本(如打印水印、免费下载水印等)
*/
@Data
public class PuzzleWatermarkEntity {
private Integer id;
private Long recordId;
private Long faceId;
private String watermarkType;
private String watermarkUrl;
}

View File

@@ -0,0 +1,44 @@
package com.ycwl.basic.puzzle.mapper;
import com.ycwl.basic.model.pc.puzzle.entity.PuzzleWatermarkEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 拼图水印Mapper接口
* 用于存储和查询拼图在不同场景下的水印版本
*/
@Mapper
public interface PuzzleWatermarkMapper {
/**
* 新增拼图水印记录
*/
int insert(PuzzleWatermarkEntity entity);
/**
* 批量查询拼图水印
*
* @param recordIds 拼图生成记录ID列表
* @param faceId 人脸ID(可选)
* @param watermarkType 水印类型
* @return 水印列表
*/
List<PuzzleWatermarkEntity> listByRecordIds(@Param("recordIds") List<Long> recordIds,
@Param("faceId") Long faceId,
@Param("watermarkType") String watermarkType);
/**
* 查询单条拼图水印
*
* @param recordId 拼图生成记录ID
* @param faceId 人脸ID(可选)
* @param watermarkType 水印类型
* @return 水印记录
*/
PuzzleWatermarkEntity getByRecordAndType(@Param("recordId") Long recordId,
@Param("faceId") Long faceId,
@Param("watermarkType") String watermarkType);
}

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ycwl.basic.puzzle.mapper.PuzzleWatermarkMapper">
<!-- 新增拼图水印记录 -->
<insert id="insert" parameterType="com.ycwl.basic.model.pc.puzzle.entity.PuzzleWatermarkEntity"
useGeneratedKeys="true" keyProperty="id">
INSERT INTO puzzle_watermark (record_id, face_id, watermark_type, watermark_url)
VALUES (#{recordId}, #{faceId}, #{watermarkType}, #{watermarkUrl})
</insert>
<!-- 批量查询拼图水印 -->
<select id="listByRecordIds" resultType="com.ycwl.basic.model.pc.puzzle.entity.PuzzleWatermarkEntity">
SELECT id, record_id, face_id, watermark_type, watermark_url
FROM puzzle_watermark
WHERE record_id IN
<foreach collection="recordIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="faceId == null">
AND face_id IS NULL
</if>
<if test="faceId != null">
AND face_id = #{faceId}
</if>
AND watermark_type = #{watermarkType}
</select>
<!-- 查询单条拼图水印 -->
<select id="getByRecordAndType" resultType="com.ycwl.basic.model.pc.puzzle.entity.PuzzleWatermarkEntity">
SELECT id, record_id, face_id, watermark_type, watermark_url
FROM puzzle_watermark
WHERE record_id = #{recordId}
<if test="faceId == null">
AND face_id IS NULL
</if>
<if test="faceId != null">
AND face_id = #{faceId}
</if>
AND watermark_type = #{watermarkType}
LIMIT 1
</select>
</mapper>