疯狂的狮子li
2021-05-29 e523764b0f300e5055d6f4bc680aa40d2590504f
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
@@ -20,7 +20,6 @@
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -34,6 +33,9 @@
public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig> implements ISysConfigService {
    @Autowired
   private SysConfigMapper configMapper;
   @Autowired
    private RedisCache redisCache;
    /**
@@ -41,10 +43,7 @@
     */
    @PostConstruct
    public void init() {
        List<SysConfig> configsList = baseMapper.selectList(new LambdaQueryWrapper<>());
        for (SysConfig config : configsList) {
            redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
        }
      loadingConfigCache();
    }
    @Override
@@ -55,10 +54,10 @@
                .eq(StrUtil.isNotBlank(config.getConfigType()), SysConfig::getConfigType, config.getConfigType())
                .like(StrUtil.isNotBlank(config.getConfigKey()), SysConfig::getConfigKey, config.getConfigKey())
                .apply(Validator.isNotEmpty(params.get("beginTime")),
                        "date_format(create_time,'%y%m%d') >= date_format(#{0},'%y%m%d')",
            "date_format(create_time,'%y%m%d') >= date_format({0},'%y%m%d')",
                        params.get("beginTime"))
                .apply(Validator.isNotEmpty(params.get("endTime")),
                        "date_format(create_time,'%y%m%d') <= date_format(#{0},'%y%m%d')",
            "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')",
                        params.get("endTime"));
        return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw));
    }
@@ -110,10 +109,10 @@
                .eq(StrUtil.isNotBlank(config.getConfigType()), SysConfig::getConfigType, config.getConfigType())
                .like(StrUtil.isNotBlank(config.getConfigKey()), SysConfig::getConfigKey, config.getConfigKey())
                .apply(Validator.isNotEmpty(params.get("beginTime")),
                        "date_format(create_time,'%y%m%d') >= date_format(#{0},'%y%m%d')",
            "date_format(create_time,'%y%m%d') >= date_format({0},'%y%m%d')",
                        params.get("beginTime"))
                .apply(Validator.isNotEmpty(params.get("endTime")),
                        "date_format(create_time,'%y%m%d') >= date_format(#{0},'%y%m%d')",
            "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')",
                        params.get("endTime"));
        return baseMapper.selectList(lqw);
    }
@@ -155,31 +154,47 @@
     * @return 结果
     */
    @Override
    public int deleteConfigByIds(Long[] configIds) {
   public void deleteConfigByIds(Long[] configIds) {
        for (Long configId : configIds) {
            SysConfig config = selectConfigById(configId);
            if (StrUtil.equals(UserConstants.YES, config.getConfigType())) {
                throw new CustomException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey()));
            }
         configMapper.deleteById(configId);
         redisCache.deleteObject(getCacheKey(config.getConfigKey()));
        }
        int count = baseMapper.deleteBatchIds(Arrays.asList(configIds));
        if (count > 0) {
            Collection<String> keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*");
            redisCache.deleteObject(keys);
        }
        return count;
    }
    /**
     * 清空缓存数据
    * 加载参数缓存数据
     */
    @Override
    public void clearCache() {
   public void loadingConfigCache() {
      List<SysConfig> configsList = selectConfigList(new SysConfig());
      for (SysConfig config : configsList) {
         redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
      }
   }
   /**
    * 清空参数缓存数据
    */
   @Override
   public void clearConfigCache() {
        Collection<String> keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*");
        redisCache.deleteObject(keys);
    }
    /**
    * 重置参数缓存数据
    */
   @Override
   public void resetConfigCache() {
      clearConfigCache();
      loadingConfigCache();
   }
   /**
     * 校验参数键名是否唯一
     *
     * @param config 参数配置信息