package com.moral.api.pojo.vo.login; import com.fasterxml.jackson.annotation.JsonInclude; 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 lombok.Data; import java.util.ArrayList; import java.util.List; /** * @ClassName AccountInfoVO * @Description TODO * @Author 陈凯裕 * @Date 2021/3/13 16:11 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class AccountInfoVO { /* * 用户Id * */ private Integer accountId; /* * 用户名称 * */ private String userName; /* * 用户角色 * */ private List roleNames; /* * 用户菜单 * */ private List 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){ AccountInfoVO vo = new AccountInfoVO(); ManageAccount account = dto.getAccount(); List menus = dto.getMenus(); List roles = dto.getRoles(); //封装roleNames ArrayList roleNames = new ArrayList<>(); 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 children = menu.getChildren(); for (ManageMenu child : children) { child.setCreateTime(null); child.setIsDelete(null); child.setUpdateTime(null); child.setParentId(null); } } vo.setAccountId(account.getId()); vo.setUserName(account.getUserName()); vo.setMenus(menus); vo.setRoleNames(roleNames); return vo; } }