fix bug
This commit is contained in:
parent
7fd6432158
commit
c500891702
|
|
@ -54,6 +54,11 @@ public class SysUserController {
|
||||||
return userService.accountLogin(accountLoginDto);
|
return userService.accountLogin(accountLoginDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping(value = "loginNoCode")
|
||||||
|
public Response<UserInfoVO> loginNoCode(@RequestBody AccountLoginDTO accountLoginDto) {
|
||||||
|
return userService.loginNoCode(accountLoginDto);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping(value = "mobileLogin")
|
@PostMapping(value = "mobileLogin")
|
||||||
public Response<UserInfoVO> mobileLogin(@RequestBody MobileLoginDTO mobileLoginDto) {
|
public Response<UserInfoVO> mobileLogin(@RequestBody MobileLoginDTO mobileLoginDto) {
|
||||||
return userService.mobileLogin(mobileLoginDto);
|
return userService.mobileLogin(mobileLoginDto);
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ spring:
|
||||||
redis:
|
redis:
|
||||||
host: 58.49.150.163
|
host: 58.49.150.163
|
||||||
port: 6379
|
port: 6379
|
||||||
|
username: default
|
||||||
password: Clunt@12345
|
password: Clunt@12345
|
||||||
jedis:
|
jedis:
|
||||||
pool:
|
pool:
|
||||||
|
|
@ -20,4 +21,4 @@ spring:
|
||||||
max-wait: 100
|
max-wait: 100
|
||||||
max-idle: 20
|
max-idle: 20
|
||||||
min-idle: 5
|
min-idle: 5
|
||||||
timeout: 10000
|
timeout: 10000
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ public class JWTConfig implements WebMvcConfigurer {
|
||||||
.excludePathPatterns("/v2/common/captcha")
|
.excludePathPatterns("/v2/common/captcha")
|
||||||
.excludePathPatterns("/user/register")
|
.excludePathPatterns("/user/register")
|
||||||
.excludePathPatterns("/user/login")
|
.excludePathPatterns("/user/login")
|
||||||
|
.excludePathPatterns("/user/loginNoCode")
|
||||||
.excludePathPatterns("/user/mobileLogin")
|
.excludePathPatterns("/user/mobileLogin")
|
||||||
.excludePathPatterns("/user/updatePassword")
|
.excludePathPatterns("/user/updatePassword")
|
||||||
.excludePathPatterns("/user/updatePasswordByEmail")
|
.excludePathPatterns("/user/updatePasswordByEmail")
|
||||||
|
|
|
||||||
|
|
@ -303,7 +303,7 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
||||||
.count();
|
.count();
|
||||||
|
|
||||||
var tenant = tenantMapper.selectById(sysUserService.getCurrentTenantId());
|
var tenant = tenantMapper.selectById(sysUserService.getCurrentTenantId());
|
||||||
if (tenant.getUserNumLimit() != 0 && userNum >= tenant.getUserNumLimit()) {
|
if (tenant != null && tenant.getUserNumLimit() != 0 && userNum >= tenant.getUserNumLimit()) {
|
||||||
var systemLanguage = sysUserService.getUserSystemLanguage(sysUserService.getCurrentUserId());
|
var systemLanguage = sysUserService.getUserSystemLanguage(sysUserService.getCurrentUserId());
|
||||||
if ("zh_CN".equals(systemLanguage)) {
|
if ("zh_CN".equals(systemLanguage)) {
|
||||||
return Response.responseMsg(TenantCodeEnum.TENANT_USER_NUM_LIMIT);
|
return Response.responseMsg(TenantCodeEnum.TENANT_USER_NUM_LIMIT);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,8 @@ public interface ISysUserService extends IService<SysUser> {
|
||||||
|
|
||||||
Response<UserInfoVO> accountLogin(AccountLoginDTO accountLoginDto);
|
Response<UserInfoVO> accountLogin(AccountLoginDTO accountLoginDto);
|
||||||
|
|
||||||
|
Response<UserInfoVO> loginNoCode(AccountLoginDTO accountLoginDto);
|
||||||
|
|
||||||
Response<UserInfoVO> mobileLogin(MobileLoginDTO mobileLoginDto);
|
Response<UserInfoVO> mobileLogin(MobileLoginDTO mobileLoginDto);
|
||||||
|
|
||||||
Response<UserInfoVO> emailLogin(EmailLoginDTO emailLoginDTO);
|
Response<UserInfoVO> emailLogin(EmailLoginDTO emailLoginDTO);
|
||||||
|
|
|
||||||
|
|
@ -285,7 +285,61 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
}
|
}
|
||||||
// Check user tenant expiration skip admin
|
// Check user tenant expiration skip admin
|
||||||
var tenant = tenantMapper.selectById(user.getTenantId());
|
var tenant = tenantMapper.selectById(user.getTenantId());
|
||||||
if (!"admin".equals(accountLoginDto.getUsername()) && tenant.getExpireTime().isBefore(LocalDateTime.now())) {
|
if (!"admin".equals(accountLoginDto.getUsername()) && tenant != null && tenant.getExpireTime().isBefore(LocalDateTime.now())) {
|
||||||
|
return Response.responseMsg(TenantCodeEnum.TENANT_EXPIRED);
|
||||||
|
}
|
||||||
|
|
||||||
|
var token = "";
|
||||||
|
if (redisUtil.hasKey(user.getUserName() + ":token")) {
|
||||||
|
token = String.valueOf(redisUtil.get(user.getUserName() + ":token"));
|
||||||
|
} else {
|
||||||
|
// 生成JWT的令牌
|
||||||
|
token = jwtUtil.createToken(accountLoginDto.getUsername());
|
||||||
|
redisUtil.set(accountLoginDto.getUsername() + ":token", token);
|
||||||
|
redisUtil.expire(accountLoginDto.getUsername() + ":token", 86400);
|
||||||
|
// 同时存放userId和userName 租户id
|
||||||
|
redisUtil.set(token + ":userName", user.getUserName(), 86400);
|
||||||
|
redisUtil.set(token + ":userId", String.valueOf(user.getId()), 86400);
|
||||||
|
redisUtil.set(token + ":tenantId", String.valueOf(user.getTenantId()), 86400);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response.responseData(UserInfoVO.builder()
|
||||||
|
.id(user.getId())
|
||||||
|
.token(token)
|
||||||
|
.expire(1694757956L)
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Response<UserInfoVO> loginNoCode(AccountLoginDTO accountLoginDto){
|
||||||
|
|
||||||
|
var password = "";
|
||||||
|
try {
|
||||||
|
password = CryptoUtils.decryptSymmetrically(SecurityConstants.LOGIN_SECURITY_KEY, null,
|
||||||
|
accountLoginDto.getPassword(), CryptoUtils.Algorithm.Encryption.AES_ECB_PKCS5);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("密码解密失败: " + e.getMessage());
|
||||||
|
return Response.responseMsg(UserCodeEnum.USERNAME_OR_PASSWORD_ERROR);
|
||||||
|
}
|
||||||
|
var user = lambdaQuery()
|
||||||
|
.eq(SysUser::getUserName, accountLoginDto.getUsername())
|
||||||
|
.eq(SysUser::getPassword, CommonTools.md5Encryp(password))
|
||||||
|
.one();
|
||||||
|
|
||||||
|
if (user == null) {
|
||||||
|
return Response.responseMsg(UserCodeEnum.USERNAME_OR_PASSWORD_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (user.getStatus() == UserConstants.USER_STATUS_DISABLE) {
|
||||||
|
return Response.responseMsg(UserCodeEnum.USER_ACCOUNT_FREEZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (user.getDeleteFlag() == CommonConstants.DELETED) {
|
||||||
|
return Response.responseMsg(UserCodeEnum.USER_ACCOUNT_INVALID);
|
||||||
|
}
|
||||||
|
// Check user tenant expiration skip admin
|
||||||
|
var tenant = tenantMapper.selectById(user.getTenantId());
|
||||||
|
if (!"admin".equals(accountLoginDto.getUsername()) && tenant != null && tenant.getExpireTime().isBefore(LocalDateTime.now())) {
|
||||||
return Response.responseMsg(TenantCodeEnum.TENANT_EXPIRED);
|
return Response.responseMsg(TenantCodeEnum.TENANT_EXPIRED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue