This commit is contained in:
2025-01-16 22:22:35 +08:00
parent bbcbdd2839
commit 937e1c1ff5
9 changed files with 58 additions and 17 deletions

View File

@@ -2,6 +2,8 @@ package com.ycwl.basic.service.impl.pc;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.model.pc.device.entity.DeviceEntity;
import com.ycwl.basic.model.wvp.WvpSyncReqVo;
import com.ycwl.basic.repository.DeviceRepository;
import com.ycwl.basic.mapper.DeviceMapper;
import com.ycwl.basic.model.pc.device.entity.DeviceConfigEntity;
@@ -91,4 +93,22 @@ public class DeviceServiceImpl implements DeviceService {
deviceMapper.updateConfig(config);
deviceRepository.clearDeviceCache(config.getDeviceId());
}
@Override
public void updateDevices(Long scenicId, WvpSyncReqVo reqVo) {
if (reqVo == null) {
return;
}
if (reqVo.getDevices() != null && !reqVo.getDevices().isEmpty()) {
for (WvpSyncReqVo.DeviceItem deviceItem : reqVo.getDevices()) {
DeviceEntity device = deviceMapper.getByDeviceNo(deviceItem.getDeviceNo());
if (device != null) {
device.setOnline(deviceItem.getOnline());
device.setKeepaliveAt(deviceItem.getKeepaliveAt());
deviceMapper.updateEntity(device);
deviceRepository.clearDeviceCache(device.getId());
}
}
}
}
}

View File

@@ -139,17 +139,17 @@ public class FaceServiceImpl implements FaceService {
FaceEntity faceEntity = new FaceEntity();
faceEntity.setScore(scenicDbSearchResult.getScore());
faceEntity.setMatchResult(scenicDbSearchResult.getSearchResultJson());
SearchFaceRespVo userDbSearchResult = faceService.searchFace(USER_FACE_DB_NAME, faceUrl);
SearchFaceRespVo userDbSearchResult = faceService.searchFace(USER_FACE_DB_NAME+scenicId, faceUrl);
float strictScore = 0.6F;
if (userDbSearchResult == null) {
// 都是null了,那得是新的
faceService.addFaceSample(USER_FACE_DB_NAME, newFaceId.toString(), faceUrl, newFaceId.toString());
faceService.addFaceSample(USER_FACE_DB_NAME+scenicId, newFaceId.toString(), faceUrl, newFaceId.toString());
} else if (userDbSearchResult.getSampleListIds() == null || userDbSearchResult.getSampleListIds().isEmpty()) {
// 没有匹配到过,也得是新的
faceService.addFaceSample(USER_FACE_DB_NAME, newFaceId.toString(), faceUrl, newFaceId.toString());
faceService.addFaceSample(USER_FACE_DB_NAME+scenicId, newFaceId.toString(), faceUrl, newFaceId.toString());
} else if (userDbSearchResult.getFirstMatchRate() < strictScore) {
// 有匹配结果,但是不匹配旧的
faceService.addFaceSample(USER_FACE_DB_NAME, newFaceId.toString(), faceUrl, newFaceId.toString());
faceService.addFaceSample(USER_FACE_DB_NAME+scenicId, newFaceId.toString(), faceUrl, newFaceId.toString());
} else {
// 有匹配结果,且能匹配旧的数据
Optional<Long> faceAny = userDbSearchResult.getSampleListIds().stream().filter(oldFaceId -> {
@@ -163,7 +163,8 @@ public class FaceServiceImpl implements FaceService {
Long oldFaceId = faceAny.get();
FaceRespVO oldFace = faceMapper.getById(oldFaceId);
if (oldFace == null) {
faceService.deleteFaceSample(USER_FACE_DB_NAME, oldFaceId.toString());
faceService.deleteFaceSample(USER_FACE_DB_NAME+scenicId, oldFaceId.toString());
faceService.addFaceSample(USER_FACE_DB_NAME+scenicId, newFaceId.toString(), faceUrl, newFaceId.toString());
} else {
faceEntity.setId(oldFaceId);
}