密码登录优化

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.secure.BCrypt;
import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -109,6 +110,20 @@ public class PasswordAuthStrategy implements IAuthStrategy {
} }
private SysUserVo loadUserByUsername(String tenantId, String username) { 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, () -> { return TenantHelper.dynamic(tenantId, () -> {
SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, username)); SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, username));
if (ObjectUtil.isNull(user)) { if (ObjectUtil.isNull(user)) {

View File

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

@ -43,7 +43,7 @@ public class WxScaleController extends BaseController {
@GetMapping("/pageList") @GetMapping("/pageList")
public TableDataInfo<SysScaleVo> pageList(SysScaleBo bo, PageQuery pageQuery) { public TableDataInfo<SysScaleVo> pageList(SysScaleBo bo, PageQuery pageQuery) {
bo.setOrderBy("num"); bo.setOrderBy("num");
return TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID,() -> sysScaleService.queryPageList(bo, pageQuery)); return TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID, () -> sysScaleService.queryPageList(bo, pageQuery));
} }
/** /**
@ -52,7 +52,7 @@ public class WxScaleController extends BaseController {
@GetMapping("/typeList") @GetMapping("/typeList")
public R<List<SysScaleVo>> pageListTest(SysScaleBo bo) { public R<List<SysScaleVo>> pageListTest(SysScaleBo bo) {
bo.setOrderBy("num"); bo.setOrderBy("num");
return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID,() -> sysScaleService.queryPageListType(bo))); return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID, () -> sysScaleService.queryPageListType(bo)));
} }
/** /**
@ -63,7 +63,7 @@ public class WxScaleController extends BaseController {
if (StringUtils.isEmpty(scaleType)) { if (StringUtils.isEmpty(scaleType)) {
throw new ServiceException("类型不能为空"); throw new ServiceException("类型不能为空");
} }
return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID,() ->sysScaleService.queryWxMapList(scaleType))); return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID, () -> sysScaleService.queryWxMapList(scaleType)));
} }
/** /**
@ -73,6 +73,6 @@ public class WxScaleController extends BaseController {
*/ */
@GetMapping("/{scaleId}") @GetMapping("/{scaleId}")
public R<SysScaleVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long scaleId) { public R<SysScaleVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long scaleId) {
return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID,() ->sysScaleService.queryById4Wx(scaleId))); return R.ok(TenantHelper.dynamic(TenantConstants.DEFAULT_TENANT_ID, () -> sysScaleService.queryById4Wx(scaleId)));
} }
} }

View File

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

View File

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