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

This commit is contained in:
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

@ -0,0 +1,70 @@
package cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.util.Date;
/**
* 会员中心的用户 DO
*
* uk_mobile 索引:基于 {@link #mobile} 字段
*
* @author 芋道源码
*/
@TableName(value = "mbr_user", autoResultMap = true)
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MbrUserDO extends BaseDO {
/**
* 用户ID
*/
@TableId
private Long id;
/**
* 用户昵称
*/
private String nickname;
/**
* 用户头像
*/
private String avatar;
/**
* 帐号状态
*
* 枚举 {@link CommonStatusEnum}
*/
private Integer status;
/**
* 手机
*/
private String mobile;
/**
* 加密后的密码
*
* 因为目前使用 {@link BCryptPasswordEncoder} 加密器,所以无需自己处理 salt 盐
*/
private String password;
/**
* 注册 IP
*/
private String registerIp;
/**
* 最后登录IP
*/
private String loginIp;
/**
* 最后登录时间
*/
private Date loginDate;
}

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.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.user.SysUserDO;
import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;
@ -41,6 +43,8 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
@Resource
private SysUserCoreService sysUserCoreService;
@Resource
private MbrUserCoreService mbrUserCoreService;
@Resource
private SysSmsTemplateCoreService smsTemplateCoreService;
@Resource
private SysSmsLogCoreService smsLogCoreService;
@ -66,7 +70,15 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
@Override
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