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(); }