package com.doumee.core.model; import com.doumee.core.utils.Constants; 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 com.github.xiaoymin.knife4j.core.util.CollectionUtils; import io.swagger.annotations.ApiModelProperty; 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 Integer needChangePwd; private String mobile; private String sessionId; private String hkMenuToken; private Date loginDate; @ApiModelProperty(value = "账户来源:0=后台添加 ; 2=司机注册") private Integer source; 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<>(); if(CollectionUtils.isNotEmpty(roles)){ for (SystemRole role : roles) { rs.add(role.getCode()); } } loginUserInfo.setNeedChangePwd(Constants.formatIntegerNum(user.getNeedChangePwd())); loginUserInfo.setSessionId(sessionId); loginUserInfo.setRoles(rs); // 设置权限信息 List pms = new ArrayList<>(); if(CollectionUtils.isNotEmpty(permissions)){ 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; } }