| | |
| | | package com.moral.api.pojo.vo.menu; |
| | | |
| | | import com.moral.api.pojo.dto.menu.MenuQueryDto; |
| | | import com.fasterxml.jackson.annotation.JsonInclude; |
| | | import com.moral.api.entity.Menu; |
| | | import com.moral.api.pojo.dto.menu.MenuDTO; |
| | | import com.moral.api.pojo.dto.menu.MenuQueryDTO; |
| | | import com.moral.constant.ResponseCodeEnum; |
| | | import lombok.Data; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | * @Version TODO |
| | | **/ |
| | | @Data |
| | | @JsonInclude(JsonInclude.Include.NON_EMPTY) |
| | | public class MenuQueryVO { |
| | | |
| | | List<MenuVO> vos; |
| | | |
| | | public static MenuQueryVO convert(MenuQueryDto dto){ |
| | | return null; |
| | | public static MenuQueryVO convert(MenuQueryDTO dto) { |
| | | if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) |
| | | return null; |
| | | MenuQueryVO vo = new MenuQueryVO(); |
| | | List<MenuDTO> dtos = dto.getDtos(); |
| | | List<MenuVO> vos = new ArrayList<>(); |
| | | for (MenuDTO menuDTO : dtos) { |
| | | MenuVO menuVO = convertToQueryPage(menuDTO); |
| | | vos.add(menuVO); |
| | | } |
| | | //对根目录进行排序 |
| | | Collections.sort(vos, new Comparator<MenuVO>() { |
| | | @Override |
| | | public int compare(MenuVO o1, MenuVO o2) { |
| | | return o1.getOrder() - o2.getOrder(); |
| | | } |
| | | }); |
| | | vo.setVos(vos); |
| | | return vo; |
| | | } |
| | | |
| | | private static MenuVO convertToQueryPage(MenuDTO dto) { |
| | | Menu menu = dto.getMenu(); |
| | | MenuVO menuVO = convertToQueryPage(menu); |
| | | return menuVO; |
| | | } |
| | | |
| | | private static MenuVO convertToQueryPage(Menu menu) { |
| | | MenuVO vo = new MenuVO(); |
| | | vo.setId(menu.getId()); |
| | | vo.setParentId(menu.getParentId()); |
| | | vo.setUrl(menu.getUrl()); |
| | | vo.setIcon(menu.getIcon()); |
| | | vo.setName(menu.getName()); |
| | | vo.setOrder(menu.getOrder()); |
| | | List<MenuVO> vos = new ArrayList<>(); |
| | | List<Menu> children = menu.getChildren(); |
| | | if (!ObjectUtils.isEmpty(children)) { |
| | | //对children进行排序,按照order字段 |
| | | Collections.sort(children, new Comparator<Menu>() { |
| | | @Override |
| | | public int compare(Menu o1, Menu o2) { |
| | | return o1.getOrder() - o2.getOrder(); |
| | | } |
| | | }); |
| | | for (Menu child : children) { |
| | | MenuVO menuVO = convertToQueryPage(child); |
| | | vos.add(menuVO); |
| | | } |
| | | vo.setChildren(vos); |
| | | } |
| | | return vo; |
| | | } |
| | | |
| | | } |
| | | |