feat(ai-cam): 实现AI相机商品识别与会员关联功能

- 新增AppAiCamController控制器,提供获取AI相机识别商品和添加会员素材关联接口
- 实现AppAiCamService服务,完成从人脸识别日志到商品详情的转换逻辑
- 扩展FaceDetectLogAiCamMapper,支持根据faceId查询识别记录
- 扩展SourceMapper,新增根据faceSampleIds和type查询source列表的方法
- 添加设备配置管理,支持按设备设置识别分数阈值和照片数量限制
- 实现人脸识别结果解析,提取匹配度高的faceSampleId并去重处理
- 完成商品详情VO转换,包含素材URL、视频URL及购买状态等信息
- 支持批量添加会员与素材的关联关系,确保数据一致性校验
This commit is contained in:
2025-12-05 17:51:30 +08:00
parent e9916d6aca
commit 1f4a16f0e6
8 changed files with 329 additions and 4 deletions

View File

@@ -2,7 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ycwl.basic.mapper.FaceDetectLogAiCamMapper">
<insert id="add" useGeneratedKeys="true" keyProperty="id">
insert into face_detect_log_ai_cam(scenic_id, device_id, face_sample_id, db_name, face_url, score, match_raw_result, create_time)
values (#{scenicId}, #{deviceId}, #{faceSampleId}, #{dbName}, #{faceUrl}, #{score}, #{matchRawResult}, #{createTime})
insert into face_detect_log_ai_cam(scenic_id, device_id, face_id, db_name, face_url, score, match_raw_result, create_time)
values (#{scenicId}, #{deviceId}, #{faceId}, #{dbName}, #{faceUrl}, #{score}, #{matchRawResult}, #{createTime})
</insert>
<select id="listByFaceId" resultType="com.ycwl.basic.model.pc.faceDetectLog.entity.FaceDetectLogAiCamEntity">
select id, scenic_id as scenicId, device_id as deviceId, face_id as faceId,
db_name as dbName, face_url as faceUrl, score, match_raw_result as matchRawResult,
create_time as createTime
from face_detect_log_ai_cam
where face_id = #{faceId}
order by create_time desc
</select>
</mapper>

View File

@@ -486,4 +486,14 @@
</choose>
LIMIT 1
</select>
<select id="listByFaceSampleIdsAndType" resultType="com.ycwl.basic.model.pc.source.entity.SourceEntity">
SELECT * FROM source
WHERE face_sample_id IN
<foreach collection="faceSampleIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND `type` = #{type}
ORDER BY create_time DESC
</select>
</mapper>