From 0baeb5d2b147bf29add1e5373652ae70dd749b69 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 24 三月 2023 21:08:55 +0800
Subject: [PATCH] 更新密码策略功能

---
 Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java |   49 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 45 insertions(+), 4 deletions(-)

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 f76c5aa..8d0c523 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
@@ -44,6 +44,16 @@
 	}
 
 	/**
+	 * 鏌ヨ榛樿瀵嗙爜绛栫暐
+	 * @return
+	 */
+	@Override
+	public Strategy queryByIsDefault() {
+		return this.getOne(Wrappers.<Strategy>query().lambda()
+			.eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY));
+	}
+
+	/**
 	 * 鍒嗛〉鏌ヨ
 	 *
 	 * @param query 鍒嗛〉瀵硅薄
@@ -77,6 +87,18 @@
 				this.update(Wrappers.<Strategy>update().lambda()
 					.set(Strategy::getIsDefault, CommonConstant.NOT_SEALED_ID)
 					.eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY));
+			}
+			if(strategy.getRequiredType() > 0){
+				throw new ServiceException("蹇呭~绉嶇被涓嶈兘灏忎簬绛変簬0!");
+			}
+			if(strategy.getRequiredType() > strategy.getCombinationIds().split(",").length){
+				throw new ServiceException("蹇呭~绉嶇被涓嶈兘澶т簬鎵�閫夋嫨鐨勫瘑鐮佺粍鍚堟柟寮忕殑涓暟!");
+			}
+			if(strategy.getMaxPwdLen() > strategy.getMinPwdLen()){
+				throw new ServiceException("瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庢渶灏忛暱搴�!");
+			}
+			if(strategy.getMinPwdLen() < strategy.getCombinationIds().split(",").length || strategy.getMaxPwdLen() < strategy.getCombinationIds().split(",").length){
+				throw new ServiceException("瀵嗙爜鏈�灏忛暱搴︿笉鑳藉皬浜庣瀵嗙瓥鐣ョ殑鍊�!");
 			}
 			if(Func.isEmpty(strategy.getCreateTime())){
 				strategy.setCreateTime(new Date());
@@ -125,13 +147,32 @@
 	}
 
 	/**
-	 * 鏌ヨ榛樿瀵嗙爜绛栫暐
+	 * 閫氳繃绉熸埛id浠ュ強鐢ㄦ埛鍚嶆煡璇㈠瘑鐮佺瓥鐣�
+	 * @param tenantId
+	 * @param name
 	 * @return
 	 */
 	@Override
-	public Long queryByIsDefault() {
-		return this.getOne(Wrappers.<Strategy>query().lambda()
-			.eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY)).getId();
+	public Strategy queryByNameAndTenantId(String tenantId, String name) {
+		Strategy strategy = this.strategyMapper.queryByNameAndTenantId(tenantId,name);
+		if(!Func.isEmpty(strategy)){
+			return strategy;
+		}
+		return queryByIsDefault();
+	}
+
+	/**
+	 * 鏍规嵁鐢ㄦ埛id鏌ヨ瀵嗙爜绛栫暐
+	 * @param userId
+	 * @return
+	 */
+	@Override
+	public Strategy queryByUserId(Long userId) {
+		Strategy strategy = this.strategyMapper.queryByUserId(userId);
+		if(!Func.isEmpty(strategy)){
+			return strategy;
+		}
+		return queryByIsDefault();
 	}
 
 }

--
Gitblit v1.9.3