1、清理功能修复;2、device在线状态放redis;3、viid传入时重查redis缓存,避免关闭的设备传入素材

This commit is contained in:
2025-02-17 11:04:14 +08:00
parent ec4df2eb50
commit f8ec52b78a
12 changed files with 80 additions and 29 deletions

View File

@ -33,6 +33,16 @@ public class DeviceServiceImpl implements DeviceService {
public ApiResponse<PageInfo<DeviceRespVO>> pageQuery(DeviceReqQuery deviceReqQuery) {
PageHelper.startPage(deviceReqQuery.getPageNum(), deviceReqQuery.getPageSize());
List<DeviceRespVO> list = deviceMapper.list(deviceReqQuery);
for (DeviceRespVO deviceRespVO : list) {
DeviceEntity onlineStatus = deviceRepository.getOnlineStatus(deviceRespVO.getId());
if (onlineStatus != null) {
deviceRespVO.setOnline(onlineStatus.getOnline());
deviceRespVO.setKeepaliveAt(onlineStatus.getKeepaliveAt());
} else {
deviceRespVO.setOnline(0);
deviceRespVO.setKeepaliveAt(null);
}
}
PageInfo<DeviceRespVO> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo);
}

View File

@ -206,30 +206,22 @@ public class FaceServiceImpl implements FaceService {
SearchFaceRespVo scenicDbSearchResult = faceService.searchFace(face.getScenicId(), face.getFaceUrl());
// 写死逻辑
if (scenicDbSearchResult.getSampleListIds() != null && scenicDbSearchResult.getFirstMatchRate() != null && !scenicDbSearchResult.getSampleListIds().isEmpty()) {
if (scenicDbSearchResult.getSampleListIds().size() < 2) {
if (scenicDbSearchResult.getSampleListIds().size() < 5) {
// 补救逻辑
Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0);
FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId);
if (faceSample != null) {
// 以这个结果为人脸库的匹配结果
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施1:人脸数太少只有一张");
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施1:人脸数太少少于5");
}
} else if (scenicDbSearchResult.getFirstMatchRate() > 0.75 && scenicDbSearchResult.getSampleListIds().size() < 2) {
} else if (scenicDbSearchResult.getFirstMatchRate() > 0.7) {
// 如果匹配度高于阈值,则使用景区第一张人脸去匹配景区库
// 找第一张人脸
Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0);
FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId);
if (faceSample != null) {
// 以这个结果为人脸库的匹配结果
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施2:存在得分够高但是结果少");
}
} else if (scenicDbSearchResult.getSampleListIds().size() > 5) {
// 补救逻辑
Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0);
FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId);
if (faceSample != null) {
// 以这个结果为人脸库的匹配结果
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施3:人脸数过多大于5");
scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施2:存在得分够高");
}
}
}