LoginContextHolder.java
1.55 KB
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
package com.infoloop.tianting.context;
import com.infoloop.tianting.enums.LoginSourceEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
public class LoginContextHolder {
private static final ThreadLocal<LoginInfo> CONTEXT_HOLDER = new ThreadLocal<>();
public static void setLoginInfo(LoginInfo userContext) {
CONTEXT_HOLDER.set(userContext);
}
public static void setRequestEnterpriseId(int enterpriseId) {
CONTEXT_HOLDER.set(LoginInfo.builder().enterpriseId(enterpriseId).build());
}
public static LoginInfo getLoginInfo() {
return CONTEXT_HOLDER.get();
}
public static boolean hasLogin() {
return CONTEXT_HOLDER.get() != null;
}
public static Integer getId() {
return CONTEXT_HOLDER.get().getId();
}
public static String getName() {
return CONTEXT_HOLDER.get().getName();
}
public static Integer getEnterpriseId() {
return CONTEXT_HOLDER.get().getEnterpriseId();
}
public static String getOpenId() {
return CONTEXT_HOLDER.get().getOpenId();
}
public static void clear() {
CONTEXT_HOLDER.remove();
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class LoginInfo {
private Integer id;
private Integer enterpriseId;
private Integer clientId;
private String name;
@Builder.Default
private String openId = "";
private LoginSourceEnum loginSource;
}
}