密码登录优化
This commit is contained in:
parent
877307a77e
commit
0964356f2f
|
@ -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)) {
|
||||||
|
|
|
@ -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)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -116,6 +116,11 @@ public class SysUserVo implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 干预状态
|
||||||
|
*/
|
||||||
|
private Integer interveneStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue