TRX пре 1 година
родитељ
комит
a3c6a65e12

+ 5 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java

@@ -23,9 +23,7 @@ import com.zhongshu.card.server.core.dao.org.*;
 import com.zhongshu.card.server.core.dataConfig.CardDefault;
 import com.zhongshu.card.server.core.domain.org.*;
 import com.zhongshu.card.server.core.service.base.SuperService;
-import com.zhongshu.card.server.core.util.BeanUtils;
-import com.zhongshu.card.server.core.util.DateUtils;
-import com.zhongshu.card.server.core.util.NextNoUtil;
+import com.zhongshu.card.server.core.util.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -177,7 +175,10 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
             return ResultContent.buildSuccess(String.format("项目不存在:%s", projectId));
         }
         // 验证密码是否符合格式
-
+        ValidateResult validateResult = ValidateUtils.validatePassWord(param.getPassword());
+        if (!validateResult.isSuccess()) {
+            return ResultContent.buildFail(validateResult.getMsg());
+        }
 
         OrganizationAddParam addParam = new SchoolAddParam();
         BeanUtils.copyProperties(param, addParam);

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/test/Test.java

@@ -14,8 +14,8 @@ public class Test {
         String orderNo = String.valueOf(snowflake.nextId());
         System.out.println(orderNo + " = " + orderNo.length());
 
-        String str = "@$我是";
-        ValidateResult result = ValidateUtils.isContainsChinese(str);
+        String str = "123abc@";
+        ValidateResult result = ValidateUtils.validatePassWord(str);
         System .out.println("结果:" + result.isSuccess() + " = " + result.getMsg()
          + " == " + ValidateUtils.isPhoneNumber("18723497166"));
     }

+ 7 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/util/ValidateResult.java

@@ -8,6 +8,12 @@ import lombok.Data;
  */
 @Data
 public class ValidateResult {
-    private boolean isSuccess = true;
+    /**
+     * 是否验证成功
+     */
+    private boolean isSuccess = false;
+    /**
+     * 匹配找出的字符串
+     */
     private String msg = "";
 }

+ 39 - 14
FullCardServer/src/main/java/com/zhongshu/card/server/core/util/ValidateUtils.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.server.core.util;
 
 import com.zhongshu.card.server.core.dataConfig.PasswordCheckConf;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -27,29 +28,27 @@ public class ValidateUtils {
     }
 
     /**
-     * 验证是否有特殊支付
+     * 验证是否有特殊支付 (有一个就是true)
      *
      * @param str
      * @return
      */
-    public static ValidateResult hasSpecial(String str) {
+    public static ValidateResult isContainsSpecial(String str) {
         ValidateResult result = new ValidateResult();
         String validPattern = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?\\s]";
         Pattern pattern = Pattern.compile(validPattern);
         Matcher matcher = pattern.matcher(str);
-        result.setSuccess(!matcher.matches());
         StringBuilder specialChars = new StringBuilder();
-        if (result.isSuccess()) {
-            while (matcher.find()) {
-                specialChars.append(matcher.group());
-            }
-            result.setMsg("包含特殊支付:" + specialChars);
+        while (matcher.find()) {
+            result.setSuccess(true);
+            specialChars.append(matcher.group());
         }
+        result.setMsg(specialChars.toString());
         return result;
     }
 
     /**
-     * 是否包含汉字
+     * 是否包含汉字 (有一个就是true)
      *
      * @param str
      * @return
@@ -58,13 +57,39 @@ public class ValidateUtils {
         ValidateResult result = new ValidateResult();
         Pattern pattern = Pattern.compile("[\u4E00-\u9FA5]");
         Matcher matcher = pattern.matcher(str);
-        result.setSuccess(!matcher.matches());
         StringBuilder specialChars = new StringBuilder();
-        if (result.isSuccess()) {
-            while (matcher.find()) {
-                specialChars.append(matcher.group());
+        while (matcher.find()) {
+            result.setSuccess(true);
+            specialChars.append(matcher.group());
+        }
+        result.setMsg(specialChars.toString());
+        return result;
+    }
+
+    /**
+     * 验证密码是否符合要求
+     * @param passWord
+     * @return
+     */
+    public static ValidateResult validatePassWord(String passWord) {
+        ValidateResult result = new ValidateResult();
+        result.setSuccess(true);
+        if(StringUtils.isEmpty(passWord)) {
+            result.setSuccess(false);
+            result.setMsg("密码不能为空");
+        }else {
+            if(passWord.length() < Integer.parseInt(PasswordCheckConf.MIN_LENGTH)
+                || passWord.length() > Integer.parseInt(PasswordCheckConf.MAX_LENGTH)) {
+                result.setSuccess(false);
+                result.setMsg(String.format("密码长度必须大于%s位,小于%s位", PasswordCheckConf.MIN_LENGTH, PasswordCheckConf.MAX_LENGTH));
+            }
+            if (result.isSuccess()) {
+                ValidateResult validateResult = isContainsChinese(passWord);
+                if (validateResult.isSuccess()) {
+                    result.setSuccess(false);
+                    result.setMsg(String.format("密码不能包含汉字:%s", validateResult.getMsg()));
+                }
             }
-            result.setMsg("包含汉字:" + specialChars);
         }
         return result;
     }