diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java
index 9b192de..c9eb7ce 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java
@@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.manage.config;
import cn.hutool.core.date.SystemClock;
import com.electromagnetic.industry.software.common.cons.UserConstants;
+import com.electromagnetic.industry.software.common.enums.AdminTypeEnum;
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
import com.electromagnetic.industry.software.common.util.TokenUtil;
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
@@ -70,6 +71,7 @@ public class LoginInterceptor implements HandlerInterceptor {
userLoginInfo.setUserId(claims.get(UserConstants.LOGIN_USER_ID, String.class));
userLoginInfo.setUsername(claims.get(UserConstants.LOGIN_USER_NAME, String.class));
userLoginInfo.setWorkNumber(claims.get(UserConstants.LOGIN_WORK_NUMBER, String.class));
+ userLoginInfo.setAdminType(claims.get(UserConstants.LOGIN_ADMIN_TYPE, String.class));
UserThreadLocal.set(userLoginInfo);
}
return true;
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/User.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/User.java
index f68d977..47fad2f 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/User.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/User.java
@@ -69,6 +69,11 @@ public class User {
*/
private Date internshipEndDate;
+ /**
+ * 管理员类型
+ */
+ private String adminType;
+
/**
* 是否已发布(系统管理员)
*/
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/UserLoginResponse.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/UserLoginResponse.java
index 0ac4e47..aab2dc7 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/UserLoginResponse.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/UserLoginResponse.java
@@ -10,4 +10,6 @@ public class UserLoginResponse implements Serializable {
private String token;
private String userId;
+
+ private String adminType;
}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java
index 3ce0a77..06acec2 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java
@@ -65,12 +65,14 @@ public class UserServiceImpl implements UserService {
User user = userMapper.selectUserByWorkNumber(info.getWorkNumber());
info.setUserId(user.getUserId());
info.setUsername(user.getUserName());
+ info.setAdminType(user.getAdminType());
if (checkUserValid(user) && matchPassword(user, decodePwd)) {
String tokenStr = createToken(info);
createUserToken(user, tokenStr);
UserLoginResponse userLoginResponse = new UserLoginResponse();
userLoginResponse.setToken(tokenStr);
userLoginResponse.setUserId(user.getUserId());
+ userLoginResponse.setAdminType(user.getAdminType());
return ElectromagneticResultUtil.success(userLoginResponse);
}
return ElectromagneticResultUtil.fail("500", "用户不存在/密码错误");
@@ -99,6 +101,7 @@ public class UserServiceImpl implements UserService {
claims.put(UserConstants.LOGIN_USER_ID, loginInfo.getUserId());
claims.put(UserConstants.LOGIN_USER_NAME, loginInfo.getUsername());
claims.put(UserConstants.LOGIN_WORK_NUMBER, loginInfo.getWorkNumber());
+ claims.put(UserConstants.LOGIN_ADMIN_TYPE, loginInfo.getAdminType());
return Jwts.builder()
.addClaims(claims)
.setIssuedAt(DateTime.now())
diff --git a/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml b/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml
index fb66863..244432a 100644
--- a/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml
+++ b/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml
@@ -16,6 +16,7 @@
+
@@ -39,6 +40,7 @@
salt,
user_status,
internship_end_date,
+ admin_type,
creator,
creator_name,
gmt_create,
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/UserConstants.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/UserConstants.java
index 2b6801c..f1ecc03 100644
--- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/UserConstants.java
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/UserConstants.java
@@ -33,6 +33,7 @@ public interface UserConstants {
String LOGIN_USER_NAME = "userName";
String LOGIN_WORK_NUMBER = "workNumber";
String LOGIN_USER_ID = "userId";
+ String LOGIN_ADMIN_TYPE = "adminType";
/**
* 管理员账号
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/AdminTypeEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/AdminTypeEnum.java
new file mode 100644
index 0000000..94aae60
--- /dev/null
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/AdminTypeEnum.java
@@ -0,0 +1,16 @@
+package com.electromagnetic.industry.software.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum AdminTypeEnum {
+
+ SYSTEM("system"),
+ AUDIT("audit"),
+ NORMAL("normal"),
+ SECURITY("security");
+
+ private String value;
+}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/UserLoginInfo.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/UserLoginInfo.java
index 549bfeb..456b11f 100644
--- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/UserLoginInfo.java
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/UserLoginInfo.java
@@ -29,4 +29,9 @@ public class UserLoginInfo {
* 令牌
*/
private String token;
+
+ /**
+ * 管理员类型
+ */
+ private String adminType;
}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java
index db9d0dd..e5ab117 100644
--- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java
@@ -25,6 +25,8 @@ public class UserThreadLocal {
return userThread.get().getUserId();
}
+ public static String getAdminType() {return userThread.get().getAdminType();}
+
public static void remove() {
userThread.remove();
}