From 52d0d62c35d01ee73d9dba7b1be99a29adc35ef2 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 17 八月 2021 10:45:01 +0800 Subject: [PATCH] update 同步 ruoyi 适配改动 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java | 95 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 69 insertions(+), 26 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java index 95f0869..5a6e8de 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java @@ -2,7 +2,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -10,23 +9,25 @@ import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.oss.constant.CloudConstant; -import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.domain.SysOssConfig; import com.ruoyi.system.domain.bo.SysOssConfigBo; import com.ruoyi.system.domain.vo.SysOssConfigVo; import com.ruoyi.system.mapper.SysOssConfigMapper; -import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysOssConfigService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.PostConstruct; import java.util.Collection; +import java.util.List; /** * 浜戝瓨鍌ㄩ厤缃甋ervice涓氬姟灞傚鐞� @@ -39,7 +40,22 @@ @Service public class SysOssConfigServiceImpl extends ServicePlusImpl<SysOssConfigMapper, SysOssConfig, SysOssConfigVo> implements ISysOssConfigService { - private final ISysConfigService iSysConfigService; + private final RedisCache redisCache; + + /** + * 椤圭洰鍚姩鏃讹紝鍒濆鍖栧弬鏁板埌缂撳瓨锛屽姞杞介厤缃被 + */ + @PostConstruct + public void init() { + List<SysOssConfig> list = list(); + for (SysOssConfig config : list) { + String configKey = config.getConfigKey(); + if ("0".equals(config.getStatus())) { + redisCache.setCacheObject(CloudConstant.CACHE_CONFIG_KEY, configKey); + } + setConfigCache(true, config); + } + } @Override public SysOssConfigVo queryById(Integer ossConfigId){ @@ -63,16 +79,16 @@ @Override public Boolean insertByBo(SysOssConfigBo bo) { - SysOssConfig add = BeanUtil.toBean(bo, SysOssConfig.class); - validEntityBeforeSave(add); - return save(add); + SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class); + validEntityBeforeSave(config); + return setConfigCache(save(config), config); } @Override public Boolean updateByBo(SysOssConfigBo bo) { - SysOssConfig update = BeanUtil.toBean(bo, SysOssConfig.class); - validEntityBeforeSave(update); - return updateById(update); + SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class); + validEntityBeforeSave(config); + return setConfigCache(updateById(config), config); } /** @@ -81,18 +97,25 @@ private void validEntityBeforeSave(SysOssConfig entity){ if (StringUtils.isNotEmpty(entity.getConfigKey()) && UserConstants.NOT_UNIQUE.equals(checkConfigKeyUnique(entity))) { - throw new CustomException("鎿嶄綔閰嶇疆'" + entity.getConfigKey() + "'澶辫触, 閰嶇疆key宸插瓨鍦�!"); + throw new ServiceException("鎿嶄綔閰嶇疆'" + entity.getConfigKey() + "'澶辫触, 閰嶇疆key宸插瓨鍦�!"); } } @Override - public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) { + public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { if(isValid) { - if (CollUtil.containsAny(ids, CollUtil.newArrayList(1, 2, 3, 4))) { - throw new CustomException("绯荤粺鍐呯疆, 涓嶅彲鍒犻櫎!"); + if (CollUtil.containsAny(ids, CloudConstant.SYSTEM_DATA_IDS)) { + throw new ServiceException("绯荤粺鍐呯疆, 涓嶅彲鍒犻櫎!"); } } - return removeByIds(ids); + boolean flag = removeByIds(ids); + if (flag) { + for (Long configId : ids) { + SysOssConfig config = getById(configId); + redisCache.deleteObject(getCacheKey(config.getConfigKey())); + } + } + return flag; } /** @@ -115,18 +138,38 @@ @Override @Transactional(rollbackFor = Exception.class) public int updateOssConfigStatus(SysOssConfigBo bo) { - SysConfig sysConfig = iSysConfigService.getOne(new LambdaQueryWrapper<SysConfig>() - .eq(SysConfig::getConfigKey, CloudConstant.CLOUD_STORAGE_CONFIG_KEY)); - if(ObjectUtil.isNotNull(sysConfig)){ - sysConfig.setConfigValue(bo.getConfigKey()); - iSysConfigService.updateConfig(sysConfig); - } else { - throw new CustomException("缂哄皯'浜戝瓨鍌ㄩ厤缃甂EY'鍙傛暟!"); - } SysOssConfig sysOssConfig = BeanUtil.toBean(bo, SysOssConfig.class); - baseMapper.update(null, new LambdaUpdateWrapper<SysOssConfig>() + int row = baseMapper.update(null, new LambdaUpdateWrapper<SysOssConfig>() .set(SysOssConfig::getStatus, "1")); - return baseMapper.updateById(sysOssConfig); + row += baseMapper.updateById(sysOssConfig); + if (row > 0) { + redisCache.setCacheObject(CloudConstant.CACHE_CONFIG_KEY, sysOssConfig.getConfigKey()); + } + return row; } + /** + * 璁剧疆cache key + * + * @param configKey 鍙傛暟閿� + * @return 缂撳瓨閿甼ey + */ + private String getCacheKey(String configKey) { + return CloudConstant.SYS_OSS_KEY + configKey; + } + + /** + * 濡傛灉鎿嶄綔鎴愬姛 鍒欐洿鏂扮紦瀛� + * @param flag 鎿嶄綔鐘舵�� + * @param config 閰嶇疆 + * @return 杩斿洖鎿嶄綔鐘舵�� + */ + private boolean setConfigCache(boolean flag, SysOssConfig config) { + if (flag) { + redisCache.setCacheObject( + getCacheKey(config.getConfigKey()), + JsonUtils.toJsonString(config)); + } + return flag; + } } -- Gitblit v1.9.3