Parcourir la source

1、优化添加访客列表已经存在的常客时,信息显示不全问题
2、优化黑名单有一条数据,人脸不能下发问题

x-rf il y a 3 ans
Parent
commit
e576453b11

+ 44 - 0
src/main/java/com/yx/face/boot/uitls/BeanUtils.java

@@ -0,0 +1,44 @@
+package com.yx.face.boot.uitls;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Type;
+
+/**
+ * @ClassName BeanUtils
+ * @Description TODO
+ * @Author xrf
+ * @Date 2021/12/3 15:15
+ */
+public class BeanUtils {
+    /**
+     * 判断对象是否为空,且对象的所有属性都为空
+     * ps: boolean类型会有默认值false 判断结果不会为null 会影响判断结果
+     * 序列化的默认值也会影响判断结果
+     *
+     * @param object
+     * @return
+     */
+    public static boolean objCheckIsNull(Object object) {
+        Class clazz = (Class) object.getClass();
+        Field fields[] = clazz.getDeclaredFields();
+        boolean flag = true;
+        for (Field field : fields) {
+            field.setAccessible(true);
+            Object fieldValue = null;
+            try {
+                fieldValue = field.get(object);
+                Type fieldType = field.getGenericType();
+                String fieldName = field.getName();
+            } catch (IllegalArgumentException e) {
+                e.printStackTrace();
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            }
+            if (fieldValue != null) {
+                flag = false;
+                break;
+            }
+        }
+        return flag;
+    }
+}

+ 1 - 0
src/main/java/com/yx/face/controller/admin/UserWhitelistController.java

@@ -40,6 +40,7 @@ public class UserWhitelistController extends BaseController {
     @ApiOperation("新增常客")
     @PostMapping("insert")
     public RestResult<Boolean> insert(@RequestBody UserWhitelistDTO userWhitelistDTO) {
+        userWhitelistDTO.setAdminId(getUserId());
         Integer insert = userWhitelistService.insert(userWhitelistDTO);
         if (insert == 1) return RestResponse.ok(true);
         else return RestResponse.error("增加失败");

+ 2 - 0
src/main/java/com/yx/face/model/dto/UserWhitelistDTO.java

@@ -28,4 +28,6 @@ public class UserWhitelistDTO {
     @ApiModelProperty(value = "手机号")
     private String phone;
 
+    @ApiModelProperty(value = "管理员id")
+    private Integer adminId;
 }

+ 1 - 1
src/main/java/com/yx/face/service/impl/UserInfoServiceImpl.java

@@ -216,7 +216,7 @@ public class UserInfoServiceImpl implements UserInfoService {
         }
         //校验是否在黑名单
         UserBlackList userBlackList = new UserBlackList();
-        userBlackList.setPhone(userBlackList.getPhone());
+        userBlackList.setPhone(userInfo.getPhone());
         userBlackList.setAdminId(Integer.valueOf(admin));
         UserBlackList userBlackOne = userBlackListDao.selectOne(userBlackList);
         if (userBlackOne != null) {

+ 12 - 1
src/main/java/com/yx/face/service/impl/UserWhitelistServiceImpl.java

@@ -8,6 +8,7 @@ import com.yx.face.boot.restful.RestDTO;
 import com.yx.face.boot.restful.RestResponse;
 import com.yx.face.boot.restful.RestResult;
 import com.yx.face.boot.restful.ServiceException;
+import com.yx.face.boot.uitls.BeanUtils;
 import com.yx.face.boot.uitls.DateUtils;
 import com.yx.face.boot.uitls.JsonUtils;
 import com.yx.face.boot.uitls.SMSOrIdCardUtils;
@@ -69,13 +70,23 @@ public class UserWhitelistServiceImpl implements UserWhitelistService {
     @Resource
     private FaceTaskDao faceTaskDao;
 
+    @Resource
+    private UserVisitorListDao userVisitorListDao;
+
     @Autowired
     private AsyncTriggerRetryImpl asyncTriggerRetryImpl;
 
     @Override
     public Integer insert(UserWhitelistDTO userWhitelistDTO) {
-        userWhitelistDTO.setId(null);
         UserWhitelist userWhitelist = getUserWhitelist(userWhitelistDTO);
+        //新增前先判断访客列表有没有数据,如果有,就拿过来,填充到常客列表,否则不填充
+        UserVisitorList userVisitorListByPhone = userVisitorListDao.getByPhoneAndId(userWhitelistDTO.getPhone(), userWhitelistDTO.getAdminId());
+        if (!BeanUtils.objCheckIsNull(userVisitorListByPhone)){
+            userWhitelist.setAvatar(userVisitorListByPhone.getAvatar());
+            userWhitelist.setIdNumber(userVisitorListByPhone.getIdNumber());
+            userWhitelist.setStatus(1);//访客列表有信息,说明已经认证
+        }
+        userWhitelistDTO.setId(null);
         userWhitelist.setCreateTime(new Date());
         userWhitelist.setStatus(2);
         userWhitelist.setType(1);