捯饬捯饬代码

This commit is contained in:
2025-04-07 14:16:53 +08:00
parent 79ea08898b
commit c9a4116ed6
5 changed files with 50 additions and 51 deletions

View File

@@ -136,14 +136,7 @@ public class FaceServiceImpl implements FaceService {
String faceUrl = adapter.uploadFile(file, filePath, fileName);
Long newFaceId = SnowFlakeUtil.getLongId();
Long oldFaceId = null;
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
IFaceBodyAdapter faceBodyAdapter;
if (scenicConfig != null && scenicConfig.getFaceType() != null) {
faceBodyAdapter = FaceBodyFactory.getAdapter(scenicConfig.getFaceType());
faceBodyAdapter.loadConfig(JSONObject.parseObject(scenicConfig.getFaceConfigJson(), Map.class));
} else {
faceBodyAdapter = FaceBodyFactory.use();
}
IFaceBodyAdapter faceBodyAdapter = scenicService.getScenicFaceBodyAdapter(scenicId);
faceService.assureFaceDb(faceBodyAdapter, USER_FACE_DB_NAME+scenicId);
SearchFaceRespVo userDbSearchResult = faceService.searchFace(faceBodyAdapter, USER_FACE_DB_NAME+scenicId, faceUrl, "判断是否为用户上传过的人脸");
float strictScore = 0.6F;
@@ -225,13 +218,7 @@ public class FaceServiceImpl implements FaceService {
return null;
}
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(face.getScenicId());
IFaceBodyAdapter faceBodyAdapter;
if (scenicConfig != null && scenicConfig.getFaceType() != null) {
faceBodyAdapter = FaceBodyFactory.getAdapter(scenicConfig.getFaceType());
faceBodyAdapter.loadConfig(JSONObject.parseObject(scenicConfig.getFaceConfigJson(), Map.class));
} else {
faceBodyAdapter = FaceBodyFactory.use();
}
IFaceBodyAdapter faceBodyAdapter = scenicService.getScenicFaceBodyAdapter(face.getScenicId());
SearchFaceRespVo scenicDbSearchResult = faceService.searchFace(faceBodyAdapter, String.valueOf(face.getScenicId()), face.getFaceUrl(), "人脸识别");
if (scenicDbSearchResult == null) {
throw new BaseException("人脸识别失败,请换一张试试把~");

View File

@@ -239,30 +239,27 @@ public class TaskFaceServiceImpl implements TaskFaceService {
List<FaceSampleEntity> allFaceSampleList = new ArrayList<>();
if (StringUtils.isNumeric(dbName)) { // 景区
allFaceSampleList = faceSampleMapper.listByIds(allFaceSampleIds);
Long firstFaceSampleId = acceptFaceSampleIds.get(0);
Optional<FaceSampleEntity> firstFaceSample = allFaceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny();
if (firstFaceSample.isPresent()) {
if (tourMinutes > 0) {
List<FaceSampleEntity> acceptFaceSampleList = faceSampleMapper.listByIds(acceptFaceSampleIds);
Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes/2);
Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), tourMinutes/2);
acceptFaceSampleIds = acceptFaceSampleList.stream()
.filter(faceSample -> faceSample.getCreateAt().after(startDate) && faceSample.getCreateAt().before(endDate))
.map(FaceSampleEntity::getId)
.collect(Collectors.toList());
log.info("时间范围逻辑:最高匹配:{},时间范围需要在:{}~{}间", firstFaceSample, startDate, endDate);
if (!acceptFaceSampleIds.isEmpty()) {
Long firstFaceSampleId = acceptFaceSampleIds.get(0);
Optional<FaceSampleEntity> firstFaceSample = allFaceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny();
if (firstFaceSample.isPresent()) {
if (tourMinutes > 0) {
List<FaceSampleEntity> acceptFaceSampleList = faceSampleMapper.listByIds(acceptFaceSampleIds);
Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes/2);
Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), tourMinutes/2);
acceptFaceSampleIds = acceptFaceSampleList.stream()
.filter(faceSample -> faceSample.getCreateAt().after(startDate) && faceSample.getCreateAt().before(endDate))
.map(FaceSampleEntity::getId)
.collect(Collectors.toList());
log.info("时间范围逻辑:最高匹配:{},时间范围需要在:{}~{}间", firstFaceSample, startDate, endDate);
} else {
log.info("时间范围逻辑:景区未限制");
}
} else {
log.info("时间范围逻辑:景区未限制");
log.info("时间范围逻辑:最高匹配ID:{},未找到", firstFaceSampleId);
}
} else {
log.info("时间范围逻辑:最高匹配ID:{},未找到", firstFaceSampleId);
}
}
if (acceptFaceSampleIds.isEmpty()) {
respVo.setFirstMatchRate(0f);
respVo.setSampleListIds(Collections.emptyList());
return respVo;
}
List<MatchLocalRecord> collect = new ArrayList<>();
for (SearchFaceResultItem item : records) {
MatchLocalRecord record = new MatchLocalRecord();
@@ -286,6 +283,11 @@ public class TaskFaceServiceImpl implements TaskFaceService {
record.setMatched(item.getScore() > _threshold);
collect.add(record);
}
if (acceptFaceSampleIds.isEmpty()) {
respVo.setFirstMatchRate(0f);
respVo.setSampleListIds(Collections.emptyList());
return respVo;
}
logEntity.setMatchLocalRecord(JSONObject.toJSONString(collect));
respVo.setFirstMatchRate(response.getFirstMatchRate());
respVo.setSampleListIds(acceptFaceSampleIds);

View File

@@ -117,8 +117,6 @@ public class TaskTaskServiceImpl implements TaskService {
@Autowired
private VideoRepository videoRepository;
@Autowired
private OrderRepository orderRepository;
@Autowired
private ScenicService scenicService;
private final ReentrantLock lock = new ReentrantLock();
@@ -126,7 +124,6 @@ public class TaskTaskServiceImpl implements TaskService {
private TaskStatusBiz taskStatusBiz;
@Autowired
private DeviceRepository deviceRepository;
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(8, 1024, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1024));
private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) {
@@ -619,9 +616,9 @@ public class TaskTaskServiceImpl implements TaskService {
}
}
videoMapper.updateRelationWhenTaskSuccess(taskId, video.getId(), isBuy);
executor.execute(() -> {
new Thread(() -> {
sendVideoGeneratedServiceNotification(taskId);
});
}).start();
}
@Override