MrShi
2023-12-12 9088209cdd7e3158d2a04caae05e6726ba3b3ad6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.doumee.core.model;
 
import com.doumee.core.constants.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.system.model.SystemPermission;
import com.doumee.dao.system.model.SystemRole;
import com.doumee.dao.system.model.SystemUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
 
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 登录用户信息
 * @author Eva.Caesar Liu
 * @date 2022/03/15 09:54
 */
@Data
public class LoginUserInfo implements Serializable {
    private static final long   serialVersionUID = -5021804768443600712l;
    @ApiModelProperty(value = "编号")
    private String   id         ;//            编号
 
    @ApiModelProperty(value = "上次登陆时间")
    private String  last_login     ;//
    @ApiModelProperty(value = "用户名")
    private String  username      ;//
    @ApiModelProperty(value = "姓名")
    private String   real_name    ;//
    @ApiModelProperty(value = "昵称")
    private String  nickname      ;//
    @ApiModelProperty(value = "头像url")
    private String  avatar       ;//
    @ApiModelProperty(value = "性别")
    private String  sex          ;//
    @ApiModelProperty(value = "手机号")
    private String phone         ;//
    @ApiModelProperty(value = "用户类型")
    private String  user_type      ;//
    @ApiModelProperty(value = "状态 0启用 1禁用")
    private Integer  status     ;//
 
    private List<String> roles;
 
    private List<String> permissions;
 
    public static LoginUserInfo from(SystemUser user, List<SystemRole> roles, List<SystemPermission> permissions) {
        if (user == null) {
            return null;
        }
        // 拷贝用户信息
        LoginUserInfo loginUserInfo = new LoginUserInfo();
        BeanUtils.copyProperties(user, loginUserInfo);
        loginUserInfo.setLast_login(DateUtil.getPlusTime2(user.getLastLogin()));
        loginUserInfo.setReal_name(user.getRealname());
        loginUserInfo.setStatus(user.getStatus());
        loginUserInfo.setPhone(user.getMobile());
        if(roles!=null){
              // 设置角色信息
              List<String> rs = new ArrayList<>();
              for (SystemRole role : roles) {
                  rs.add(role.getCode());
              }
              loginUserInfo.setRoles(rs);
        }
        if(permissions!=null){
            // 设置权限信息
            List<String> pms = new ArrayList<>();
            for (SystemPermission permission : permissions) {
                pms.add(permission.getCode());
            }
            loginUserInfo.setPermissions(pms);
        }
        return loginUserInfo;
    }
}