diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/domain/UserFace.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/domain/UserFace.java index 58d86b4..b8cf2a5 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/domain/UserFace.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/domain/UserFace.java @@ -37,7 +37,7 @@ public class UserFace implements Serializable { /** 照片地址 */ @ApiModelProperty(value = "照片地址") - @NotBlank(message = "照片地址必填") + //@NotBlank(message = "照片地址必填") private String photoUrl; /** 特征码 */ diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/mapper/UserFaceMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/mapper/UserFaceMapper.java index 9329c94..8aed641 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/mapper/UserFaceMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/mapper/UserFaceMapper.java @@ -11,4 +11,6 @@ import com.bonus.canteen.core.user.domain.UserFace; */ public interface UserFaceMapper { int insertUserFace(UserFace userFace); + + int deleteUserFace(UserFace userFace); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/service/impl/UserFaceServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/service/impl/UserFaceServiceImpl.java index 3f90104..6727ec4 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/service/impl/UserFaceServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/user/service/impl/UserFaceServiceImpl.java @@ -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 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 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(); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/user/UserFaceMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/user/UserFaceMapper.xml index 7043f78..bebd292 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/user/UserFaceMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/user/UserFaceMapper.xml @@ -12,4 +12,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime} + + + delete from user_face + where user_id = #{userId} + \ No newline at end of file