From 00dd6a16a30155da73452e2c8fb3f2df4da5f41b Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 17 Dec 2025 23:16:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(face):=20=E8=B0=83=E6=95=B4=E4=BA=BA?= =?UTF-8?q?=E8=84=B8=E8=AF=86=E5=88=AB=E5=8C=B9=E9=85=8D=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E5=9C=BA=E6=99=AF=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 PrinterTvController 中 faceUpload 方法的 scene 参数值从 print 改为 tv - 在 FaceServiceImpl 中为人脸匹配方法增加 scene 参数支持 - 更新 FaceMatchingOrchestrator 的 orchestrateMatching 方法签名以接收 scene 参数 - 在 FaceService 接口中新增带 scene 参数的 matchFaceId 方法定义 - 更新 VideoTaskGenerator 中调用 matchFaceId 方法时传入 scene 参数 --- .../basic/controller/printer/PrinterTvController.java | 2 +- src/main/java/com/ycwl/basic/service/pc/FaceService.java | 1 + .../com/ycwl/basic/service/pc/impl/FaceServiceImpl.java | 8 ++++++-- .../service/pc/orchestrator/FaceMatchingOrchestrator.java | 2 +- src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ycwl/basic/controller/printer/PrinterTvController.java b/src/main/java/com/ycwl/basic/controller/printer/PrinterTvController.java index fdb02a00..c6f72298 100644 --- a/src/main/java/com/ycwl/basic/controller/printer/PrinterTvController.java +++ b/src/main/java/com/ycwl/basic/controller/printer/PrinterTvController.java @@ -195,7 +195,7 @@ public class PrinterTvController { @PathVariable Long scenicId) { // 复用 faceUpload 方法的去重逻辑 // memberId=0L 表示打印机大屏用户,scene="print" 会触发自动添加打印逻辑并等待完成 - FaceRecognizeResp resp = pcFaceService.faceUpload(file, scenicId, 0L, "print"); + FaceRecognizeResp resp = pcFaceService.faceUpload(file, scenicId, 0L, "tv"); return ApiResponse.success(resp); } diff --git a/src/main/java/com/ycwl/basic/service/pc/FaceService.java b/src/main/java/com/ycwl/basic/service/pc/FaceService.java index ca1f3719..90b2b802 100644 --- a/src/main/java/com/ycwl/basic/service/pc/FaceService.java +++ b/src/main/java/com/ycwl/basic/service/pc/FaceService.java @@ -34,6 +34,7 @@ public interface FaceService { SearchFaceRespVo matchFaceId(Long faceId); SearchFaceRespVo matchFaceId(Long faceId, boolean isNew); + SearchFaceRespVo matchFaceId(Long faceId, boolean isNew, String scene); ApiResponse deleteFace(Long faceId); diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index 13bc7173..63146772 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -354,7 +354,7 @@ public class FaceServiceImpl implements FaceService { } // 正常执行人脸匹配 - SearchFaceRespVo result = faceMatchingOrchestrator.orchestrateMatching(faceId, false); + SearchFaceRespVo result = faceMatchingOrchestrator.orchestrateMatching(faceId, false, null); // 执行完成后标记,防止2秒内重复调用 faceMatchDedupService.markMatched(face.getMemberId(), face.getScenicId()); @@ -364,7 +364,11 @@ public class FaceServiceImpl implements FaceService { @Override public SearchFaceRespVo matchFaceId(Long faceId, boolean isNew) { - return faceMatchingOrchestrator.orchestrateMatching(faceId, isNew); + return matchFaceId(faceId, isNew, null); + } + @Override + public SearchFaceRespVo matchFaceId(Long faceId, boolean isNew, String scene) { + return faceMatchingOrchestrator.orchestrateMatching(faceId, isNew, scene); } /** diff --git a/src/main/java/com/ycwl/basic/service/pc/orchestrator/FaceMatchingOrchestrator.java b/src/main/java/com/ycwl/basic/service/pc/orchestrator/FaceMatchingOrchestrator.java index 35e990ed..7a19c704 100644 --- a/src/main/java/com/ycwl/basic/service/pc/orchestrator/FaceMatchingOrchestrator.java +++ b/src/main/java/com/ycwl/basic/service/pc/orchestrator/FaceMatchingOrchestrator.java @@ -108,7 +108,7 @@ public class FaceMatchingOrchestrator { * @param isNew 是否新用户 * @return 人脸搜索结果 */ - public SearchFaceRespVo orchestrateMatching(Long faceId, boolean isNew) { + public SearchFaceRespVo orchestrateMatching(Long faceId, boolean isNew, String scene) { if (faceId == null) { throw new IllegalArgumentException("faceId 不能为空"); } diff --git a/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java b/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java index 2658e96d..d710443b 100644 --- a/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java +++ b/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java @@ -82,7 +82,7 @@ public class VideoTaskGenerator { faceReqQuery.setEndTime(DateUtil.endOfDay(new Date())); List list = faceMapper.list(faceReqQuery); list.forEach(face -> { - faceService.matchFaceId(face.getId(), false); + faceService.matchFaceId(face.getId(), false, null); if (Integer.valueOf(3).equals(scenicConfig.getBookRoutine())) { // 全部生成 templateList.forEach(content -> {