From cc2624d08e422c36a4f93cc15d0ca0f0b7b4951a Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 17 一月 2022 15:46:28 +0800 Subject: [PATCH] update 优化加载字典缓存数据 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java | 86 ++++++++++++++++++++++++++----------------- 1 files changed, 52 insertions(+), 34 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java index faae4aa..048bd10 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java @@ -1,35 +1,40 @@ package com.ruoyi.system.service.impl; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.utils.DictUtils; -import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.redis.RedisUtils; import com.ruoyi.system.mapper.SysDictDataMapper; import com.ruoyi.system.service.ISysDictDataService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.Arrays; import java.util.List; /** * 瀛楀吀 涓氬姟灞傚鐞� * - * @author ruoyi + * @author Lion Li */ +@RequiredArgsConstructor @Service -public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements ISysDictDataService { +public class SysDictDataServiceImpl implements ISysDictDataService { + + private final SysDictDataMapper baseMapper; @Override - public TableDataInfo<SysDictData> selectPageDictDataList(SysDictData dictData) { + public TableDataInfo<SysDictData> selectPageDictDataList(SysDictData dictData, PageQuery pageQuery) { LambdaQueryWrapper<SysDictData> lqw = new LambdaQueryWrapper<SysDictData>() - .eq(StrUtil.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType()) - .like(StrUtil.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel()) - .eq(StrUtil.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus()) - .orderByAsc(SysDictData::getDictSort); - return PageUtils.buildDataInfo(page(PageUtils.buildPage(),lqw)); + .eq(StringUtils.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType()) + .like(StringUtils.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel()) + .eq(StringUtils.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus()) + .orderByAsc(SysDictData::getDictSort); + Page<SysDictData> page = baseMapper.selectPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); } /** @@ -40,11 +45,11 @@ */ @Override public List<SysDictData> selectDictDataList(SysDictData dictData) { - return list(new LambdaQueryWrapper<SysDictData>() - .eq(StrUtil.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType()) - .like(StrUtil.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel()) - .eq(StrUtil.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus()) - .orderByAsc(SysDictData::getDictSort)); + return baseMapper.selectList(new LambdaQueryWrapper<SysDictData>() + .eq(StringUtils.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType()) + .like(StringUtils.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel()) + .eq(StringUtils.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus()) + .orderByAsc(SysDictData::getDictSort)); } /** @@ -56,11 +61,11 @@ */ @Override public String selectDictLabel(String dictType, String dictValue) { - return getOne(new LambdaQueryWrapper<SysDictData>() + return baseMapper.selectOne(new LambdaQueryWrapper<SysDictData>() .select(SysDictData::getDictLabel) .eq(SysDictData::getDictType, dictType) .eq(SysDictData::getDictValue, dictValue)) - .getDictLabel(); + .getDictLabel(); } /** @@ -71,7 +76,7 @@ */ @Override public SysDictData selectDictDataById(Long dictCode) { - return getById(dictCode); + return baseMapper.selectById(dictCode); } /** @@ -81,25 +86,27 @@ * @return 缁撴灉 */ @Override - public int deleteDictDataByIds(Long[] dictCodes) { - int row = baseMapper.deleteBatchIds(Arrays.asList(dictCodes)); - if (row > 0) { - DictUtils.clearDictCache(); + public void deleteDictDataByIds(Long[] dictCodes) { + for (Long dictCode : dictCodes) { + SysDictData data = selectDictDataById(dictCode); + baseMapper.deleteById(dictCode); + List<SysDictData> dictDatas = baseMapper.selectDictDataByType(data.getDictType()); + RedisUtils.setCacheObject(getCacheKey(data.getDictType()), dictDatas); } - return row; } /** * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @param data 瀛楀吀鏁版嵁淇℃伅 * @return 缁撴灉 */ @Override - public int insertDictData(SysDictData dictData) { - int row = baseMapper.insert(dictData); + public int insertDictData(SysDictData data) { + int row = baseMapper.insert(data); if (row > 0) { - DictUtils.clearDictCache(); + List<SysDictData> dictDatas = baseMapper.selectDictDataByType(data.getDictType()); + RedisUtils.setCacheObject(getCacheKey(data.getDictType()), dictDatas); } return row; } @@ -107,15 +114,26 @@ /** * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @param data 瀛楀吀鏁版嵁淇℃伅 * @return 缁撴灉 */ @Override - public int updateDictData(SysDictData dictData) { - int row = baseMapper.updateById(dictData); + public int updateDictData(SysDictData data) { + int row = baseMapper.updateById(data); if (row > 0) { - DictUtils.clearDictCache(); + List<SysDictData> dictDatas = baseMapper.selectDictDataByType(data.getDictType()); + RedisUtils.setCacheObject(getCacheKey(data.getDictType()), dictDatas); } return row; } + + /** + * 璁剧疆cache key + * + * @param configKey 鍙傛暟閿� + * @return 缂撳瓨閿甼ey + */ + String getCacheKey(String configKey) { + return Constants.SYS_DICT_KEY + configKey; + } } -- Gitblit v1.9.3