From fd7511ad55e719596f3c6a077258344a8ca39ee1 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 29 Dec 2024 18:18:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88=E5=8E=9F=E7=89=87=E5=86=8D=E8=A7=86?= =?UTF-8?q?=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ycwl/basic/mapper/SourceMapper.java | 2 ++ .../basic/service/impl/pc/FaceServiceImpl.java | 17 +++++++++++++++++ .../com/ycwl/basic/task/VideoPieceGetter.java | 8 -------- src/main/resources/mapper/SourceMapper.xml | 9 ++++++++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ycwl/basic/mapper/SourceMapper.java b/src/main/java/com/ycwl/basic/mapper/SourceMapper.java index a1897f9..1349c8b 100644 --- a/src/main/java/com/ycwl/basic/mapper/SourceMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/SourceMapper.java @@ -49,4 +49,6 @@ public interface SourceMapper { int addRelation(MemberSourceEntity source); List listUser(SourceReqQuery sourceReqQuery); + + int addRelations(List list); } diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java index e2e23da..9b197da 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ycwl.basic.enums.StatisticEnum; import com.ycwl.basic.exception.BaseException; +import com.ycwl.basic.mapper.SourceMapper; import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.mapper.FaceMapper; import com.ycwl.basic.model.jwt.JwtInfo; @@ -12,6 +13,8 @@ import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq; import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.face.req.FaceReqQuery; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; +import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity; +import com.ycwl.basic.model.pc.source.entity.SourceEntity; import com.ycwl.basic.model.task.resp.SearchFaceRespVo; import com.ycwl.basic.service.pc.FaceService; import com.ycwl.basic.service.task.TaskFaceService; @@ -53,6 +56,8 @@ public class FaceServiceImpl implements FaceService { private float strictScore = 90F; @Autowired private TaskService taskTaskService; + @Autowired + private SourceMapper sourceMapper; @Override public ApiResponse> pageQuery(FaceReqQuery faceReqQuery) { @@ -165,6 +170,17 @@ public class FaceServiceImpl implements FaceService { faceEntity.setScenicId(scenicId); faceEntity.setMemberId(userId); faceEntity.setFaceUrl(faceUrl); + List sampleListIds = scenicDbSearchResult.getSampleListIds(); + // 匹配原片:照片 + List sourceEntities = sourceMapper.listBySampleIds(sampleListIds); + List memberSourceEntityList = sourceEntities.stream().map(sourceEntity -> { + MemberSourceEntity memberSourceEntity = new MemberSourceEntity(); + memberSourceEntity.setMemberId(userId); + memberSourceEntity.setSourceId(sourceEntity.getId()); + memberSourceEntity.setType(sourceEntity.getType()); + memberSourceEntity.setIsBuy(0); + return memberSourceEntity; + }).collect(Collectors.toList()); if (faceEntity.getId()==null) { //新增人脸 faceEntity.setId(newFaceId); @@ -175,6 +191,7 @@ public class FaceServiceImpl implements FaceService { faceMapper.update(faceEntity); taskTaskService.autoCreateTaskByFaceId(faceEntity.getId()); } + sourceMapper.addRelations(memberSourceEntityList); StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq(); statisticsRecordAddReq.setMemberId(userId); statisticsRecordAddReq.setType(StatisticEnum.UPLOAD_FACE.code); diff --git a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java index 8582843..3e77404 100644 --- a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java +++ b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java @@ -134,16 +134,11 @@ public class VideoPieceGetter { SourceEntity sourceEntity = new SourceEntity(); sourceEntity.setId(SnowFlakeUtil.getLongId()); MemberSourceEntity videoSource = new MemberSourceEntity(); - MemberSourceEntity imageSource = new MemberSourceEntity(); videoSource.setMemberId(task.getMemberId()); videoSource.setType(1); videoSource.setIsBuy(0); videoSource.setSourceId(sourceEntity.getId()); - imageSource.setMemberId(task.getMemberId()); - imageSource.setType(2); - imageSource.setIsBuy(0); if (imgSource != null) { - imageSource.setSourceId(imgSource.getId()); sourceEntity.setUrl(imgSource.getUrl()); sourceEntity.setPosJson(imgSource.getPosJson()); } @@ -155,9 +150,6 @@ public class VideoPieceGetter { sourceEntity.setType(1); sourceMapper.add(sourceEntity); sourceMapper.addRelation(videoSource); - if (imgSource != null) { - sourceMapper.addRelation(imageSource); - } } public boolean startFfmpegTask(FfmpegTask task) { diff --git a/src/main/resources/mapper/SourceMapper.xml b/src/main/resources/mapper/SourceMapper.xml index 193556e..8061a49 100644 --- a/src/main/resources/mapper/SourceMapper.xml +++ b/src/main/resources/mapper/SourceMapper.xml @@ -6,9 +6,16 @@ values (#{id}, #{scenicId}, #{deviceId}, #{url}, #{videoUrl}, #{type}, #{faceSampleId}, #{posJson}) - insert member_source(member_id, source_id, is_buy, type) + replace member_source(member_id, source_id, is_buy, type) values (#{memberId}, #{sourceId}, #{isBuy}, #{type}) + + replace member_source(member_id, source_id, is_buy, type) + values + + (#{item.memberId}, #{item.sourceId}, #{item.isBuy}, #{item.type}) + + update source