package com.doumee.core.model; import com.doumee.dao.system.model.SystemPermission; import com.doumee.dao.system.model.SystemRole; import com.doumee.dao.system.model.SystemUser; import com.fasterxml.jackson.annotation.JsonIgnore; 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 * @since 2025/03/31 16:44 */ @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 List roles; private List permissions; @JsonIgnore private String password; @JsonIgnore private String salt; /** * 将用户实体转为登录用户信息 * * @param user 用户实体 * @param roles 角色列表 * @param permissions 权限列表 * @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; } }