You've already forked FrameTour-BE
refactor(task): 优化人脸识别时间范围逻辑
- 修改了景区场景下的人脸识别时间范围计算方式 - 从 acceptFaceSampleIds 中筛选出在指定时间范围内的样本 - 优化了代码结构,提高了可读性和可维护性
This commit is contained in:
@@ -45,6 +45,7 @@ import com.aliyuncs.IAcsClient;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -222,13 +223,18 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
if (StringUtils.isNumeric(dbName)) { // 景区
|
||||
allFaceSampleList = faceSampleMapper.listByIds(allFaceSampleIds);
|
||||
if (!acceptFaceSampleIds.isEmpty()) {
|
||||
Long firstFaceSampleId = acceptFaceSampleIds.getFirst();
|
||||
Optional<FaceSampleEntity> firstFaceSample = allFaceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny();
|
||||
List<Long> finalAcceptFaceSampleIds = acceptFaceSampleIds;
|
||||
Optional<FaceSampleEntity> firstFaceSample = allFaceSampleList.stream()
|
||||
.filter(faceSample -> finalAcceptFaceSampleIds.contains(faceSample.getId()))
|
||||
.sorted(Comparator.comparing(FaceSampleEntity::getCreateAt).reversed())
|
||||
.findAny();
|
||||
// Long firstFaceSampleId = acceptFaceSampleIds.getFirst();
|
||||
// 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);
|
||||
Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes);
|
||||
Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), 0);
|
||||
acceptFaceSampleIds = acceptFaceSampleList.stream()
|
||||
.filter(faceSample -> faceSample.getCreateAt().after(startDate) && faceSample.getCreateAt().before(endDate))
|
||||
.map(FaceSampleEntity::getId)
|
||||
@@ -238,7 +244,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
log.info("时间范围逻辑:景区未限制");
|
||||
}
|
||||
} else {
|
||||
log.info("时间范围逻辑:最高匹配ID:{},未找到", firstFaceSampleId);
|
||||
log.info("时间范围逻辑:最高匹配ID:{},未找到", "--");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user