From d0b21665257834616240a85f90707651f9e03680 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 28 五月 2021 10:07:15 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue into dev --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java | 129 +++++++++++++++++++++++++++++++----------- 1 files changed, 94 insertions(+), 35 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 19d9652..04e6616 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -2,12 +2,17 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysDictType; +import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.common.utils.PageUtils; import com.ruoyi.system.mapper.SysDictDataMapper; import com.ruoyi.system.mapper.SysDictTypeMapper; import com.ruoyi.system.service.ISysDictTypeService; @@ -16,7 +21,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; +import java.util.Arrays; import java.util.List; +import java.util.Map; /** * 瀛楀吀 涓氬姟灞傚鐞� @@ -25,8 +32,9 @@ */ @Service public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictType> implements ISysDictTypeService { - @Autowired - private SysDictTypeMapper dictTypeMapper; + + @Autowired + private SysDictTypeMapper dictTypeMapper; @Autowired private SysDictDataMapper dictDataMapper; @@ -36,11 +44,23 @@ */ @PostConstruct public void init() { - List<SysDictType> dictTypeList = dictTypeMapper.selectDictTypeAll(); - for (SysDictType dictType : dictTypeList) { - List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dictType.getDictType()); - DictUtils.setDictCache(dictType.getDictType(), dictDatas); - } + loadingDictCache(); + } + + @Override + public TableDataInfo<SysDictType> selectPageDictTypeList(SysDictType dictType) { + Map<String, Object> params = dictType.getParams(); + LambdaQueryWrapper<SysDictType> lqw = new LambdaQueryWrapper<SysDictType>() + .like(StrUtil.isNotBlank(dictType.getDictName()), SysDictType::getDictName, dictType.getDictName()) + .eq(StrUtil.isNotBlank(dictType.getStatus()), SysDictType::getStatus, dictType.getStatus()) + .like(StrUtil.isNotBlank(dictType.getDictType()), SysDictType::getDictType, dictType.getDictType()) + .apply(Validator.isNotEmpty(params.get("beginTime")), + "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')", + params.get("endTime")); + return PageUtils.buildDataInfo(page(PageUtils.buildPage(),lqw)); } /** @@ -51,7 +71,17 @@ */ @Override public List<SysDictType> selectDictTypeList(SysDictType dictType) { - return dictTypeMapper.selectDictTypeList(dictType); + Map<String, Object> params = dictType.getParams(); + return list(new LambdaQueryWrapper<SysDictType>() + .like(StrUtil.isNotBlank(dictType.getDictName()),SysDictType::getDictName, dictType.getDictName()) + .eq(StrUtil.isNotBlank(dictType.getStatus()),SysDictType::getStatus, dictType.getStatus()) + .like(StrUtil.isNotBlank(dictType.getDictType()),SysDictType::getDictType, dictType.getDictType()) + .apply(Validator.isNotEmpty(params.get("beginTime")), + "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')", + params.get("endTime"))); } /** @@ -61,7 +91,7 @@ */ @Override public List<SysDictType> selectDictTypeAll() { - return dictTypeMapper.selectDictTypeAll(); + return list(); } /** @@ -76,7 +106,10 @@ if (CollUtil.isNotEmpty(dictDatas)) { return dictDatas; } - dictDatas = dictDataMapper.selectDictDataByType(dictType); + dictDatas = dictDataMapper.selectList(new LambdaQueryWrapper<SysDictData>() + .eq(SysDictData::getStatus, 0) + .eq(SysDictData::getDictType, dictType) + .orderByAsc(SysDictData::getDictSort)); if (CollUtil.isNotEmpty(dictDatas)) { DictUtils.setDictCache(dictType, dictDatas); return dictDatas; @@ -92,7 +125,7 @@ */ @Override public SysDictType selectDictTypeById(Long dictId) { - return dictTypeMapper.selectDictTypeById(dictId); + return getById(dictId); } /** @@ -103,7 +136,7 @@ */ @Override public SysDictType selectDictTypeByType(String dictType) { - return dictTypeMapper.selectDictTypeByType(dictType); + return getOne(new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getDictType, dictType)); } /** @@ -113,57 +146,81 @@ * @return 缁撴灉 */ @Override - public int deleteDictTypeByIds(Long[] dictIds) { + public void deleteDictTypeByIds(Long[] dictIds) { for (Long dictId : dictIds) { SysDictType dictType = selectDictTypeById(dictId); - if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) { + if (dictDataMapper.selectCount(new LambdaQueryWrapper<SysDictData>() + .eq(SysDictData::getDictType, dictType.getDictType())) > 0) { throw new CustomException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", dictType.getDictName())); } + dictTypeMapper.deleteDictTypeById(dictId); + DictUtils.removeDictCache(dictType.getDictType()); } - int count = dictTypeMapper.deleteDictTypeByIds(dictIds); - if (count > 0) { - DictUtils.clearDictCache(); - } - return count; } /** - * 娓呯┖缂撳瓨鏁版嵁 + * 鍔犺浇瀛楀吀缂撳瓨鏁版嵁 */ - @Override - public void clearCache() { + public void loadingDictCache() + { + List<SysDictType> dictTypeList = dictTypeMapper.selectDictTypeAll(); + for (SysDictType dictType : dictTypeList) + { + List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dictType.getDictType()); + DictUtils.setDictCache(dictType.getDictType(), dictDatas); + } + } + + /** + * 娓呯┖瀛楀吀缂撳瓨鏁版嵁 + */ + public void clearDictCache() + { DictUtils.clearDictCache(); + } + + /** + * 閲嶇疆瀛楀吀缂撳瓨鏁版嵁 + */ + public void resetDictCache() + { + clearDictCache(); + loadingDictCache(); } /** * 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅 * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @param dict 瀛楀吀绫诲瀷淇℃伅 * @return 缁撴灉 */ @Override - public int insertDictType(SysDictType dictType) { - int row = dictTypeMapper.insertDictType(dictType); + public int insertDictType(SysDictType dict) { + int row = baseMapper.insert(dict); if (row > 0) { - DictUtils.clearDictCache(); + DictUtils.setDictCache(dict.getDictType(), null); } return row; } /** * 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅 - * - * @param dictType 瀛楀吀绫诲瀷淇℃伅 + * @param dict 瀛楀吀绫诲瀷淇℃伅 * @return 缁撴灉 */ @Override @Transactional - public int updateDictType(SysDictType dictType) { - SysDictType oldDict = dictTypeMapper.selectDictTypeById(dictType.getDictId()); - dictDataMapper.updateDictDataType(oldDict.getDictType(), dictType.getDictType()); - int row = dictTypeMapper.updateDictType(dictType); - if (row > 0) { - DictUtils.clearDictCache(); + public int updateDictType(SysDictType dict) + { + SysDictType oldDict = getById(dict.getDictId()); + dictDataMapper.update(null, new LambdaUpdateWrapper<SysDictData>() + .set(SysDictData::getDictType, dict.getDictType()) + .eq(SysDictData::getDictType, oldDict.getDictType())); + int row = baseMapper.updateById(dict); + if (row > 0) + { + List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType()); + DictUtils.setDictCache(dict.getDictType(), dictDatas); } return row; } @@ -177,7 +234,9 @@ @Override public String checkDictTypeUnique(SysDictType dict) { Long dictId = Validator.isNull(dict.getDictId()) ? -1L : dict.getDictId(); - SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); + SysDictType dictType = getOne(new LambdaQueryWrapper<SysDictType>() + .eq(SysDictType::getDictType, dict.getDictType()) + .last("limit 1")); if (Validator.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) { return UserConstants.NOT_UNIQUE; } -- Gitblit v1.9.3