package com.doumee.core.model; import com.doumee.dao.business.model.Company; import com.doumee.dao.system.model.SystemPermission; import com.doumee.dao.system.model.SystemRole; import com.doumee.dao.system.model.SystemUser; import lombok.Data; import org.springframework.beans.BeanUtils; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 登录用户信息 * @author Eva.Caesar Liu * @date 2023/03/21 14:49 */ @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 memberId; private Integer type; private String mobile; private String sessionId; private Date loginDate; private List roles; private List permissions; private List companyIdList; private Company company; //jwt登录设置 public static LoginUserInfo from(SystemUser user, List roles, List permissions,Company company,String sessionId) { if (user == null) { return null; } // 拷贝用户信息 LoginUserInfo loginUserInfo = new LoginUserInfo(); BeanUtils.copyProperties(user, loginUserInfo); loginUserInfo.setCompany(company); // 设置角色信息 List rs = new ArrayList<>(); for (SystemRole role : roles) { rs.add(role.getCode()); } loginUserInfo.setSessionId(sessionId); loginUserInfo.setRoles(rs); // 设置权限信息 List pms = new ArrayList<>(); for (SystemPermission permission : permissions) { pms.add(permission.getCode()); } loginUserInfo.setPermissions(pms); return loginUserInfo; } public static LoginUserInfo from(SystemUser user, List roles, List permissions) { if (user == null) { return null; } // 拷贝用户信息 LoginUserInfo loginUserInfo = new LoginUserInfo(); BeanUtils.copyProperties(user, loginUserInfo); // 设置角色信息 List rs = new ArrayList<>(); for (SystemRole role : roles) { rs.add(role.getCode()); } loginUserInfo.setRoles(rs); // 设置权限信息 List pms = new ArrayList<>(); for (SystemPermission permission : permissions) { pms.add(permission.getCode()); } loginUserInfo.setPermissions(pms); return loginUserInfo; } }