LoginContextHolder.java
1.29 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
package com.infoloop.tianting.context;
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 void clear() {
CONTEXT_HOLDER.remove();
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class LoginInfo {
private Integer id;
private Integer enterpriseId;
private String name;
private String openid;
}
}