|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|