package doumeemes.core.model; 
 | 
  
 | 
import doumeemes.dao.business.model.Company; 
 | 
import doumeemes.dao.business.model.Department; 
 | 
import doumeemes.dao.ext.vo.CompanyExtListVO; 
 | 
import doumeemes.dao.ext.vo.CompanyUserExtListVO; 
 | 
import doumeemes.dao.ext.vo.DepartmentExtListVO; 
 | 
import doumeemes.dao.system.model.SystemPermission; 
 | 
import doumeemes.dao.system.model.SystemRole; 
 | 
import doumeemes.dao.system.model.SystemUser; 
 | 
import io.swagger.annotations.ApiModelProperty; 
 | 
import lombok.Data; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.springframework.beans.BeanUtils; 
 | 
  
 | 
import java.io.Serializable; 
 | 
import java.util.ArrayList; 
 | 
import java.util.Arrays; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 登录用户信息 
 | 
 * @author Eva.Caesar Liu 
 | 
 * @date 2022/04/18 18:12 
 | 
 */ 
 | 
@Data 
 | 
public class LoginUserInfo implements Serializable { 
 | 
  
 | 
    private Integer id; 
 | 
  
 | 
    private String username; 
 | 
  
 | 
    private String realname; 
 | 
  
 | 
    private String avatar; 
 | 
  
 | 
    private Date birthday; 
 | 
  
 | 
    private String sex; 
 | 
  
 | 
    private Integer type; 
 | 
  
 | 
    private Integer status; 
 | 
  
 | 
    private CompanyExtListVO company; 
 | 
  
 | 
    private List<String> roles; 
 | 
  
 | 
    private List<String> permissions; 
 | 
    //根部门 
 | 
    private DepartmentExtListVO rootDepartment ; 
 | 
    //直属公司级部门 
 | 
    private DepartmentExtListVO comDepartment ; 
 | 
    //当前切换的公司级部门 
 | 
    private DepartmentExtListVO curComDepartment ; 
 | 
    //直属部门 
 | 
    private DepartmentExtListVO department ; 
 | 
    //关联的组织用户信息 
 | 
    private CompanyUserExtListVO companyUser ; 
 | 
    //权限范围内的工序,如果为空为null,只能看自己的 
 | 
    private List<Integer> procedureIds ; 
 | 
    //数据权限部门编码集合,为null表示全部,为size()==0表示只能看自己的,size>0表示指定部门集合的数据 
 | 
    private List<Integer> departPermissionList; 
 | 
    public static LoginUserInfo from(SystemUser user, 
 | 
                                     List<SystemRole> roles, 
 | 
                                     List<SystemPermission> permissions, 
 | 
                                     CompanyExtListVO company, 
 | 
                                     DepartmentExtListVO rootDepartment, 
 | 
                                     DepartmentExtListVO comDepartment, 
 | 
                                     DepartmentExtListVO department, 
 | 
                                     List<Integer> departPermissionList, 
 | 
                                     CompanyUserExtListVO cu) { 
 | 
        if (user == null) { 
 | 
            return null; 
 | 
        } 
 | 
        // 拷贝用户信息 
 | 
        LoginUserInfo loginUserInfo = new LoginUserInfo(); 
 | 
        BeanUtils.copyProperties(user, loginUserInfo); 
 | 
        loginUserInfo.setRootDepartment(rootDepartment); 
 | 
        loginUserInfo.setComDepartment(comDepartment); 
 | 
        loginUserInfo.setCurComDepartment(comDepartment); 
 | 
        loginUserInfo.setDepartment(department); 
 | 
        loginUserInfo.setCompany(company); 
 | 
        loginUserInfo.setCompanyUser(cu); 
 | 
        //工序的权限范围 
 | 
        if(cu!= null && StringUtils.isNotBlank(cu.getProcedureIds())){ 
 | 
            loginUserInfo.setProcedureIds(new ArrayList<>()); 
 | 
            String[] ts = cu.getProcedureIds().split(","); 
 | 
            for(String s : ts){ 
 | 
                loginUserInfo.getProcedureIds().add(Integer.parseInt(s)); 
 | 
            } 
 | 
        } 
 | 
        loginUserInfo.setDepartPermissionList(departPermissionList); 
 | 
        // 设置角色信息 
 | 
        List<String> rs = new ArrayList<>(); 
 | 
        for (SystemRole role : roles) { 
 | 
            rs.add(role.getCode()); 
 | 
        } 
 | 
        loginUserInfo.setRoles(rs); 
 | 
        // 设置权限信息 
 | 
        List<String> pms = new ArrayList<>(); 
 | 
        for (SystemPermission permission : permissions) { 
 | 
            pms.add(permission.getCode()); 
 | 
        } 
 | 
        loginUserInfo.setPermissions(pms); 
 | 
        return loginUserInfo; 
 | 
    } 
 | 
} 
 |