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