jinpengyong
2022-03-09 8228b06f808840d95d58e4ad457e072800af33e6
screen-manage/src/main/java/com/moral/api/pojo/vo/login/AccountInfoVO.java
@@ -4,11 +4,11 @@
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
@@ -42,33 +42,31 @@
    private List<ManageMenu> menus;
    /**
    * @Description: DTO转换VO
            * @Param: [dto]
            * @return: com.moral.api.pojo.vo.login.AccountInfoVO
            * @Author: 陈凯裕
            * @Date: 2021/3/13
            */
    public static AccountInfoVO convert(AccountInfoDTO dto){
     * @Description: DTO转换VO
     * @Param: [dto]
     * @return: com.moral.api.pojo.vo.login.AccountInfoVO
     * @Author: 陈凯裕
     * @Date: 2021/3/13
     */
    public static AccountInfoVO convert(AccountInfoDTO dto) {
        AccountInfoVO vo = new AccountInfoVO();
        ManageAccount account = dto.getAccount();
        List<ManageMenu> menus = dto.getMenus();
        List<ManageRole> roles = dto.getRoles();
        //封装roleNames
        ArrayList<String> roleNames = new ArrayList<>();
        roles.forEach(role->roleNames.add(role.getName()));
        if (!ObjectUtils.isEmpty(roles)) {
            roles.forEach(role -> roleNames.add(role.getName()));
        }
        /*过滤menu无用属性*/
        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);
        if (!ObjectUtils.isEmpty(menus)) {
            for (ManageMenu menu : menus) {
                removeAttribute(menu);
            }
        }
        //menu进行排序
        if (!ObjectUtils.isEmpty(menus)) {
            orderRootMenu(menus);
        }
        vo.setAccountId(account.getId());
        vo.setUserName(account.getUserName());
@@ -77,4 +75,52 @@
        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;
        }
    }
}