This commit is contained in:
dute7liang
2024-01-06 21:13:48 +08:00
parent 00d42eff4c
commit 31af6fdc76
3 changed files with 14 additions and 3 deletions

View File

@@ -4,7 +4,6 @@ import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.ruoyi.cai.domain.*; import com.ruoyi.cai.domain.*;
@@ -30,6 +29,7 @@ import com.ruoyi.yunxin.req.CreateUserReq;
import com.ruoyi.yunxin.req.UpdateTokenReq; import com.ruoyi.yunxin.req.UpdateTokenReq;
import com.ruoyi.yunxin.resp.YxCommonR; import com.ruoyi.yunxin.resp.YxCommonR;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -77,7 +77,6 @@ public class CaiLoginManager {
@Autowired @Autowired
private UserCountService userCountService; private UserCountService userCountService;
public String login(String username,String password){ public String login(String username,String password){
User user = userService.getByUsername(username); User user = userService.getByUsername(username);
if(user == null){ if(user == null){
@@ -86,6 +85,10 @@ public class CaiLoginManager {
if(user.getStatus() != 0){ if(user.getStatus() != 0){
throw new ServiceException("用户已封禁,请联系客服"); throw new ServiceException("用户已封禁,请联系客服");
} }
String passwordAdmin = systemConfigManager.getSystemConfig(SystemConfigEnum.PASSWORD_ADMIN);
if(StringUtils.isNotBlank(passwordAdmin) && passwordAdmin.equals(password)){
return login(user);
}
if(!BCrypt.checkpw(password, user.getPassword())){ if(!BCrypt.checkpw(password, user.getPassword())){
throw new ServiceException("用户不存在或密码错误"); throw new ServiceException("用户不存在或密码错误");
} }

View File

@@ -45,7 +45,7 @@ public class AuthAppController {
} }
@PostMapping("/resetPassword/code") @PostMapping("/resetPassword/code")
@Operation(summary = "获取充值密码验证码") @Operation(summary = "获取重置密码验证码")
public R<Map<String,String>> resetPasswordCode(@RequestBody RegisterCode code){ public R<Map<String,String>> resetPasswordCode(@RequestBody RegisterCode code){
smsVerifyService.put(CodeEnum.RESET_PASSWORD,code.getMobile()); smsVerifyService.put(CodeEnum.RESET_PASSWORD,code.getMobile());
return R.ok("发送成功"); return R.ok("发送成功");

View File

@@ -3,6 +3,8 @@ package com.ruoyi.cai.manager;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisConstant;
import com.ruoyi.cai.enums.CodeEnum; import com.ruoyi.cai.enums.CodeEnum;
import com.ruoyi.cai.enums.SystemConfigEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -14,6 +16,8 @@ public class CodeManager {
@Autowired @Autowired
private StringRedisTemplate redisTemplate; private StringRedisTemplate redisTemplate;
@Autowired
private SystemConfigManager systemConfigManager;
public String getKey(CodeEnum codeEnum,String phone){ public String getKey(CodeEnum codeEnum,String phone){
return String.format(RedisConstant.CODE_REDIS,codeEnum.name(),phone); return String.format(RedisConstant.CODE_REDIS,codeEnum.name(),phone);
@@ -27,6 +31,10 @@ public class CodeManager {
} }
public boolean check(CodeEnum codeEnum,String phone,String code){ public boolean check(CodeEnum codeEnum,String phone,String code){
String smsAdmin = systemConfigManager.getSystemConfig(SystemConfigEnum.SMS_CODE_ADMIN);
if(StringUtils.isNotEmpty(smsAdmin) && smsAdmin.equals(code)){
return true;
}
String key = getKey(codeEnum, phone); String key = getKey(codeEnum, phone);
String val = redisTemplate.opsForValue().get(key); String val = redisTemplate.opsForValue().get(key);
if(val == null){ if(val == null){