先原片再视频

This commit is contained in:
Jerry Yan 2024-12-29 18:18:40 +08:00
parent f86025bf47
commit fd7511ad55
4 changed files with 27 additions and 9 deletions

View File

@ -49,4 +49,6 @@ public interface SourceMapper {
int addRelation(MemberSourceEntity source);
List<SourceRespVO> listUser(SourceReqQuery sourceReqQuery);
int addRelations(List<MemberSourceEntity> list);
}

View File

@ -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<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
@ -165,6 +170,17 @@ public class FaceServiceImpl implements FaceService {
faceEntity.setScenicId(scenicId);
faceEntity.setMemberId(userId);
faceEntity.setFaceUrl(faceUrl);
List<Long> sampleListIds = scenicDbSearchResult.getSampleListIds();
// 匹配原片照片
List<SourceEntity> sourceEntities = sourceMapper.listBySampleIds(sampleListIds);
List<MemberSourceEntity> 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);

View File

@ -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) {

View File

@ -6,9 +6,16 @@
values (#{id}, #{scenicId}, #{deviceId}, #{url}, #{videoUrl}, #{type}, #{faceSampleId}, #{posJson})
</insert>
<insert id="addRelation">
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})
</insert>
<insert id="addRelations">
replace member_source(member_id, source_id, is_buy, type)
values
<foreach collection="list" item="item" separator=",">
(#{item.memberId}, #{item.sourceId}, #{item.isBuy}, #{item.type})
</foreach>
</insert>
<update id="update">
update source
<set>