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