From d6888471cd16be353866246ec039d7f571e5b90b Mon Sep 17 00:00:00 2001 From: dqjdda <201507802@qq.com> Date: Tue, 27 Aug 2019 15:58:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=8A=A0=E5=BC=BA=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E9=A1=B9=EF=BC=9A=E6=98=AF=E5=90=A6=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=EF=BC=88=E6=9F=90=E4=BA=9B=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=B8=8D=E9=9C=80=E8=A6=81=E6=98=BE=E7=A4=BA=E5=9C=A8=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7=E8=8F=9C=E5=8D=95=E6=A0=8F=E4=B8=AD=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E7=BC=93=E5=AD=98=E8=8F=9C=E5=8D=95=EF=BC=88?= =?UTF-8?q?=E5=8F=AF=E8=A7=A3=E5=86=B3=E5=88=87=E6=8D=A2Tab=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E6=B8=B2=E6=9F=93=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E8=AF=A5=E5=8A=9F=E8=83=BD=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E5=A1=AB=E5=86=99=E7=BB=84=E4=BB=B6=E5=90=8D=E7=A7=B0=EF=BC=8C?= =?UTF-8?q?=E4=B8=94=E5=BF=85=E9=A1=BB=E4=B8=8E=E7=BB=84=E4=BB=B6=E4=B8=AD?= =?UTF-8?q?=E7=9A=84name=E4=B8=80=E8=87=B4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhengjie/modules/system/domain/Menu.java | 3 +++ .../system/repository/MenuRepository.java | 7 +++++++ .../modules/system/service/dto/MenuDTO.java | 2 ++ .../system/service/impl/MenuServiceImpl.java | 18 +++++++++++++++++- 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java index bd47c433..16846e57 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/domain/Menu.java @@ -40,6 +40,9 @@ public class Menu implements Serializable { private String component; + @Column(unique = true) + private String componentName; + private String icon; @Column(columnDefinition = "bit(1) default 0") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/repository/MenuRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/repository/MenuRepository.java index 220ca061..91c6d798 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/repository/MenuRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/repository/MenuRepository.java @@ -23,6 +23,13 @@ public interface MenuRepository extends JpaRepository, JpaSpecificat */ Menu findByName(String name); + /** + * findByName + * @param name + * @return + */ + Menu findByComponentName(String name); + /** * findByPid * @param pid diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuDTO.java index d5f1d014..3b9aaae6 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuDTO.java @@ -31,6 +31,8 @@ public class MenuDTO { private Boolean hidden; + private String componentName; + private String icon; private List children; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java index f8ac5026..f997d5a9 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java @@ -1,5 +1,7 @@ package me.zhengjie.modules.system.service.impl; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import me.zhengjie.modules.system.domain.Menu; import me.zhengjie.modules.system.domain.vo.MenuMetaVo; @@ -13,6 +15,7 @@ import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDTO; import me.zhengjie.modules.system.service.mapper.MenuMapper; import me.zhengjie.utils.QueryHelp; +import me.zhengjie.utils.StringUtils; import me.zhengjie.utils.ValidationUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -58,6 +61,11 @@ public class MenuServiceImpl implements MenuService { if(menuRepository.findByName(resources.getName()) != null){ throw new EntityExistException(Menu.class,"name",resources.getName()); } + if(StringUtils.isNotBlank(resources.getComponentName())){ + if(menuRepository.findByComponentName(resources.getComponentName()) != null){ + throw new EntityExistException(Menu.class,"componentName",resources.getComponentName()); + } + } if(resources.getIFrame()){ if (!(resources.getPath().toLowerCase().startsWith("http://")||resources.getPath().toLowerCase().startsWith("https://"))) { throw new BadRequestException("外链必须以http://或者https://开头"); @@ -85,6 +93,13 @@ public class MenuServiceImpl implements MenuService { if(menu1 != null && !menu1.getId().equals(menu.getId())){ throw new EntityExistException(Menu.class,"name",resources.getName()); } + + if(StringUtils.isNotBlank(resources.getComponentName())){ + menu1 = menuRepository.findByComponentName(resources.getComponentName()); + if(menu1 != null && !menu1.getId().equals(menu.getId())){ + throw new EntityExistException(Menu.class,"componentName",resources.getComponentName()); + } + } menu.setName(resources.getName()); menu.setComponent(resources.getComponent()); menu.setPath(resources.getPath()); @@ -94,6 +109,7 @@ public class MenuServiceImpl implements MenuService { menu.setSort(resources.getSort()); menu.setCache(resources.getCache()); menu.setHidden(resources.getHidden()); + menu.setComponentName(resources.getComponentName()); menuRepository.save(menu); } @@ -158,7 +174,7 @@ public class MenuServiceImpl implements MenuService { if (menuDTO!=null){ List menuDTOList = menuDTO.getChildren(); MenuVo menuVo = new MenuVo(); - menuVo.setName(menuDTO.getName()); + menuVo.setName(ObjectUtil.isNotEmpty(menuDTO.getComponentName()) ? menuDTO.getComponentName() : RandomUtil.randomString(5)); menuVo.setPath(menuDTO.getPath()); menuVo.setHidden(menuDTO.getHidden());