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 ++++++++---
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.java            |    8 ++
 Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml                 |    6 ++
 Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java    |    5 +
 Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Strategy.java             |    6 --
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.xml             |   11 +++
 Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java            |    9 ++
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java                     |    6 ++
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.java               |    2 
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/ICombinationService.java         |   10 ++
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java    |    3 
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.xml                |   19 +++++-
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/CombinationServiceImpl.java |    5 +
 13 files changed, 101 insertions(+), 24 deletions(-)

diff --git a/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Strategy.java b/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Strategy.java
index 8e9eaef..63aecd3 100644
--- a/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Strategy.java
+++ b/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Strategy.java
@@ -146,12 +146,6 @@
 	private String licensors;
 
 	/**
-	 * 缁勫悎鏂瑰紡姝e垯
-	 */
-	@ApiModelProperty(value = "鎺堟潈浜�")
-	private String regex;
-
-	/**
 	 * 缁勫悎鍚嶇О
 	 */
 	@ApiModelProperty(value = "缁勫悎鍚嶇О")
diff --git a/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java b/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
index 94d56f2..ce9daa5 100644
--- a/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
+++ b/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
@@ -68,7 +68,7 @@
 	String STRATEGY = API_PREFIX + "/query-tenantid-name";
 	String STRATEGYBYID = API_PREFIX + "/query-userid";
 	String REGEX = API_PREFIX + "/combination-regex";
-
+	String REGEXONE = API_PREFIX + "/combination-regex-one";
 	/**
 	 * 鑾峰彇鑿滃崟
 	 *
@@ -314,4 +314,11 @@
 	@PostMapping(REGEX)
 	R<String> getRegex(@RequestBody List<String> combinationIds);
 
+	/**
+	 * 鏍规嵁缁勫悎鏂瑰紡id鑾峰彇鍊�
+	 * @return
+	 */
+	@PostMapping(REGEXONE)
+	R<List<String>> getRegexByList(@RequestBody List<String> combinationIds);
+
 }
diff --git a/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java b/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
index 10cf0a0..1b84a20 100644
--- a/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
+++ b/Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
@@ -165,5 +165,10 @@
 		return R.fail("鑾峰彇鏁版嵁澶辫触");
 	}
 
+	@Override
+	public R<List<String>> getRegexByList(List<String> combinationIds) {
+		return R.fail("鑾峰彇鏁版嵁澶辫触");
+	}
+
 
 }
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
index ae2be56..68e2399 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
@@ -215,5 +215,11 @@
 		return R.data(combinationService.getRegex(combinationIds));
 	}
 
+	@Override
+	@PostMapping(REGEXONE)
+	public R<List<String>> getRegexByList(List<String> combinationIds) {
+		return R.data(combinationService.getRegexList(combinationIds));
+	}
+
 
 }
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.java
index f3fee85..3e55378 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.java
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.java
@@ -47,5 +47,13 @@
 	 */
 	String queryRegex(@Param("combinationIds") List<String> combinationIds);
 
+	/**
+	 * 鏌ヨ缁勫悎鏂瑰紡瀵瑰簲姝e垯闆嗗悎
+	 *
+	 * @param combinationIds 鏌ヨ鏉′欢
+	 * @return 鎬昏鏁�
+	 */
+	List<String> queryRegexList(@Param("combinationIds") List<String> combinationIds);
+
 }
 
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.xml b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.xml
index 159254d..be19c53 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.xml
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/CombinationMapper.xml
@@ -88,7 +88,16 @@
     </select>
 
     <select id="queryRegex" resultType="java.lang.String">
-        SELECT REPLACE(WM_CONCAT(psc.REGEX),',[','[') from PL_SYS_COMBINATION psc
+        SELECT CONCAT(REPLACE(WM_CONCAT(psc.REGEX),',[',''),']') FROM PL_SYS_COMBINATION psc
+        WHERE psc.ID IN (
+        <foreach collection="combinationIds" item="id" separator=",">
+            #{id}
+        </foreach>
+        )
+    </select>
+
+    <select id="queryRegexList" resultType="java.lang.String">
+        SELECT concat(psc.REGEX,']{1,}') from PL_SYS_COMBINATION psc
         WHERE psc.ID IN (
         <foreach collection="combinationIds" item="id" separator=",">
             #{id}
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.java
index 40916fa..2a7fe31 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.java
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.java
@@ -46,5 +46,7 @@
 	 */
 	Strategy queryByUserId(@Param("userId") Long userId);
 
+	Strategy queryByIsDefault();
+
 }
 
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.xml b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.xml
index 5b3e32f..385b072 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.xml
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.xml
@@ -20,7 +20,6 @@
         <result property="updateTime" column="UPDATE_TIME" jdbcType="TIMESTAMP"/>
         <result property="updateUser" column="UPDATE_USER" jdbcType="TIMESTAMP"/>
         <result property="combinationNames" column="COMBINATIONNAMES"/>
-        <result property="regex" column="REGEX"/>
     </resultMap>
 
     <!--鏌ヨ鎸囧畾琛屾暟鎹�-->
@@ -90,16 +89,30 @@
 
 
     <select id="queryByNameAndTenantId" resultMap="StrategyMap">
-        SELECT PSS.* FROM PL_SYS_STRATEGY PSS
+        SELECT PSS.*,(select WM_CONCAT(psc.NAME)
+                      from PL_SYS_COMBINATION psc
+                      where instr(pss.COMBINATION_IDS,psc.ID) > 0) COMBINATIONNAMES
+        FROM PL_SYS_STRATEGY PSS
               LEFT JOIN PL_SYS_USER_PWDSTRATEGY PSUP ON PSS.ID=PSUP.PWDSTRATEGY_ID
               LEFT JOIN PL_ORG_USER POU ON POU.ID=PSUP.USER_ID
         WHERE POU.TENANT_ID = #{tenantId} AND POU.NAME=#{name};
     </select>
 
     <select id="queryByUserId" resultMap="StrategyMap">
-        SELECT PSS.* FROM PL_SYS_STRATEGY PSS LEFT JOIN PL_SYS_USER_PWDSTRATEGY PSUP ON PSS.ID=psup.PWDSTRATEGY_ID
+        SELECT PSS.*,(select WM_CONCAT(psc.NAME)
+                      from PL_SYS_COMBINATION psc
+                      where instr(pss.COMBINATION_IDS,psc.ID) > 0) COMBINATIONNAMES
+        FROM PL_SYS_STRATEGY PSS LEFT JOIN PL_SYS_USER_PWDSTRATEGY PSUP ON PSS.ID=psup.PWDSTRATEGY_ID
         WHERE PSUP.USER_ID = #{userId}
     </select>
 
+    <select id="queryByIsDefault" resultType="org.springblade.system.entity.Strategy">
+        SELECT PSS.*,(SELECT WM_CONCAT(psc.NAME)
+                      FROM PL_SYS_COMBINATION psc
+                      WHERE instr(pss.COMBINATION_IDS, psc.ID) > 0) COMBINATIONNAMES
+        FROM PL_SYS_STRATEGY PSS
+        WHERE is_default = 1
+    </select>
+
 </mapper>
 
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/ICombinationService.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/ICombinationService.java
index fa3438d..c019269 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/ICombinationService.java
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/ICombinationService.java
@@ -56,10 +56,16 @@
 	List<Map<String,Object>> selectMaps();
 
 	/**
-	 * 涓嬫媺鏁版嵁婧愭煡璇�
-	 * 鏌ヨ缁勫悎id锛坘ey锛夛細缁勫悎鍚嶏紙value锛�
+	 * 鏌ヨ鎷兼帴瀹屾暣鐨勬鍒�
+	 * @param combinationIds
 	 * @return
 	 */
 	String getRegex(List<String> combinationIds);
 
+	/**
+	 * 鏍规嵁缁勫悎id鏌ヨ姝e垯闆嗗悎
+	 * @param combinationIds
+	 * @return
+	 */
+	List<String> getRegexList(List<String> combinationIds);
 }
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/CombinationServiceImpl.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/CombinationServiceImpl.java
index 5f27705..1d69a42 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/CombinationServiceImpl.java
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/CombinationServiceImpl.java
@@ -119,4 +119,9 @@
 		return combinationMapper.queryRegex(combinationIds);
 	}
 
+	@Override
+	public List<String> getRegexList(List<String> combinationIds) {
+		return combinationMapper.queryRegexList(combinationIds);
+	}
+
 }
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java
index 8d0c523..15a6b43 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java
+++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java
@@ -49,8 +49,7 @@
 	 */
 	@Override
 	public Strategy queryByIsDefault() {
-		return this.getOne(Wrappers.<Strategy>query().lambda()
-			.eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY));
+		return this.strategyMapper.queryByIsDefault();
 	}
 
 	/**
diff --git a/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml b/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
index 992cd82..9c1b7c3 100644
--- a/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
+++ b/Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
@@ -89,4 +89,10 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="selectByIdUser" resultType="org.springblade.system.user.entity.User">
+        select id, code, user_type, account, password , name, real_name, avatar, email, phone , birthday, sex, role_id, dept_id, post_id , pwd_update_time, secretgrade, strategy_update_status, tenant_id, create_user , create_dept, create_time, update_user, update_time, status , is_deleted
+        from pl_org_user
+            where id = #{userId} and is_deleted = 0
+    </select>
+
 </mapper>
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