密码登录优化

This commit is contained in:
cjw 2024-11-14 17:50:10 +08:00
parent 877307a77e
commit 0964356f2f
6 changed files with 34 additions and 17 deletions

View File

@ -3,6 +3,7 @@ package org.dromara.web.service.impl;
import cn.dev33.satoken.secure.BCrypt;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -109,6 +110,20 @@ public class PasswordAuthStrategy implements IAuthStrategy {
}
private SysUserVo loadUserByUsername(String tenantId, String username) {
boolean isMobile = Validator.isMobile(username);
if (isMobile) {
return TenantHelper.ignore(() -> {
SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, username));
if (ObjectUtil.isNull(user)) {
log.info("登录用户:{} 不存在.", username);
throw new UserException("user.not.exists", username);
} else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
log.info("登录用户:{} 已被停用.", username);
throw new UserException("user.blocked", username);
}
return user;
});
}
return TenantHelper.dynamic(tenantId, () -> {
SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, username));
if (ObjectUtil.isNull(user)) {

View File

@ -48,7 +48,7 @@ public class WxEvaluationController extends BaseController {
*/
@GetMapping("/answer/{id}")
public R<List<QuestionAnswerVo>> queryAnswer(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID,() -> evaluationService.queryQuestionAnswerListByScaleId(id)));
return R.ok(TenantHelper.ignore(() -> evaluationService.queryQuestionAnswerListByScaleId(id)));
}
@ -69,7 +69,7 @@ public class WxEvaluationController extends BaseController {
@RepeatSubmit()
@PostMapping("/record/{id}")
public R<Void> checkRecord(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return toAjax(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID,() -> evaluationService.checkRecord(id)));
return toAjax(TenantHelper.ignore(() -> evaluationService.checkRecord(id)));
}
/**
@ -79,6 +79,6 @@ public class WxEvaluationController extends BaseController {
@RepeatSubmit()
@PostMapping("/record/answer")
public R<Map<String, Object>> add(@Validated(AddGroup.class) @RequestBody SubmitAnswerBo bo) {
return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID,() -> evaluationService.submitAnswer(bo)));
return R.ok(TenantHelper.ignore(() -> evaluationService.submitAnswer(bo)));
}
}

View File

@ -110,6 +110,11 @@ public class SysUser extends TenantEntity {
*/
private String remark;
/**
* 干预状态
*/
private Integer interveneStatus;
public SysUser(Long userId) {
this.userId = userId;

View File

@ -116,6 +116,11 @@ public class SysUserVo implements Serializable {
*/
private String remark;
/**
* 干预状态
*/
private Integer interveneStatus;
/**
* 创建时间
*/

View File

@ -28,7 +28,6 @@ import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StopWatch;
import java.util.*;
@ -280,8 +279,6 @@ public class SysTenantServiceImpl implements ISysTenantService {
List<SysScaleAnswer> allAnswerList = new ArrayList<>();
List<SysScaleFactor> allFactorList = new ArrayList<>();
List<SysScaleFactorRange> allRangeList = new ArrayList<>();
StopWatch stopWatch = new StopWatch();
stopWatch.start();
for (SysScale sysScale : allScaleList) {
Long oldScaleId = sysScale.getScaleId();
Long newScaleId = identifierGenerator.nextId(SysScale.class).longValue();
@ -305,7 +302,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
List<SysScaleAnswer> answerList = answerMapper.selectList(new LambdaQueryWrapper<SysScaleAnswer>()
.eq(SysScaleAnswer::getTenantId, TenantConstants.DEFAULT_TENANT_ID)
.eq(SysScaleAnswer::getScaleId, oldScaleId)
.eq(SysScaleAnswer::getAnswerId, oldQuestionId));
.eq(SysScaleAnswer::getQuestionId, oldQuestionId));
for (SysScaleAnswer answer : answerList) {
Long newAnswerId = identifierGenerator.nextId(SysScaleAnswer.class).longValue();
answer.setAnswerId(newAnswerId);
@ -348,16 +345,11 @@ public class SysTenantServiceImpl implements ISysTenantService {
}
allFactorList.addAll(factorList);
}
stopWatch.stop();
log.info("处理所有量表用时{} 秒", stopWatch.getTotalTimeSeconds());
stopWatch.start();
scaleMapper.insertBatch(allScaleList, 500);
questionMapper.insertBatch(allQuestionList, 500);
answerMapper.insertBatch(allAnswerList, 500);
factorMapper.insertBatch(allFactorList, 500);
rangeMapper.insertBatch(allRangeList, 500);
stopWatch.stop();
log.info("入库所有量表用时{} 秒", stopWatch.getTotalTimeSeconds());
}
/**