From 19792073aeb0462088208334b4bd4241571630d4 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Tue, 27 Apr 2021 09:13:43 +0800
Subject: [PATCH] screen-manage                 菜单删除和添加功能

---
 screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryVO.java |   67 ++++++++++++++++++++++++++++++++-
 1 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryVO.java
index 5613bca..6c0a1f0 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/menu/MenuQueryVO.java
@@ -1,8 +1,16 @@
 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;
 
 /**
@@ -13,11 +21,64 @@
  * @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;
+    }
+
 }
+

--
Gitblit v1.8.0