SmsVerifyCodeServiceImpl.java 1.8 KB
package com.subsidy.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.common.RedisPrefixConstant;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.sms.SendVerifyCodeDTO;
import com.subsidy.mapper.MemberMapper;
import com.subsidy.mapper.SmsVerifyCodeMapper;
import com.subsidy.model.MemberDO;
import com.subsidy.model.SmsVerifyCodeDO;
import com.subsidy.service.SmsVerifyCodeService;
import com.subsidy.util.RandomUtil;
import com.subsidy.util.RedisUtil;
import com.subsidy.util.SMSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 短信验证码记录表 服务实现类
 * </p>
 *
 * @author DengMin
 * @since 2021-10-14
 */
@Service
public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, SmsVerifyCodeDO> implements SmsVerifyCodeService {

    @Autowired
    private SMSUtils smsUtils;

    @Autowired
    private MemberMapper memberMapper;

    @Autowired
    private RedisUtil redisUtil;

    public void sendVerifyCode(SendVerifyCodeDTO sendVerifyCodeDTO) {
        MemberDO memberDO = memberMapper.selectOne(new QueryWrapper<MemberDO>()
                .lambda()
                .eq(MemberDO::getTelephone, sendVerifyCodeDTO.getTelephone()));
        if (memberDO == null) {
            throw new HttpException(70012);
        }

        String code = RandomUtil.getRandomCode(6);
        smsUtils.send(sendVerifyCodeDTO.getTelephone(), code);
        /**
         * 验证码存在redis
         */
        redisUtil.set(RedisPrefixConstant.SUBSIDY_TELEPHONE_PREFIX + sendVerifyCodeDTO.getTelephone(), code, 30 * 60);
    }

}