人脸删除

This commit is contained in:
sxu 2025-06-05 13:45:08 +08:00
parent d131a953da
commit 83bb3f0d38
4 changed files with 44 additions and 33 deletions

View File

@ -37,7 +37,7 @@ public class UserFace implements Serializable {
/** 照片地址 */
@ApiModelProperty(value = "照片地址")
@NotBlank(message = "照片地址必填")
//@NotBlank(message = "照片地址必填")
private String photoUrl;
/** 特征码 */

View File

@ -11,4 +11,6 @@ import com.bonus.canteen.core.user.domain.UserFace;
*/
public interface UserFaceMapper {
int insertUserFace(UserFace userFace);
int deleteUserFace(UserFace userFace);
}

View File

@ -13,9 +13,12 @@ import com.bonus.canteen.core.user.utils.ArcFaceHelper;
import com.bonus.canteen.core.user.utils.FaceResult;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.houqin.mq.constant.LeMqConstant;
import com.bonus.common.security.utils.SecurityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bonus.canteen.core.user.mapper.UserFaceMapper;
@ -30,8 +33,10 @@ import com.bonus.canteen.core.user.service.IUserFaceService;
*/
@Service
public class UserFaceServiceImpl implements IUserFaceService {
private static final Logger log = LoggerFactory.getLogger(UserFaceServiceImpl.class);
@Autowired
private UserFaceMapper UserFaceMapper;
private UserFaceMapper userFaceMapper;
/**
* 查询人员生物识别特征
@ -47,40 +52,39 @@ public class UserFaceServiceImpl implements IUserFaceService {
if (ObjectUtil.isNull(dto.getUserId())) {
throw new ServiceException("用户ID为空");
}
if (ObjectUtil.isNull(dto.getPhotoUrl())) {
throw new ServiceException("图片地址为空!");
}
System.out.println("开始采集虹软人脸");
ArcFaceHelper arcFaceHelper = new ArcFaceHelper();
String url = FileUrlUtil.getFileUrl(dto.getPhotoUrl());
FaceResult faceResult = arcFaceHelper.getFaceFeatures(url);
System.err.println("采集结束");
List<UserFace> list = new ArrayList<>();
if (faceResult != null) {
UserFace faceVO = new UserFace();
faceVO.setErrorMsg("[软件]成功");
faceVO.setFeatures(Base64.getEncoder().encodeToString(faceResult.getFeatures()));
faceVO.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
faceVO.setUserId(dto.getUserId());
faceVO.setPhotoUrl(dto.getPhotoUrl());
faceVO.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
faceVO.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
faceVO.setCreateTime(DateUtils.getTime());
faceVO.setUpdateTime(DateUtils.getTime());
list.add(faceVO);
System.out.println("faceResult.getFeatures():" + Base64.getEncoder().encodeToString(faceResult.getFeatures()));
System.out.println("人脸采集成功");
if (StringUtils.isEmpty(dto.getPhotoUrl())) {
userFaceMapper.deleteUserFace(dto);
} else {
throw new ServiceException("[虹软算法]:特征值提取失败");
log.info("开始采集虹软人脸");
ArcFaceHelper arcFaceHelper = new ArcFaceHelper();
String url = FileUrlUtil.getFileUrl(dto.getPhotoUrl());
FaceResult faceResult = arcFaceHelper.getFaceFeatures(url);
log.info("采集结束");
List<UserFace> list = new ArrayList<>();
if (faceResult != null) {
UserFace faceVO = new UserFace();
faceVO.setErrorMsg("[软件]成功");
faceVO.setFeatures(Base64.getEncoder().encodeToString(faceResult.getFeatures()));
faceVO.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
faceVO.setUserId(dto.getUserId());
faceVO.setPhotoUrl(dto.getPhotoUrl());
faceVO.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
faceVO.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
faceVO.setCreateTime(DateUtils.getTime());
faceVO.setUpdateTime(DateUtils.getTime());
list.add(faceVO);
log.info("faceResult.getFeatures():" + Base64.getEncoder().encodeToString(faceResult.getFeatures()));
log.info("人脸采集成功");
} else {
throw new ServiceException("[虹软算法]:特征值提取失败");
}
int code = userFaceMapper.insertUserFace(list.get(0));
if (code == 0){
throw new ServiceException("[虹软算法]:保存失败");
}
}
int code = UserFaceMapper.insertUserFace(list.get(0));
if (code == 0){
throw new ServiceException("[虹软算法]:保存失败");
}
DeviceMqPersonalUpdateMessageDTO bean = new DeviceMqPersonalUpdateMessageDTO().setUpdatePersonPhoto(1);
System.out.println(bean.toString());
//发送mq
DeviceMqPersonalUpdateMessageDTO bean = new DeviceMqPersonalUpdateMessageDTO().setUpdatePersonPhoto(1);
MqUtil.pushToTenantAllDevice(bean, LeMqConstant.Topic.DEVICE_UPDATE_PERSONAL_CONFIG_V4);
return AjaxResult.success();
}

View File

@ -12,4 +12,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update_by = #{updateBy},
update_time = #{updateTime}
</insert>
<delete id="deleteUserFace" parameterType="com.bonus.canteen.core.user.domain.UserFace">
delete from user_face
where user_id = #{userId}
</delete>
</mapper>