Compare commits

..

2 Commits

Author SHA1 Message Date
s2042968 8eb4d76f29 Merge branch 'develop' of http://139.196.179.195:3000/chenxudong/electromagnetic-data-new into develop 2025-01-02 14:46:32 +08:00
s2042968 6d0add8f87 增加管理员类型 2025-01-02 14:46:17 +08:00
9 changed files with 38 additions and 0 deletions

View File

@ -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;

View File

@ -69,6 +69,11 @@ public class User {
*/
private Date internshipEndDate;
/**
* 管理员类型
*/
private String adminType;
/**
* 是否已发布系统管理员
*/

View File

@ -10,4 +10,6 @@ public class UserLoginResponse implements Serializable {
private String token;
private String userId;
private String adminType;
}

View File

@ -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())

View File

@ -16,6 +16,7 @@
<result column="salt" jdbcType="VARCHAR" property="salt"/>
<result column="user_status" jdbcType="VARCHAR" property="userStatus"/>
<result column="internship_end_date" jdbcType="DATE" property="internshipEndDate"/>
<result column="admin_type" jdbcType="VARCHAR" property="adminType"/>
<result column="creator" jdbcType="VARCHAR" property="creator"/>
<result column="creator_name" jdbcType="VARCHAR" property="creatorName"/>
<result column="gmt_create" jdbcType="TIMESTAMP" property="gmtCreate"/>
@ -39,6 +40,7 @@
salt,
user_status,
internship_end_date,
admin_type,
creator,
creator_name,
gmt_create,

View File

@ -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";
/**
* 管理员账号

View File

@ -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;
}

View File

@ -29,4 +29,9 @@ public class UserLoginInfo {
* 令牌
*/
private String token;
/**
* 管理员类型
*/
private String adminType;
}

View File

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