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