diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java index 57527511e..6235f8d86 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java @@ -2,23 +2,24 @@ package org.dromara.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.ObjectUtil; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.mybatis.core.page.PageQuery; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.log.enums.BusinessType; import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.bo.SysDictDataBo; import org.dromara.system.domain.vo.SysDictDataVo; import org.dromara.system.service.ISysDictDataService; import org.dromara.system.service.ISysDictTypeService; -import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import jakarta.servlet.http.HttpServletResponse; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -117,7 +118,7 @@ public class SysDictDataController extends BaseController { @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictCodes}") public R remove(@PathVariable Long[] dictCodes) { - dictDataService.deleteDictDataByIds(dictCodes); + dictDataService.deleteDictDataByIds(Arrays.asList(dictCodes)); return R.ok(); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java index 67c1f5133..4b91e1ba5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java @@ -1,6 +1,8 @@ package org.dromara.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; @@ -11,11 +13,10 @@ import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.bo.SysDictTypeBo; import org.dromara.system.domain.vo.SysDictTypeVo; import org.dromara.system.service.ISysDictTypeService; -import jakarta.servlet.http.HttpServletResponse; -import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; /** @@ -99,7 +100,7 @@ public class SysDictTypeController extends BaseController { @Log(title = "字典类型", businessType = BusinessType.DELETE) @DeleteMapping("/{dictIds}") public R remove(@PathVariable Long[] dictIds) { - dictTypeService.deleteDictTypeByIds(dictIds); + dictTypeService.deleteDictTypeByIds(Arrays.asList(dictIds)); return R.ok(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java index 0e697db60..2ff49bc77 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java @@ -47,7 +47,7 @@ public interface ISysDictDataService { * * @param dictCodes 需要删除的字典数据ID */ - void deleteDictDataByIds(Long[] dictCodes); + void deleteDictDataByIds(List dictCodes); /** * 新增保存字典数据信息 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java index 3b32d6cbb..c2704db09 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java @@ -62,7 +62,7 @@ public interface ISysDictTypeService { * * @param dictIds 需要删除的字典ID */ - void deleteDictTypeByIds(Long[] dictIds); + void deleteDictTypeByIds(List dictIds); /** * 重置字典缓存数据 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java index da4394756..baf1bba99 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java @@ -4,20 +4,19 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.constant.CacheNames; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.ObjectUtils; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.system.domain.SysDictData; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.redis.utils.CacheUtils; +import org.dromara.system.domain.SysDictData; import org.dromara.system.domain.bo.SysDictDataBo; import org.dromara.system.domain.vo.SysDictDataVo; import org.dromara.system.mapper.SysDictDataMapper; import org.dromara.system.service.ISysDictDataService; -import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CachePut; import org.springframework.stereotype.Service; @@ -95,12 +94,10 @@ public class SysDictDataServiceImpl implements ISysDictDataService { * @param dictCodes 需要删除的字典数据ID */ @Override - public void deleteDictDataByIds(Long[] dictCodes) { - for (Long dictCode : dictCodes) { - SysDictData data = baseMapper.selectById(dictCode); - baseMapper.deleteById(dictCode); - CacheUtils.evict(CacheNames.SYS_DICT, data.getDictType()); - } + public void deleteDictDataByIds(List dictCodes) { + List list = baseMapper.selectByIds(dictCodes); + baseMapper.deleteByIds(dictCodes); + list.forEach(x -> CacheUtils.evict(CacheNames.SYS_DICT, x.getDictType())); } /** @@ -145,13 +142,11 @@ public class SysDictDataServiceImpl implements ISysDictDataService { */ @Override public boolean checkDictDataUnique(SysDictDataBo dict) { - Long dictCode = ObjectUtils.notNull(dict.getDictCode(), -1L); - SysDictData entity = baseMapper.selectOne(new LambdaQueryWrapper() - .eq(SysDictData::getDictType, dict.getDictType()).eq(SysDictData::getDictValue, dict.getDictValue())); - if (ObjectUtil.isNotNull(entity) && !dictCode.equals(entity.getDictCode())) { - return false; - } - return true; + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysDictData::getDictType, dict.getDictType()) + .eq(SysDictData::getDictValue, dict.getDictValue()) + .ne(ObjectUtil.isNotNull(dict.getDictCode()), SysDictData::getDictCode, dict.getDictCode())); + return !exist; } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java index c417b42ca..3491e887e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java @@ -98,10 +98,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService @Override public List selectDictDataByType(String dictType) { List dictDatas = dictDataMapper.selectDictDataByType(dictType); - if (CollUtil.isNotEmpty(dictDatas)) { - return dictDatas; - } - return null; + return CollUtil.isNotEmpty(dictDatas) ? dictDatas : null; } /** @@ -133,17 +130,20 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService * @param dictIds 需要删除的字典ID */ @Override - public void deleteDictTypeByIds(Long[] dictIds) { - for (Long dictId : dictIds) { - SysDictType dictType = baseMapper.selectById(dictId); - if (dictDataMapper.exists(new LambdaQueryWrapper() - .eq(SysDictData::getDictType, dictType.getDictType()))) { - throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName())); + public void deleteDictTypeByIds(List dictIds) { + List list = baseMapper.selectByIds(dictIds); + list.forEach(x -> { + boolean assigned = dictDataMapper.exists(new LambdaQueryWrapper() + .eq(SysDictData::getDictType, x.getDictType())); + if (assigned) { + throw new ServiceException(String.format("%1$s已分配,不能删除", x.getDictName())); } - CacheUtils.evict(CacheNames.SYS_DICT, dictType.getDictType()); - CacheUtils.evict(CacheNames.SYS_DICT_TYPE, dictType.getDictType()); - } - baseMapper.deleteByIds(Arrays.asList(dictIds)); + }); + baseMapper.deleteByIds(dictIds); + list.forEach(x -> { + CacheUtils.evict(CacheNames.SYS_DICT, x.getDictType()); + CacheUtils.evict(CacheNames.SYS_DICT_TYPE, x.getDictType()); + }); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java index 692b3ce00..10c3a9aeb 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.Constants; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StreamUtils; @@ -142,7 +143,7 @@ public class SysMenuServiceImpl implements ISysMenuService { } else { menus = baseMapper.selectMenuTreeByUserId(userId); } - return getChildPerms(menus, 0); + return getChildPerms(menus, Constants.TOP_PARENT_ID); } /** @@ -221,7 +222,7 @@ public class SysMenuServiceImpl implements ISysMenuService { children.setQuery(menu.getQueryParam()); childrenList.add(children); router.setChildren(childrenList); - } else if (menu.getParentId().intValue() == 0 && menu.isInnerLink()) { + } else if (menu.getParentId().equals(Constants.TOP_PARENT_ID) && menu.isInnerLink()) { router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); router.setPath("/"); List childrenList = new ArrayList<>(); @@ -375,11 +376,11 @@ public class SysMenuServiceImpl implements ISysMenuService { * @param parentId 传入的父节点ID * @return String */ - private List getChildPerms(List list, int parentId) { + private List getChildPerms(List list, Long parentId) { List returnList = new ArrayList<>(); for (SysMenu t : list) { // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 - if (t.getParentId() == parentId) { + if (t.getParentId().equals(parentId)) { recursionFn(list, t); returnList.add(t); }