前台用户,接入发送短信验证码

pull/2/head
YunaiV 2021-10-12 08:44:24 +08:00
parent 8e2388d52d
commit d68ced8de4
15 changed files with 110 additions and 14 deletions

View File

@ -0,0 +1,6 @@
/**
* POJO
*
* 使 MapStruct
*/
package cn.iocoder.yudao.coreservice.modules.member.convert;

View File

@ -1,4 +1,4 @@
package cn.iocoder.yudao.userserver.modules.member.dal.dataobject.user; package cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

View File

@ -0,0 +1,10 @@
package cn.iocoder.yudao.coreservice.modules.member.dal.mysql.user;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface MbrUserCoreMapper extends BaseMapperX<MbrUserDO> {
}

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.coreservice.modules.member.service.user;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
/**
* Core Service
*
* @author
*/
public interface MbrUserCoreService {
/**
* ID
*
* @param id ID
* @return
*/
MbrUserDO getUser(Long id);
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.coreservice.modules.member.service.user.impl;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.coreservice.modules.member.dal.mysql.user.MbrUserCoreMapper;
import cn.iocoder.yudao.coreservice.modules.member.service.user.MbrUserCoreService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* User Core Service
*
* @author
*/
@Service
@Slf4j
public class MbrUserCoreServiceImpl implements MbrUserCoreService {
@Resource
private MbrUserCoreMapper userCoreMapper;
@Override
public MbrUserDO getUser(Long id) {
return userCoreMapper.selectById(id);
}
}

View File

@ -2,6 +2,8 @@ package cn.iocoder.yudao.coreservice.modules.system.service.sms.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.coreservice.modules.member.service.user.MbrUserCoreService;
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO; import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage; import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;
@ -41,6 +43,8 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
@Resource @Resource
private SysUserCoreService sysUserCoreService; private SysUserCoreService sysUserCoreService;
@Resource @Resource
private MbrUserCoreService mbrUserCoreService;
@Resource
private SysSmsTemplateCoreService smsTemplateCoreService; private SysSmsTemplateCoreService smsTemplateCoreService;
@Resource @Resource
private SysSmsLogCoreService smsLogCoreService; private SysSmsLogCoreService smsLogCoreService;
@ -66,7 +70,15 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
@Override @Override
public Long sendSingleSmsToMember(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) { public Long sendSingleSmsToMember(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) {
throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!"); // 如果 mobile 为空,则加载用户编号对应的手机号
if (StrUtil.isEmpty(mobile)) {
MbrUserDO user = mbrUserCoreService.getUser(userId);
if (user != null) {
mobile = user.getMobile();
}
}
// 执行发送
return this.sendSingleSms(mobile, userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams);
} }
@Override @Override

View File

@ -1,7 +1,7 @@
package cn.iocoder.yudao.userserver.modules.member.dal.mysql.user; package cn.iocoder.yudao.userserver.modules.member.dal.mysql.user;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.userserver.modules.member.dal.dataobject.user.MbrUserDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**

View File

@ -1,7 +1,7 @@
package cn.iocoder.yudao.userserver.modules.member.service.user; package cn.iocoder.yudao.userserver.modules.member.service.user;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.framework.common.validation.Mobile; import cn.iocoder.yudao.framework.common.validation.Mobile;
import cn.iocoder.yudao.userserver.modules.member.dal.dataobject.user.MbrUserDO;
/** /**
* Service * Service

View File

@ -1,10 +1,8 @@
package cn.iocoder.yudao.userserver.modules.member.service.user.impl; package cn.iocoder.yudao.userserver.modules.member.service.user.impl;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil; import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.userserver.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.userserver.modules.member.dal.mysql.user.MbrUserMapper; import cn.iocoder.yudao.userserver.modules.member.dal.mysql.user.MbrUserMapper;
import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService; import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -12,7 +12,7 @@ POST {{userServerUrl}}/send-sms-code
Content-Type: application/json Content-Type: application/json
{ {
"mobile": "15601691301", "mobile": "15601691399",
"scene": 1 "scene": 1
} }

View File

@ -1,8 +1,8 @@
package cn.iocoder.yudao.userserver.modules.system.convert.auth; package cn.iocoder.yudao.userserver.modules.system.convert.auth;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.userserver.modules.member.dal.dataobject.user.MbrUserDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;

View File

@ -0,0 +1,15 @@
package cn.iocoder.yudao.userserver.modules.system.enums.sms;
/**
* yudao-user-server 使 Code
*
* @author
*/
public interface SysSmsTemplateCodeConstants {
/**
*
*/
String USER_SMS_LOGIN = "user-sms-login";
}

View File

@ -1,6 +1,9 @@
package cn.iocoder.yudao.userserver.modules.system.service.auth.impl; package cn.iocoder.yudao.userserver.modules.system.service.auth.impl;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginLogTypeEnum;
import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginResultEnum;
import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService; import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService; import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;
import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO; import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;
@ -9,15 +12,12 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService;
import cn.iocoder.yudao.userserver.modules.system.controller.auth.vo.SysAuthLoginReqVO; import cn.iocoder.yudao.userserver.modules.system.controller.auth.vo.SysAuthLoginReqVO;
import cn.iocoder.yudao.userserver.modules.system.controller.auth.vo.SysAuthSmsLoginReqVO; import cn.iocoder.yudao.userserver.modules.system.controller.auth.vo.SysAuthSmsLoginReqVO;
import cn.iocoder.yudao.userserver.modules.system.convert.auth.SysAuthConvert; import cn.iocoder.yudao.userserver.modules.system.convert.auth.SysAuthConvert;
import cn.iocoder.yudao.userserver.modules.member.dal.dataobject.user.MbrUserDO;
import cn.iocoder.yudao.userserver.modules.system.enums.sms.SysSmsSceneEnum; import cn.iocoder.yudao.userserver.modules.system.enums.sms.SysSmsSceneEnum;
import cn.iocoder.yudao.userserver.modules.system.service.auth.SysAuthService; import cn.iocoder.yudao.userserver.modules.system.service.auth.SysAuthService;
import cn.iocoder.yudao.userserver.modules.member.service.user.MbrUserService;
import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginLogTypeEnum;
import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginResultEnum;
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService; import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;

View File

@ -1,7 +1,10 @@
package cn.iocoder.yudao.userserver.modules.system.service.sms.impl; package cn.iocoder.yudao.userserver.modules.system.service.sms.impl;
import cn.hutool.core.map.MapUtil;
import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService;
import cn.iocoder.yudao.userserver.modules.system.dal.dataobject.sms.SysSmsCodeDO; import cn.iocoder.yudao.userserver.modules.system.dal.dataobject.sms.SysSmsCodeDO;
import cn.iocoder.yudao.userserver.modules.system.dal.mysql.sms.SysSmsCodeMapper; import cn.iocoder.yudao.userserver.modules.system.dal.mysql.sms.SysSmsCodeMapper;
import cn.iocoder.yudao.userserver.modules.system.enums.sms.SysSmsTemplateCodeConstants;
import cn.iocoder.yudao.userserver.modules.system.framework.sms.SmsCodeProperties; import cn.iocoder.yudao.userserver.modules.system.framework.sms.SmsCodeProperties;
import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService; import cn.iocoder.yudao.userserver.modules.system.service.sms.SysSmsCodeService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -29,12 +32,16 @@ public class SysSmsCodeServiceImpl implements SysSmsCodeService {
@Resource @Resource
private SysSmsCodeMapper smsCodeMapper; private SysSmsCodeMapper smsCodeMapper;
@Resource
private SysSmsCoreService smsCoreService;
@Override @Override
public void sendSmsCode(String mobile, Integer scene, String createIp) { public void sendSmsCode(String mobile, Integer scene, String createIp) {
// 创建验证码 // 创建验证码
String code = this.createSmsCode(mobile, scene, createIp); String code = this.createSmsCode(mobile, scene, createIp);
// 发送验证码 // 发送验证码
// TODO 芋艿:重要,发送短信验证码 smsCoreService.sendSingleSmsToMember(mobile, null, SysSmsTemplateCodeConstants.USER_SMS_LOGIN,
MapUtil.of("code", code));
} }
private String createSmsCode(String mobile, Integer scene, String ip) { private String createSmsCode(String mobile, Integer scene, String ip) {