Browse Source

检测授权sn重复

lyhzzz 2 years ago
parent
commit
372e90f0e9

+ 1 - 0
src/main/java/com/fdkankan/manage/common/ResultCode.java

@@ -80,6 +80,7 @@ public enum ResultCode  {
     UPDATE_CAMERA_ERROR(50061, "替换的sn重复!"),
     SCENE_NOT_STORE(50062, "场景未冻结无需解冻!"),
     SCENE_STORE_ING(50063, "场景正在解冻请稍候!"),
+    CAMERA_SN_EXITS(50064, "授权相机sn重复!"),
     ;
 
     private Integer code;

+ 4 - 0
src/main/java/com/fdkankan/manage/service/impl/AuthorizeCameraServiceImpl.java

@@ -13,6 +13,7 @@ import com.fdkankan.manage.mapper.IAuthorizeCameraMapper;
 import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.util.CameraUtils;
+import com.fdkankan.manage.util.ListUtils;
 import com.fdkankan.manage.vo.request.AuthorizeParam;
 import com.fdkankan.reg.RegCodeUtil;
 import com.fdkankan.reg.dto.CamRegDto;
@@ -102,6 +103,9 @@ public class AuthorizeCameraServiceImpl extends ServiceImpl<IAuthorizeCameraMapp
                 dtos.setTimestamp(new Date().getTime());
                 List<CamRegDto> camRegs = new ArrayList<>();
                 String[] split = param.getSnCodes().split("\n");
+                if(ListUtils.checkForDuplicates(split)){
+                    throw new BusinessException(ResultCode.CAMERA_SN_EXITS);
+                }
                 for (String snCode : split) {
                     snCode = snCode.toUpperCase();
                     CamRegDto camRegDto = new CamRegDto();

+ 19 - 0
src/main/java/com/fdkankan/manage/util/ListUtils.java

@@ -0,0 +1,19 @@
+package com.fdkankan.manage.util;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Stream;
+
+public class ListUtils {
+
+    public static <T> boolean checkForDuplicates(T... array) {
+        Set<T> set = new HashSet<>(Arrays.asList(array));
+        return array.length != set.size();
+    }
+
+    private static <T> boolean checkForDuplicates2(T... array) {
+        Long distinctCount = Stream.of(array).distinct().count();
+        return array.length != distinctCount;
+    }
+}