From c0f21a9745daa3afef19110025bdee9d0ba00338 Mon Sep 17 00:00:00 2001
From: ludc <2870569285@qq.com>
Date: 星期日, 26 三月 2023 01:29:15 +0800
Subject: [PATCH] 更新部分后端代码

---
 Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java |   35 ++++++++++++++++++++++++++---------
 1 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
index 5138b90..f10a077 100644
--- a/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
+++ b/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
@@ -293,7 +293,6 @@
 
 	@Override
 	public boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1) {
-		String hex = DigestUtil.hex(DigestUtils.md5DigestAsHex((newPassword1).getBytes()));
 		User user = getById(userId);
 		if (!newPassword.equals(newPassword1)) {
 			throw new ServiceException("璇疯緭鍏ユ纭殑纭瀵嗙爜!");
@@ -303,19 +302,37 @@
 		}
 		//鑾峰彇鐢ㄦ埛閲囩敤鐨勫瘑鐮佺瓥鐣�
 		Strategy strategy = sysClient.getByUserId(userId).getData();
-		String resException = "瀵嗙爜涓繀椤诲惈鏈夈��"+strategy.getCombinationIds()+"銆戜腑鐨勩��"+strategy.getRequiredType()+"銆戠瀵嗙爜缁勫悎鏂瑰紡锛屼笖瀵嗙爜闀垮害蹇呴』鍦ㄣ��"+strategy.getMinPwdLen()+"-"+strategy.getMaxPwdLen()+"銆戣寖鍥村唴";
 		//瀵嗙爜闀垮害鏍¢獙
 		if(newPassword1.length() < strategy.getMinPwdLen() || newPassword1.length() > strategy.getMaxPwdLen()){
+			throw new ServiceException("瀵嗙爜涓繀椤诲惈鏈夈��"+strategy.getCombinationNames()+"銆戜腑鐨勩��"+strategy.getRequiredType()+"銆戠瀵嗙爜缁勫悎鏂瑰紡锛屼笖瀵嗙爜闀垮害蹇呴』鍦ㄣ��"+strategy.getMinPwdLen()+"-"+strategy.getMaxPwdLen()+"銆戣寖鍥村唴");
+		}
+		List<String> regexs = sysClient.getRegexByList(Arrays.asList(strategy.getCombinationIds().split(","))).getData();
+		//鍒ゆ柇鏄惁婊¤冻缁勫悎鏂瑰紡涓殑蹇呭~绉嶇被鏁�
+		int reqType = 0;
+		for (int i = 0; i < regexs.size(); i++) {
+			if(reqType>=strategy.getRequiredType()){
+				break;
+			}
+			if(!Func.isEmpty(RegexUtil.findResult(regexs.get(i),newPassword1))){
+				reqType++;
+			}
+		}
+		String resException = "瀵嗙爜涓繀椤诲惈鏈夈��"+strategy.getCombinationNames()+"銆戜腑鐨勩��"+strategy.getRequiredType()+"銆戠绫诲瀷锛岃閲嶆柊杈撳叆瀵嗙爜锛�";
+		if(reqType<strategy.getRequiredType()){
 			throw new ServiceException(resException);
 		}
-		//鏌ヨ瀵嗙爜绛栫暐鍙栧��
+		// 鏄惁灞炰簬缁勫悎鏂瑰紡涓殑绫诲瀷
 		String regex = sysClient.getRegex(Arrays.asList(strategy.getCombinationIds().split(","))).getData();
-		System.out.println("===============regex================"+regex);
-		regex = "^"+regex+"$";
-		String result = RegexUtil.findResult(regex, newPassword);
-		System.out.println(result);
-		return this.update(Wrappers.<User>update().lambda().set(User::getPassword, DigestUtil.hex(DigestUtils.md5DigestAsHex((newPassword1).getBytes()))).eq(User::getId, userId));
-		//return true;
+		regex = "^"+regex+"{"+strategy.getRequiredType()+",}$";
+		boolean result = RegexUtil.find(regex, newPassword1);
+		if(!result){
+			throw new ServiceException(resException);
+		}
+		//淇敼瀵嗙爜鍚屾椂锛屾敼鍙樼敤鎴蜂俊鎭腑鐨勫瘑鐮佷慨鏀圭姸鎬佸瓧娈�
+		return this.update(Wrappers.<User>update().lambda()
+			.set(User::getPassword, DigestUtil.hex(DigestUtils.md5DigestAsHex((newPassword1).getBytes())))
+			.set(User::getStrategyUpdateStatus,CommonConstant.TOP_PARENT_ID)
+			.eq(User::getId, userId));
 	}
 
 	@Override

--
Gitblit v1.9.3