package com.szwl.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.szwl.model.entity.TMessageCode;
import com.szwl.mapper.TMessageCodeMapper;
import com.szwl.model.utils.MailUtil;
import com.szwl.model.utils.SampleMail;
import com.szwl.model.utils.YunPianSms;
import com.szwl.service.TMessageCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang.StringUtils;
import org.elasticsearch.cluster.routing.RerouteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
*
* 短信验证码 服务实现类
*
*
* @author wuhs
* @since 2022-04-14
*/
@Service
public class TMessageCodeServiceImpl extends ServiceImpl implements TMessageCodeService {
@Autowired
TMessageCodeMapper tMessageCodeMapper;
private static final String appid = "07784f5fedb508046c841b391005b7de";
/*
* 发送短信验证码
* */
@Override
public String sentMessage(String type, String phone, String companyType) {
String result = null;
String retu = null;
try {
String code = addCode();
result = YunPianSms.sendSms(appid, getMessage(companyType, code), phone);
JSONObject sult = JSONObject.parseObject(result);
Object msg = sult.get("msg");
Object mobile = sult.get("mobile");
retu = msg+":" + phone;
if(mobile!=null){
TMessageCode tMessageCode = new TMessageCode();
tMessageCode.setType(type);
tMessageCode.setCode(code);
tMessageCode.setPhone(phone);
tMessageCode.setModifyDate(new Date());
tMessageCode.setCreateDate(new Date());
tMessageCode.setStatus("0");
int insert = tMessageCodeMapper.insert(tMessageCode);
}
int a= 0;
} catch (Exception e) {
}
return retu;
}
/*
* 发送邮箱验证码
* */
@Override
public String sentEmail(String type, String email) {
String code = addCode();
// String subject = "Verification code message";
String subject =getSubject(type);
String contnet = "";
contnet = getContnet(type,code);
new MailUtil().send(email,subject,contnet);
TMessageCode tMessageCode = new TMessageCode();
tMessageCode.setType(type);
tMessageCode.setCode(code);
tMessageCode.setPhone(email);
tMessageCode.setModifyDate(new Date());
tMessageCode.setCreateDate(new Date());
tMessageCode.setStatus("0");
tMessageCodeMapper.insert(tMessageCode);
return "发送成功";
}
@Override
public String sendEmailAbroad(String type, String email) {
String code = addCode();
String contnet = "";
contnet = getContnet(type,code);
new SampleMail().sendAuthCode(email, contnet);
TMessageCode tMessageCode = new TMessageCode();
tMessageCode.setType(type);
tMessageCode.setCode(code);
tMessageCode.setPhone(email);
tMessageCode.setModifyDate(new Date());
tMessageCode.setCreateDate(new Date());
tMessageCode.setStatus("0");
tMessageCodeMapper.insert(tMessageCode);
return "Send Success";
}
@Override
public Date getLastSendTime(String phoneOrEmail) {
if (StringUtils.isEmpty(phoneOrEmail)) {
return null;
}
Date lastSendTime = tMessageCodeMapper.getLastSendTimeByEmailOrPhone(phoneOrEmail);
return lastSendTime != null ? lastSendTime : new Date(0);
}
//邮件标题
private String getSubject(String type) {
String subject = "";
if(type.equals("0")||type.equals("1")){
subject = "Verification code message";
}
return subject;
}
//邮件内容
private String getContnet(String type, String code) {
StringBuffer contnet = new StringBuffer();
if(type.equals("0")||type.equals("1")){
String str1="Dear customer
" +
"
" +
"Hello, your verification code is: ";
// String str2=",please enter it within 3 minutes.";
contnet.append(str1).append(code);
}
return contnet.toString();
}
//生成6位随机数字
private String addCode() {
int code = (int) ((Math.random() * 9 + 1) * 100000);
String retu = String.valueOf(code);
return retu;
}
private String getMessage(String companyType, String code) {
String message = "";
if(StringUtils.isNotEmpty(companyType)&&companyType.equals("0")){
message = "【申泽智能】您好,您的验证码是"+code+",请于3分钟内输入。";
}
if(StringUtils.isNotEmpty(companyType)&&companyType.equals("1")){
message = "【七云科技】您好,您的验证码是"+code+",请于3分钟内输入。";
}
return message;
}
}