This commit is contained in:
张良(004796)
2024-01-23 17:08:49 +08:00
parent 434555e744
commit 17895469ee
8 changed files with 96 additions and 20 deletions

View File

@@ -2,8 +2,9 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.Adolescent;
import com.ruoyi.cai.dto.app.query.user.AdolescentSetting;
import com.ruoyi.cai.dto.app.query.user.AdolescentSwitch;
import com.ruoyi.cai.dto.app.query.user.AdolescentSettingReq;
import com.ruoyi.cai.dto.app.query.user.AdolescentSmsCheckReq;
import com.ruoyi.cai.dto.app.query.user.AdolescentSwitchReq;
/**
* 青少年模式Service接口
@@ -12,10 +13,11 @@ import com.ruoyi.cai.dto.app.query.user.AdolescentSwitch;
* @date 2024-01-23
*/
public interface AdolescentService extends IService<Adolescent> {
void setAdolescent(AdolescentSetting setting);
void setAdolescent(AdolescentSettingReq setting);
Adolescent getByUserId(Long userId);
void switchAdolescent(AdolescentSwitch adolescentSwitch);
void switchAdolescent(AdolescentSwitchReq adolescentSwitchReq);
void verifyMobileCode(AdolescentSmsCheckReq req);
}

View File

@@ -4,14 +4,18 @@ import cn.dev33.satoken.secure.BCrypt;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.Adolescent;
import com.ruoyi.cai.dto.app.query.user.AdolescentSetting;
import com.ruoyi.cai.dto.app.query.user.AdolescentSwitch;
import com.ruoyi.cai.dto.app.query.user.AdolescentSettingReq;
import com.ruoyi.cai.dto.app.query.user.AdolescentSmsCheckReq;
import com.ruoyi.cai.dto.app.query.user.AdolescentSwitchReq;
import com.ruoyi.cai.enums.CodeEnum;
import com.ruoyi.cai.mapper.AdolescentMapper;
import com.ruoyi.cai.service.AdolescentService;
import com.ruoyi.cai.service.SmsVerifyService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.concurrent.locks.ReentrantLock;
@@ -26,10 +30,12 @@ import java.util.concurrent.locks.ReentrantLock;
@Service
public class AdolescentServiceImpl extends ServiceImpl<AdolescentMapper,Adolescent> implements AdolescentService {
@Autowired
private SmsVerifyService smsVerifyService;
@Override
public void setAdolescent(AdolescentSetting setting) {
public void setAdolescent(AdolescentSettingReq setting) {
if(StringUtils.isEmpty(setting.getPassword())){
throw new ServiceException("密码不能为空");
}
@@ -55,21 +61,31 @@ public class AdolescentServiceImpl extends ServiceImpl<AdolescentMapper,Adolesce
}
@Override
public void switchAdolescent(AdolescentSwitch adolescentSwitch) {
if(adolescentSwitch.getIsOpen() == null) {
public void switchAdolescent(AdolescentSwitchReq adolescentSwitchReq) {
if(adolescentSwitchReq.getIsOpen() == null) {
throw new ServiceException("参数不正确");
}else if(adolescentSwitch.getIsOpen() != 0 && adolescentSwitch.getIsOpen() != 1){
}else if(adolescentSwitchReq.getIsOpen() != 0 && adolescentSwitchReq.getIsOpen() != 1){
throw new ServiceException("参数不正确");
}
Adolescent adolescent = this.getByUserId(LoginHelper.getUserId());
if(adolescent == null || !BCrypt.checkpw(adolescentSwitch.getPassword(), adolescent.getPassword())){
if(adolescent == null || !BCrypt.checkpw(adolescentSwitchReq.getPassword(), adolescent.getPassword())){
throw new ServiceException("密码错误");
}
if(adolescentSwitch.getIsOpen() == 0){
if(adolescentSwitchReq.getIsOpen() == 0){
this.removeById(adolescent);
}else {
adolescent.setOpen(1);
this.updateById(adolescent);
}
}
@Override
public void verifyMobileCode(AdolescentSmsCheckReq req) {
boolean check = smsVerifyService.check(CodeEnum.RESET_ADOLESCENT, req.getMobile(), req.getCode());
if(!check){
throw new ServiceException("验证码错误");
}
Long userId = LoginHelper.getUserId();
this.remove(Wrappers.lambdaQuery(Adolescent.class).eq(Adolescent::getUserId,userId));
}
}

View File

@@ -85,6 +85,12 @@ public class SmsVerifyServiceImpl extends ServiceImpl<SmsVerifyMapper,SmsVerify>
if(count == 0){
throw new ServiceException("手机号未注册!");
}
}else if(codeEnum == CodeEnum.RESET_ADOLESCENT){
long count = userService.count(Wrappers.lambdaQuery(User.class)
.eq(User::getMobile, mobile));
if(count == 0){
throw new ServiceException("手机号未注册!");
}
}
LocalDateTime now = LocalDateTime.now();
SmsVerify one = this.getOne(Wrappers.lambdaQuery(SmsVerify.class)