mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	前台用户,接入发送短信验证码
This commit is contained in:
		@@ -1,70 +0,0 @@
 | 
			
		||||
package cn.iocoder.yudao.userserver.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;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
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.userserver.modules.member.dal.dataobject.user.MbrUserDO;
 | 
			
		||||
import org.apache.ibatis.annotations.Mapper;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
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.userserver.modules.member.dal.dataobject.user.MbrUserDO;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 前台用户 Service 接口
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,8 @@
 | 
			
		||||
package cn.iocoder.yudao.userserver.modules.member.service.user.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.IdUtil;
 | 
			
		||||
import cn.hutool.core.util.RandomUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user.MbrUserDO;
 | 
			
		||||
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.service.user.MbrUserService;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ POST {{userServerUrl}}/send-sms-code
 | 
			
		||||
Content-Type: application/json
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  "mobile": "15601691301",
 | 
			
		||||
  "mobile": "15601691399",
 | 
			
		||||
  "scene": 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
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.security.core.LoginUser;
 | 
			
		||||
import cn.iocoder.yudao.userserver.modules.member.dal.dataobject.user.MbrUserDO;
 | 
			
		||||
import org.mapstruct.Mapper;
 | 
			
		||||
import org.mapstruct.Mapping;
 | 
			
		||||
import org.mapstruct.factory.Mappers;
 | 
			
		||||
 
 | 
			
		||||
@@ -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";
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,9 @@
 | 
			
		||||
package cn.iocoder.yudao.userserver.modules.system.service.auth.impl;
 | 
			
		||||
 | 
			
		||||
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.logger.SysLoginLogCoreService;
 | 
			
		||||
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.servlet.ServletUtils;
 | 
			
		||||
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.SysAuthSmsLoginReqVO;
 | 
			
		||||
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.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 lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.context.annotation.Lazy;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,10 @@
 | 
			
		||||
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.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.service.sms.SysSmsCodeService;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
@@ -29,12 +32,16 @@ public class SysSmsCodeServiceImpl implements SysSmsCodeService {
 | 
			
		||||
    @Resource
 | 
			
		||||
    private SysSmsCodeMapper smsCodeMapper;
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private SysSmsCoreService smsCoreService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void sendSmsCode(String mobile, Integer scene, String 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) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user