yl-backend/src/main/java/com/guwan/backend/face/FaceEngineAutoRun.java

62 lines
2.2 KiB
Java
Raw Normal View History

2025-05-11 00:18:37 +08:00
package com.guwan.backend.face;
2025-03-13 23:55:12 +08:00
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
2025-05-11 00:18:37 +08:00
import com.guwan.backend.face.entity.UserCompareInfo;
import com.guwan.backend.face.service.FaceEngineService;
import com.guwan.backend.face.util.Base64Util;
import com.guwan.backend.face.util.UserInfo;
import com.guwan.backend.face.util.UserRamGroup;
import com.guwan.backend.pojo.entity.User;
import com.guwan.backend.service.UserService;
2025-03-13 23:55:12 +08:00
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@Order(1)
@Slf4j
public class FaceEngineAutoRun implements ApplicationRunner {
@Autowired
private FaceEngineService faceEngineService;
@Autowired
2025-05-11 00:18:37 +08:00
private UserService userService;
2025-03-13 23:55:12 +08:00
@Override
public void run(ApplicationArguments args) throws Exception {
// 任务初始化
2025-05-11 00:18:37 +08:00
log.debug("服务启动。开始初始化人脸库");
UserRamGroup.addCell("Guwan");
int userCount = Math.toIntExact(userService.getCount());
int pageSize = 1000;
int page = userCount / pageSize;
if(userCount % 1000!=0){
page = page + 1;
}
int faceCount = 0;
for (int i = 0; i < page; i++) {
int start = i * 1000;
List<User> listPage = userService.listPage(start, 1000);
for(User user: listPage){
if(user.getFeature() != null && !user.getFeature().isEmpty()){
UserInfo userInfo = new UserCompareInfo();
userInfo.setFaceId(String.valueOf(user.getId()));
userInfo.setName(user.getUsername());
userInfo.setFaceFeature(Base64Util.base64ToBytes(user.getFeature()));
//这边注册到内存缓存中
UserRamGroup.addUser(userInfo,"Guwan");
faceCount++;
2025-03-13 23:55:12 +08:00
}
}
}
2025-05-11 00:18:37 +08:00
log.debug("初始化人脸库完成,共 "+faceCount+"");
2025-03-13 23:55:12 +08:00
}
}
2025-05-11 00:18:37 +08:00