FaceManagementServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.xjrsoft.module.personnel.service.impl;
  2. import cn.hutool.json.JSONObject;
  3. import cn.hutool.json.JSONUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.github.yulichang.base.MPJBaseServiceImpl;
  7. import com.xjrsoft.common.exception.MyException;
  8. import com.xjrsoft.common.mqtt.EmqClient;
  9. import com.xjrsoft.common.utils.ImageUtil;
  10. import com.xjrsoft.module.personnel.entity.FaceManagement;
  11. import com.xjrsoft.module.personnel.mapper.FaceManagementMapper;
  12. import com.xjrsoft.module.personnel.service.IFaceManagementService;
  13. import lombok.AllArgsConstructor;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.eclipse.paho.mqttv5.common.MqttException;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import java.util.List;
  19. @Service
  20. @AllArgsConstructor
  21. @Slf4j
  22. public class FaceManagementServiceImpl extends MPJBaseServiceImpl<FaceManagementMapper, FaceManagement> implements IFaceManagementService {
  23. private final FaceManagementMapper faceManagementMapper;
  24. private EmqClient emqClient;
  25. @Override
  26. @Transactional(rollbackFor = Exception.class)
  27. public Boolean add(FaceManagement faceManagement) {
  28. FaceManagement old = faceManagementMapper.selectOne(Wrappers.<FaceManagement>query().lambda().eq(FaceManagement::getFaceCode, faceManagement.getFaceCode()));
  29. if (old != null) {
  30. throw new MyException(String.format("人脸编码【%s】已存在!", faceManagement.getFaceCode()));
  31. }
  32. faceManagement.setVerifyStatus(2); // 自动通过
  33. faceManagementMapper.insert(faceManagement);
  34. // 推送数据客户端
  35. // JSONObject jsonObject = JSONUtil.createObj()
  36. // .put("id", faceManagement.getId().toString())
  37. // .put("register_base64", ImageUtil.base64RemovePrefix(faceManagement.getRegisterBase64()));
  38. //
  39. // try {
  40. // emqClient.publish("/face/device/personnel/image/verify", jsonObject);
  41. // } catch (MqttException e) {
  42. // log.error("mqtt", "publish", "/face/device/personnel/image/verify", e.getMessage());
  43. // }
  44. return true;
  45. }
  46. @Override
  47. @Transactional(rollbackFor = Exception.class)
  48. public Boolean update(FaceManagement faceManagement) {
  49. faceManagement.setVerifyStatus(1);
  50. faceManagement.setSyncStatus(1);
  51. if (faceManagement.getRegisterBase64() == null) {
  52. FaceManagement old = faceManagementMapper.selectById(faceManagement.getId());
  53. faceManagement.setRegisterBase64(old.getRegisterBase64());
  54. }
  55. faceManagementMapper.updateById(faceManagement);
  56. // 推送数据客户端
  57. JSONObject jsonObject = JSONUtil.createObj()
  58. .put("id", faceManagement.getId().toString())
  59. .put("register_base64", ImageUtil.base64RemovePrefix(faceManagement.getRegisterBase64()));
  60. try {
  61. emqClient.publish("/face/device/personnel/image/verify", jsonObject);
  62. } catch (MqttException e) {
  63. log.error("mqtt", "publish", "/face/device/personnel/image/verify", e.getMessage());
  64. }
  65. return true;
  66. }
  67. @Override
  68. @Transactional(rollbackFor = Exception.class)
  69. public Boolean delete(List<Long> ids) {
  70. LambdaQueryWrapper<FaceManagement> queryWrapper = new LambdaQueryWrapper<FaceManagement>().in(FaceManagement::getId, ids);
  71. List<FaceManagement> oldCars = faceManagementMapper.selectList(queryWrapper);
  72. // 删除数据
  73. faceManagementMapper.deleteBatchIds(ids);
  74. for (FaceManagement item : oldCars) {
  75. // 推送数据客户端
  76. JSONObject jsonObject = JSONUtil.createObj()
  77. .put("employee_number", item.getFaceCode());
  78. try {
  79. emqClient.publish("/face/device/personnel/delete", jsonObject);
  80. } catch (MqttException e) {
  81. log.error("mqtt", "publish", "/face/device/personnel/delete", e.getMessage());
  82. }
  83. }
  84. return true;
  85. }
  86. }