|  |  | 
 |  |  | import com.moral.api.entity.ManageAccount; | 
 |  |  | import com.moral.api.entity.ManageMenu; | 
 |  |  | import com.moral.api.entity.ManageRole; | 
 |  |  | import com.moral.api.pojo.dto.login.AccountInfoDTO; | 
 |  |  | import com.moral.api.pojo.redisBean.AccountInfoDTO; | 
 |  |  | import lombok.Data; | 
 |  |  | import org.springframework.util.ObjectUtils; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @ClassName AccountInfoVO | 
 |  |  | 
 |  |  |         /*过滤menu无用属性*/ | 
 |  |  |         if (!ObjectUtils.isEmpty(menus)) { | 
 |  |  |             for (ManageMenu menu : menus) { | 
 |  |  |                 menu.setCreateTime(null); | 
 |  |  |                 menu.setIsDelete(null); | 
 |  |  |                 menu.setUpdateTime(null); | 
 |  |  |                 menu.setParentId(null); | 
 |  |  |                 List<ManageMenu> children = menu.getChildren(); | 
 |  |  |                 for (ManageMenu child : children) { | 
 |  |  |                     child.setCreateTime(null); | 
 |  |  |                     child.setIsDelete(null); | 
 |  |  |                     child.setUpdateTime(null); | 
 |  |  |                     child.setParentId(null); | 
 |  |  |                 } | 
 |  |  |                 removeAttribute(menu); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         //menu进行排序 | 
 |  |  |         if (!ObjectUtils.isEmpty(menus)) { | 
 |  |  |             orderRootMenu(menus); | 
 |  |  |         } | 
 |  |  |         vo.setAccountId(account.getId()); | 
 |  |  |         vo.setUserName(account.getUserName()); | 
 |  |  | 
 |  |  |         return vo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static void removeAttribute(ManageMenu menu) { | 
 |  |  |         menu.setCreateTime(null); | 
 |  |  |         menu.setIsDelete(null); | 
 |  |  |         menu.setUpdateTime(null); | 
 |  |  |         menu.setParentId(null); | 
 |  |  |         if (ObjectUtils.isEmpty(menu.getChildren())) | 
 |  |  |             return; | 
 |  |  |         List<ManageMenu> children = menu.getChildren(); | 
 |  |  |         for (ManageMenu child : children) { | 
 |  |  |             removeAttribute(child); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |     * @Description: 对根菜单进行排序 | 
 |  |  |             * @Param: [menus] | 
 |  |  |             * @return: void | 
 |  |  |             * @Author: 陈凯裕 | 
 |  |  |             * @Date: 2021/6/8 | 
 |  |  |             */ | 
 |  |  |     public static void orderRootMenu(List<ManageMenu> menus){ | 
 |  |  |         menus.sort(Comparator.comparing(ManageMenu::getOrder)); | 
 |  |  |         for (ManageMenu menu : menus) { | 
 |  |  |             orderMenu(menu); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |     * @Description: 对非根菜单进行排序 | 
 |  |  |             * @Param: [menu] | 
 |  |  |             * @return: void | 
 |  |  |             * @Author: 陈凯裕 | 
 |  |  |             * @Date: 2021/6/8 | 
 |  |  |             */ | 
 |  |  |     public static void orderMenu(ManageMenu menu){ | 
 |  |  |         List<ManageMenu> children = menu.getChildren(); | 
 |  |  |         if(!ObjectUtils.isEmpty(children)){ | 
 |  |  |             children.sort(Comparator.comparing(ManageMenu::getOrder)); | 
 |  |  |             for (ManageMenu child : children) { | 
 |  |  |                 orderMenu(child); | 
 |  |  |             } | 
 |  |  |         }else{ | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |