package com.zy.crm.manager.service.impl; import com.core.common.R; import com.zy.crm.manager.mapper.SmsCodeMapper; import com.zy.crm.manager.entity.SmsCode; import com.zy.crm.manager.service.SmsCodeService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.zy.crm.manager.utils.SmsUtils; import org.springframework.stereotype.Service; import java.util.Date; @Service("smsCodeService") public class SmsCodeServiceImpl extends ServiceImpl implements SmsCodeService { @Override public SmsCode selectByPhone(String phone) { return this.baseMapper.selectByPhone(phone); } @Override public boolean sendSmsCode(String phone) { String randomNum = SmsUtils.getRandomNum(6);//获取六位随机数 SmsCode smsCode = new SmsCode(); smsCode.setPhone(phone); smsCode.setCode(randomNum); smsCode.setStatus(0); smsCode.setCreateTime(new Date()); if (this.baseMapper.insert(smsCode) <= 0) { return false; } boolean sendSmsCode = SmsUtils.sendSmsCode(phone, smsCode.getCode()); if (!sendSmsCode) { return false; } smsCode.setSendTime(new Date()); smsCode.setStatus(1); this.baseMapper.updateById(smsCode); return true; } @Override public boolean verifySmsCode(String phone, String code) { SmsCode smsCode1 = this.baseMapper.selectByPhone(phone); if (smsCode1 == null) { return false; } long createTime = smsCode1.getCreateTime().getTime(); long nowTime = new Date().getTime(); long diff = nowTime - createTime; if (diff > (60000 * 5)) {//短信时间超过五分钟,已失效 return false; } if (smsCode1.getStatus() == 2) { return false;//短信已被使用 } smsCode1.setStatus(2); smsCode1.setUseTime(new Date()); this.baseMapper.updateById(smsCode1); return true; } }