ludc
2023-11-07 e61a898fe563214cb13e97c08804534a61aad46b
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java
@@ -5,7 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.common.constant.CommonConstant;
import com.vci.ubcs.common.cache.NacosConfigCache;
import com.vci.ubcs.system.cache.NacosConfigCache;
import com.vci.ubcs.system.entity.Strategy;
import com.vci.ubcs.system.mapper.StrategyMapper;
import com.vci.ubcs.system.service.IStrategyService;
@@ -43,12 +43,6 @@
   private IUserClient userClient;
   /**
    * nacos上拉取的配置
    */
   @Resource
   private NacosConfigCache nacosConfigCache;
   /**
    * 通过ID查询单条数据
    *
    * @param id 主键
@@ -67,7 +61,7 @@
   public Strategy queryByIsDefault() {
      return this.strategyMapper.queryByIsDefault(AuthUtil.getTenantId()
         .equals(
            nacosConfigCache
            NacosConfigCache
               .getAdminUserInfo()
               .getTenantId()
         ) ? null:AuthUtil.getTenantId()
@@ -88,7 +82,7 @@
         strategyPage,
         AuthUtil.getTenantId()
            .equals(
               nacosConfigCache
               NacosConfigCache
               .getAdminUserInfo()
               .getTenantId()
            )
@@ -108,7 +102,7 @@
   public boolean submit(Strategy strategy) {
      //老的默认密码策略
      Long oldIsDefaultStrategy = null;
      //判断是否携带id
      //判断是否携带id,不携带id为新增操作
      if(Func.isEmpty(strategy.getId())){
         //执行新增
         Strategy dbstrategy = this.getOne(Wrappers.<Strategy>query().lambda()
@@ -138,13 +132,18 @@
         //检验密码策略是否符合要求
         checkPwdStrategy(strategy);
         //如果当前修改设置为默认密码策略,需要将已存在默认密码策略修改为非默认
         if(strategy.getIsDefault().equals("1") || strategy.getIsDefault() == 1){
         if((strategy.getIsDefault().toString()).equals("1")){
            //查询老的默认密码策略,便于下面修改
            oldIsDefaultStrategy = this.queryByIsDefault().getId();
            this.update(Wrappers.<Strategy>update().lambda()
               .set(Strategy::getIsDefault,CommonConstant.NOT_DEFAULT)
               .eq(Strategy::getIsDefault,CommonConstant.IS_DEFAULT));
            Strategy strategyDefault = this.queryByIsDefault();
            // 在数据不出现问题的情况下不会出现strategyDefault为空的情况
            if(Func.isNotEmpty(strategyDefault)){
               oldIsDefaultStrategy = strategyDefault.getId();
               this.update(Wrappers.<Strategy>update().lambda()
                  .set(Strategy::getIsDefault,CommonConstant.NOT_DEFAULT)
                  .eq(Strategy::getIsDefault,CommonConstant.IS_DEFAULT));
            }
         }else {
            // 避免用户将唯一的默认密码策略改为非默认
            if(Func.isEmpty(queryByIsDefault())){
               throw new ServiceException("默认密码策略必须有且仅有一条!");
            }