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

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.common.constant.SmsCode;
import com.subsidy.common.exception.HttpException;
import com.subsidy.mapper.AdministerMapper;
import com.subsidy.model.AdministerDO;
import com.subsidy.model.SmsVerifyCodeDO;
import com.subsidy.mapper.SmsVerifyCodeMapper;
import com.subsidy.service.SmsVerifyCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.util.RandomUtil;
import com.subsidy.util.SMSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

    @Autowired
    private AdministerMapper administerMapper;


    @Override
    public void sendAdministerLoginCode(AdministerDO administerDO) {
        AdministerDO administer = administerMapper.selectOne(new QueryWrapper<AdministerDO>()
                .lambda()
                .eq(AdministerDO::getTelephone, administerDO.getTelephone()));
        if (administer == null) {
            throw new HttpException(10009);
        }

        String verifyCode = RandomUtil.getRandomCode(6);
        String param = "{ \"code\":\"" + verifyCode + "\"}";
        SMSUtils.sendVerifySMS(ConstantUtils.TEMPLATE_CODE, administerDO.getTelephone(), param);

        //插入短信验证码
        this.baseMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
                .lambda()
                .eq(SmsVerifyCodeDO::getTelephone, administer.getTelephone()));

        SmsVerifyCodeDO smsCodeDO = new SmsVerifyCodeDO();
        smsCodeDO.setTelephone(administerDO.getTelephone());
        smsCodeDO.setVerifyCode(verifyCode);
        this.baseMapper.insert(smsCodeDO);

    }

}