Commit 08597902 authored by dqjdda's avatar dqjdda
Browse files

修复菜单查询数据重复的问题#112

parent 2b1af497
......@@ -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
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;
}
......@@ -166,24 +166,26 @@ public class MenuServiceImpl implements MenuService {
@Override
public Map buildTree(List<MenuDTO> menuDTOS) {
List<MenuDTO> trees = new ArrayList<MenuDTO>();
Set<Long> 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>());
}
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());
// 非外链
......
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<MenuSmallDTO, Menu> {
}
#Êý¾Ý¿âÀàÐÍת»»³ÉjavaÀàÐÍ
#数据库类型转Java类型
tinyint=Integer
smallint=Integer
mediumint=Integer
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment