ludc
2023-03-26 c0f21a9745daa3afef19110025bdee9d0ba00338
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java
@@ -44,6 +44,15 @@
   }
   /**
    * 查询默认密码策略
    * @return
    */
   @Override
   public Strategy queryByIsDefault() {
      return this.strategyMapper.queryByIsDefault();
   }
   /**
    * 分页查询
    *
    * @param query 分页对象
@@ -78,6 +87,18 @@
               .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());
         }
@@ -92,6 +113,10 @@
            this.update(Wrappers.<Strategy>update().lambda()
               .set(Strategy::getIsDefault,CommonConstant.NOT_SEALED_ID)
               .eq(Strategy::getIsDefault,CommonConstant.DATA_SCOPE_CATEGORY));
         }else {
            if(Func.isEmpty(queryByIsDefault())){
               throw new ServiceException("默认密码策略必须有且仅有一条!");
            }
         }
         if(Func.isEmpty(strategy.getUpdateTime())){
            strategy.setUpdateTime(new Date());
@@ -120,4 +145,33 @@
      return tenantTemp;
   }
   /**
    * 通过租户id以及用户名查询密码策略
    * @param tenantId
    * @param name
    * @return
    */
   @Override
   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();
   }
}