From 961073ec96bfbb920f9afd952052c20b3791eb4d Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 15 二月 2022 10:45:04 +0800 Subject: [PATCH] update 优化 TreeBuildUtils 工具 使用反射自动获取顶级父id --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java | 247 +++++++++++++++++++++++++++--------------------- 1 files changed, 138 insertions(+), 109 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 39d9505..03de7c5 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,109 +1,138 @@ -package com.ruoyi.system.service.impl; - -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ruoyi.common.core.domain.entity.SysDictData; -import com.ruoyi.common.utils.DictUtils; -import com.ruoyi.system.mapper.SysDictDataMapper; -import com.ruoyi.system.service.ISysDictDataService; - -/** - * 瀛楀吀 涓氬姟灞傚鐞� - * - * @author ruoyi - */ -@Service -public class SysDictDataServiceImpl implements ISysDictDataService -{ - @Autowired - private SysDictDataMapper dictDataMapper; - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 - */ - @Override - public List<SysDictData> selectDictDataList(SysDictData dictData) - { - return dictDataMapper.selectDictDataList(dictData); - } - - /** - * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭� - * - * @param dictType 瀛楀吀绫诲瀷 - * @param dictValue 瀛楀吀閿�� - * @return 瀛楀吀鏍囩 - */ - @Override - public String selectDictLabel(String dictType, String dictValue) - { - return dictDataMapper.selectDictLabel(dictType, dictValue); - } - - /** - * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 - * - * @param dictCode 瀛楀吀鏁版嵁ID - * @return 瀛楀吀鏁版嵁 - */ - @Override - public SysDictData selectDictDataById(Long dictCode) - { - return dictDataMapper.selectDictDataById(dictCode); - } - - /** - * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 - * - * @param dictCodes 闇�瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID - * @return 缁撴灉 - */ - @Override - public int deleteDictDataByIds(Long[] dictCodes) - { - int row = dictDataMapper.deleteDictDataByIds(dictCodes); - if (row > 0) - { - DictUtils.clearDictCache(); - } - return row; - } - - /** - * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertDictData(SysDictData dictData) - { - int row = dictDataMapper.insertDictData(dictData); - if (row > 0) - { - DictUtils.clearDictCache(); - } - return row; - } - - /** - * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * - * @param dictData 瀛楀吀鏁版嵁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateDictData(SysDictData dictData) - { - int row = dictDataMapper.updateDictData(dictData); - if (row > 0) - { - DictUtils.clearDictCache(); - } - return row; - } -} +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.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.List; + +/** + * 瀛楀吀 涓氬姟灞傚鐞� + * + * @author Lion Li + */ +@RequiredArgsConstructor +@Service +public class SysDictDataServiceImpl implements ISysDictDataService { + + private final SysDictDataMapper baseMapper; + + @Override + public TableDataInfo<SysDictData> selectPageDictDataList(SysDictData dictData, PageQuery pageQuery) { + LambdaQueryWrapper<SysDictData> lqw = 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); + Page<SysDictData> page = baseMapper.selectPage(pageQuery.build(), lqw); + return TableDataInfo.build(page); + } + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 + * + * @param dictData 瀛楀吀鏁版嵁淇℃伅 + * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 + */ + @Override + public List<SysDictData> selectDictDataList(SysDictData dictData) { + 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)); + } + + /** + * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭� + * + * @param dictType 瀛楀吀绫诲瀷 + * @param dictValue 瀛楀吀閿�� + * @return 瀛楀吀鏍囩 + */ + @Override + public String selectDictLabel(String dictType, String dictValue) { + return baseMapper.selectOne(new LambdaQueryWrapper<SysDictData>() + .select(SysDictData::getDictLabel) + .eq(SysDictData::getDictType, dictType) + .eq(SysDictData::getDictValue, dictValue)) + .getDictLabel(); + } + + /** + * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 + * + * @param dictCode 瀛楀吀鏁版嵁ID + * @return 瀛楀吀鏁版嵁 + */ + @Override + public SysDictData selectDictDataById(Long dictCode) { + return baseMapper.selectById(dictCode); + } + + /** + * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 + * + * @param dictCodes 闇�瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID + */ + @Override + 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); + } + } + + /** + * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 + * + * @param data 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + @Override + public int insertDictData(SysDictData data) { + int row = baseMapper.insert(data); + if (row > 0) { + List<SysDictData> dictDatas = baseMapper.selectDictDataByType(data.getDictType()); + RedisUtils.setCacheObject(getCacheKey(data.getDictType()), dictDatas); + } + return row; + } + + /** + * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 + * + * @param data 瀛楀吀鏁版嵁淇℃伅 + * @return 缁撴灉 + */ + @Override + public int updateDictData(SysDictData data) { + int row = baseMapper.updateById(data); + if (row > 0) { + 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