获取人脸对应视频流程,自动删除源视频流程,自动创建任务渲染流程,自动删除人脸数据逻辑

This commit is contained in:
2024-12-11 15:38:18 +08:00
parent ba4c339660
commit 8c81a994c8
47 changed files with 1318 additions and 222 deletions

View File

@ -7,6 +7,7 @@ import com.ycwl.basic.service.pc.MenuService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.SnowFlakeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@ -15,7 +16,7 @@ import java.util.List;
* @Authorlongbinbin
* @Date2024/12/3 10:16
*/
@Service
public class MenuServiceImpl implements MenuService {
@Autowired

View File

@ -96,7 +96,7 @@ public class ScenicServiceImpl implements ScenicService {
public ApiResponse<Boolean> deleteById(Long id) {
int i = scenicMapper.deleteById(id);
if (i > 0) {
scenicMapper.deleteConfigByscenicId(id);
scenicMapper.deleteConfigByScenicId(id);
scenicAccountMapper.deleteByScenicId(id);
return ApiResponse.success(true);
}else {

View File

@ -21,6 +21,7 @@ import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
import com.ycwl.basic.model.pc.faceSample.req.FaceSampleReqQuery;
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.task.resp.AddFaceRespVo;
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
import com.ycwl.basic.service.task.TaskFaceService;
@ -84,13 +85,12 @@ public class TaskFaceServiceImpl implements TaskFaceService {
.map(SearchFaceResponse.Data.MatchListItem.FaceItemsItem::getExtraData)
.map(Long::parseLong)
.collect(Collectors.toList());
faceEntity.setMatchSampleIds(StringUtils.joinWith(",", faceSampleIds));
faceEntity.setMatchSampleIds(StringUtils.join(faceSampleIds, ","));
faceMapper.update(faceEntity);
respVo.setSampleListIds(faceSampleIds);
respVo.setScore(matchList.get(0).getQualitieScore());
return respVo;
} catch (Exception e) {
e.printStackTrace();
log.error("人脸搜索失败:{}", e.getMessage());
throw new BaseException(e.getMessage());
}
@ -136,7 +136,15 @@ public class TaskFaceServiceImpl implements TaskFaceService {
FaceSampleReqQuery query = new FaceSampleReqQuery();
query.setDeviceId(scenicId);
faceSampleMapper.list(query);
Date thatDay = DateUtil.offsetDay(new Date(), -3);
ScenicConfigEntity scenicConfig = scenicMapper.getConfig(scenicId);
if (scenicConfig == null) {
return;
}
Integer sampleStoreDay = scenicConfig.getSampleStoreDay();
if (sampleStoreDay == null) {
sampleStoreDay = 3;
}
Date thatDay = DateUtil.offsetDay(new Date(), -sampleStoreDay);
Date dayStart = DateUtil.beginOfDay(thatDay);
Date dayEnd = DateUtil.endOfDay(thatDay);
query.setStartTime(dayStart);

View File

@ -8,6 +8,7 @@ import com.ycwl.basic.mapper.pc.RenderWorkerMapper;
import com.ycwl.basic.mapper.pc.SourceMapper;
import com.ycwl.basic.mapper.pc.TaskMapper;
import com.ycwl.basic.mapper.pc.TemplateMapper;
import com.ycwl.basic.mapper.pc.VideoMapper;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity;
@ -16,6 +17,7 @@ import com.ycwl.basic.model.pc.task.entity.TaskEntity;
import com.ycwl.basic.model.pc.task.resp.TaskRespVO;
import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
import com.ycwl.basic.model.task.req.ClientStatusReqVo;
import com.ycwl.basic.model.task.req.TaskReqVo;
import com.ycwl.basic.model.task.req.WorkerAuthReqVo;
@ -57,6 +59,8 @@ public class TaskTaskServiceImpl implements TaskService {
private SourceMapper sourceMapper;
@Autowired
private OssUtil ossUtil;
@Autowired
private VideoMapper videoMapper;
private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) {
String accessKey = req.getAccessKey();
@ -112,9 +116,7 @@ public class TaskTaskServiceImpl implements TaskService {
}
List<TaskRespVO> taskList = taskMapper.selectNotRunning();
resp.setTasks(taskList);
taskList.forEach(task -> {
taskMapper.assignToWorker(task.getId(), worker.getId());
});
taskList.forEach(task -> taskMapper.assignToWorker(task.getId(), worker.getId()));
// return Task
return resp;
}
@ -131,9 +133,7 @@ public class TaskTaskServiceImpl implements TaskService {
}
Map<String, List<SourceRespVO>> sourcesMap = Arrays.stream(faceRespVO.getMatchSampleIds().split(","))
.map(Long::valueOf)
.map(sampleId -> {
return faceSampleMapper.getById(sampleId);
})
.map(sampleId -> faceSampleMapper.getById(sampleId))
.filter(Objects::nonNull)
.map(FaceSampleRespVO::getSourceId)
.map(sourceId -> sourceMapper.getById(sourceId))
@ -178,6 +178,22 @@ public class TaskTaskServiceImpl implements TaskService {
taskUpdate.setStatus(1);
taskUpdate.setWorkerId(worker.getId());
taskMapper.update(taskUpdate);
VideoEntity video = videoMapper.findByTaskId(taskId);
if (video != null) {
video.setVideoUrl(task.getVideoUrl());
videoMapper.update(video);
} else {
video = new VideoEntity();
video.setId(SnowFlakeUtil.getLongId());
video.setScenicId(task.getScenicId());
video.setMemberId(task.getMemberId());
video.setTemplateId(task.getTemplateId());
video.setTaskId(taskId);
video.setWorkerId(worker.getId());
video.setVideoUrl(task.getVideoUrl());
video.setCreateTime(new Date());
videoMapper.add(video);
}
}
@Override