From 08597902721c4032b686c25a069ce59668677347 Mon Sep 17 00:00:00 2001 From: dqjdda <201507802@qq.com> Date: Thu, 5 Sep 2019 16:05:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8F=9C=E5=8D=95=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=95=B0=E6=8D=AE=E9=87=8D=E5=A4=8D=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98#112?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/rest/JobController.java | 7 ++++++- .../system/service/dto/MenuSmallDTO.java | 18 ++++++++++++++++++ .../system/service/impl/MenuServiceImpl.java | 16 +++++++++------- .../system/service/mapper/MenuSmallMapper.java | 17 +++++++++++++++++ .../src/main/resources/generator.properties | 2 +- 5 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuSmallDTO.java create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/MenuSmallMapper.java diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java index 76d94886..5694ea0c 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/JobController.java @@ -6,6 +6,7 @@ import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.domain.Job; import me.zhengjie.modules.system.service.JobService; import me.zhengjie.modules.system.service.dto.JobQueryCriteria; +import me.zhengjie.utils.ThrowableUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -64,7 +65,11 @@ public class JobController { @DeleteMapping(value = "/job/{id}") @PreAuthorize("hasAnyRole('ADMIN','USERJOB_ALL','USERJOB_DELETE')") public ResponseEntity delete(@PathVariable Long id){ - jobService.delete(id); + try { + jobService.delete(id); + }catch (Throwable e){ + ThrowableUtil.throwForeignKeyException(e, "该岗位存在用户关联,请取消关联后再试"); + } return new ResponseEntity(HttpStatus.OK); } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuSmallDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuSmallDTO.java new file mode 100644 index 00000000..90931281 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuSmallDTO.java @@ -0,0 +1,18 @@ +package me.zhengjie.modules.system.service.dto; + +import lombok.Data; + +import java.sql.Timestamp; +import java.util.List; + +/** + * @author Zheng Jie + * @date 2018-12-17 + */ +@Data +public class MenuSmallDTO { + + private Long id; + + private String name; +} 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 8c2dce67..da3242b7 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 @@ -166,24 +166,26 @@ public class MenuServiceImpl implements MenuService { @Override public Map buildTree(List menuDTOS) { List trees = new ArrayList(); - + Set ids = new HashSet<>(); for (MenuDTO menuDTO : menuDTOS) { - - if ("0".equals(menuDTO.getPid().toString())) { + if (menuDTO.getPid() == 0) { trees.add(menuDTO); } - for (MenuDTO it : menuDTOS) { if (it.getPid().equals(menuDTO.getId())) { if (menuDTO.getChildren() == null) { menuDTO.setChildren(new ArrayList()); } menuDTO.getChildren().add(it); + ids.add(it.getId()); } } } Map map = new HashMap(); - map.put("content",trees.size() == 0?menuDTOS:trees); + if(trees.size() == 0){ + trees = menuDTOS.stream().filter(s -> !ids.contains(s.getId())).collect(Collectors.toList()); + } + map.put("content",trees); map.put("totalElements",menuDTOS!=null?menuDTOS.size():0); return map; } @@ -201,7 +203,7 @@ public class MenuServiceImpl implements MenuService { // 如果不是外链 if(!menuDTO.getIFrame()){ - if(menuDTO.getPid().equals(0L)){ + if(menuDTO.getPid() == 0){ //一级目录需要加斜杠,不然访问 会跳转404页面 menuVo.setPath("/" + menuDTO.getPath()); menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent())?"Layout":menuDTO.getComponent()); @@ -215,7 +217,7 @@ public class MenuServiceImpl implements MenuService { menuVo.setRedirect("noredirect"); menuVo.setChildren(buildMenus(menuDTOList)); // 处理是一级菜单并且没有子菜单的情况 - } else if(menuDTO.getPid().equals(0L)){ + } else if(menuDTO.getPid() == 0){ MenuVo menuVo1 = new MenuVo(); menuVo1.setMeta(menuVo.getMeta()); // 非外链 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/MenuSmallMapper.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/MenuSmallMapper.java new file mode 100644 index 00000000..a1581c3a --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapper/MenuSmallMapper.java @@ -0,0 +1,17 @@ +package me.zhengjie.modules.system.service.mapper; + +import me.zhengjie.mapper.EntityMapper; +import me.zhengjie.modules.system.domain.Menu; +import me.zhengjie.modules.system.service.dto.MenuDTO; +import me.zhengjie.modules.system.service.dto.MenuSmallDTO; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; + +/** + * @author Zheng Jie + * @date 2018-12-17 + */ +@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface MenuSmallMapper extends EntityMapper { + +} diff --git a/eladmin-system/src/main/resources/generator.properties b/eladmin-system/src/main/resources/generator.properties index b4d3d644..2ed93706 100644 --- a/eladmin-system/src/main/resources/generator.properties +++ b/eladmin-system/src/main/resources/generator.properties @@ -1,4 +1,4 @@ -#ݿתjava +#数据库类型转Java类型 tinyint=Integer smallint=Integer mediumint=Integer