mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
登录日志记录组织id补充、查询状态条件失效修复
This commit is contained in:
+3
@@ -43,4 +43,7 @@ public class LoginLogCreateReqDTO {
|
||||
@Schema(description = "所属地区")
|
||||
@Size(max = 200, message = "所属地区长度不能超过200个字符")
|
||||
private String region;
|
||||
|
||||
@Schema(description = "组织id")
|
||||
private Long organId;
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ public class LoginLogPageReqVO extends PageParam {
|
||||
private String username;
|
||||
|
||||
@Schema(description = "操作状态", example = "true")
|
||||
private Boolean status;
|
||||
private Boolean result;
|
||||
|
||||
@Schema(description = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ public class CustomPlateNoSeqDO implements Serializable {
|
||||
/**
|
||||
* 组织ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long organId;
|
||||
|
||||
/**
|
||||
|
||||
+5
@@ -73,4 +73,9 @@ public class LoginLogDO extends BaseDO {
|
||||
* 所属地区
|
||||
*/
|
||||
private String region;
|
||||
|
||||
/**
|
||||
* 组织id
|
||||
*/
|
||||
private Long organId;
|
||||
}
|
||||
|
||||
+1
-1
@@ -58,6 +58,6 @@ public class NoticeDO extends BaseDO {
|
||||
/**
|
||||
* 组织ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long organId;
|
||||
}
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public class SystemConfigDO extends BaseDO {
|
||||
/**
|
||||
* 组织id
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long organId;
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -16,9 +16,9 @@ public interface LoginLogMapper extends BaseMapperX<LoginLogDO> {
|
||||
.likeIfPresent(LoginLogDO::getUserIp, reqVO.getUserIp())
|
||||
.likeIfPresent(LoginLogDO::getUsername, reqVO.getUsername())
|
||||
.betweenIfPresent(LoginLogDO::getCreateTime, reqVO.getCreateTime());
|
||||
if (Boolean.TRUE.equals(reqVO.getStatus())) {
|
||||
if (Boolean.TRUE.equals(reqVO.getResult())) {
|
||||
query.eq(LoginLogDO::getResult, LoginResultEnum.SUCCESS.getResult());
|
||||
} else if (Boolean.FALSE.equals(reqVO.getStatus())) {
|
||||
} else if (Boolean.FALSE.equals(reqVO.getResult())) {
|
||||
query.gt(LoginLogDO::getResult, LoginResultEnum.SUCCESS.getResult());
|
||||
}
|
||||
query.orderByDesc(LoginLogDO::getId); // 降序
|
||||
|
||||
+11
-19
@@ -111,21 +111,22 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
AdminUserDO user = userService.getUserUniqueByUserName(username);
|
||||
// 校验用户是否存在
|
||||
if (user == null) {
|
||||
createLoginLog(null, username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
|
||||
createLoginLog(null, username, null, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS);
|
||||
}
|
||||
Long organId = user.getOrganId();
|
||||
// 校验机构有效性
|
||||
organService.validOrgan(user.getOrganId());
|
||||
organService.validOrgan(organId);
|
||||
// 校验部门有效性
|
||||
deptService.validUserLoginDept(user.getDeptId());
|
||||
// 校验密码
|
||||
if (!userService.isPasswordMatch(password, user.getPassword())) {
|
||||
createLoginLog(user.getId(), username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
|
||||
createLoginLog(user.getId(), username, organId, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS);
|
||||
}
|
||||
// 校验是否禁用
|
||||
if (CommonStatusEnum.isDisable(user.getStatus())) {
|
||||
createLoginLog(user.getId(), username, logTypeEnum, LoginResultEnum.USER_DISABLED);
|
||||
createLoginLog(user.getId(), username, organId, logTypeEnum, LoginResultEnum.USER_DISABLED);
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.AUTH_LOGIN_USER_DISABLED);
|
||||
}
|
||||
return user;
|
||||
@@ -164,7 +165,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
AdminUserDO user = userService.getUserUniqueByUserName(mobile);
|
||||
// 校验用户是否存在
|
||||
if (user == null) {
|
||||
createLoginLog(null, mobile, LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.BAD_CREDENTIALS);
|
||||
createLoginLog(null, mobile, null, LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.BAD_CREDENTIALS);
|
||||
return false;
|
||||
}
|
||||
if (StringUtils.isEmpty(user.getPassword())) {
|
||||
@@ -180,7 +181,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
AdminUserDO user = userService.getUserUniqueByUserName(mobile);
|
||||
// 校验用户是否存在
|
||||
if (user == null) {
|
||||
createLoginLog(null, mobile, LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.BAD_CREDENTIALS);
|
||||
createLoginLog(null, mobile, null, LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.BAD_CREDENTIALS);
|
||||
return false;
|
||||
}
|
||||
// 校验验证码正确性
|
||||
@@ -219,7 +220,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
return createTokenAfterLoginSuccess(user, reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE, dataSourceCode);
|
||||
}
|
||||
|
||||
private void createLoginLog(Long userId, String username,
|
||||
private void createLoginLog(Long userId, String username, Long organId,
|
||||
LoginLogTypeEnum logTypeEnum, LoginResultEnum loginResult) {
|
||||
String clientIP = getClientIP();
|
||||
// 插入登录日志
|
||||
@@ -232,6 +233,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
reqDTO.setUserAgent(ServletUtils.getUserAgent());
|
||||
reqDTO.setUserIp(clientIP);
|
||||
reqDTO.setResult(loginResult.getResult());
|
||||
reqDTO.setOrganId(organId);
|
||||
// 设置登录时通过ip云服务查询到的地域信息
|
||||
if (ipQueryService.serviceEnable()) {
|
||||
IPQueryDataRespDTO ipQueryDataRespDTO = ipQueryService.querySource(clientIP);
|
||||
@@ -284,21 +286,11 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
// 验证不通过
|
||||
if (!response.isSuccess()) {
|
||||
// 创建登录失败日志(验证码不正确)
|
||||
createLoginLog(null, reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.CAPTCHA_CODE_ERROR);
|
||||
createLoginLog(null, reqVO.getUsername(), null, LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.CAPTCHA_CODE_ERROR);
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.AUTH_LOGIN_CAPTCHA_CODE_ERROR, response.getRepMsg());
|
||||
}
|
||||
}
|
||||
|
||||
private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType, Boolean large, String dataCode, Long organId, String nickname) {
|
||||
// 插入登陆日志
|
||||
createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS);
|
||||
// 创建访问令牌
|
||||
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(),
|
||||
OAuth2ClientConstants.CLIENT_ID_DEFAULT, null, large, null, null, dataCode, organId, nickname);
|
||||
// 构建返回结果
|
||||
return AuthConvert.INSTANCE.convert(accessTokenDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登陆成功后创建token
|
||||
*
|
||||
@@ -310,7 +302,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
*/
|
||||
private AuthLoginRespVO createTokenAfterLoginSuccess(AdminUserDO user, String username, LoginLogTypeEnum logType, String dataCode) {
|
||||
// 插入登陆日志
|
||||
createLoginLog(user.getId(), username, logType, LoginResultEnum.SUCCESS);
|
||||
createLoginLog(user.getId(), username, user.getOrganId(), logType, LoginResultEnum.SUCCESS);
|
||||
// 创建访问令牌
|
||||
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(user, getUserType().getValue(), OAuth2ClientConstants.CLIENT_ID_DEFAULT, dataCode);
|
||||
// 构建返回结果
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
|
||||
LoginLogPageReqVO reqVO = new LoginLogPageReqVO();
|
||||
reqVO.setUsername("wang");
|
||||
reqVO.setUserIp("192.168.199");
|
||||
reqVO.setStatus(true);
|
||||
reqVO.setResult(true);
|
||||
reqVO.setCreateTime(buildBetweenTime(2021, 3, 5, 2021, 3, 7));
|
||||
|
||||
// 调用
|
||||
|
||||
Reference in New Issue
Block a user