package com.bcxin.survey.service;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.bcxin.survey.dao.log.SMSLogDao;
import com.bcxin.survey.domain.log.SMSLog;
import com.bcxin.survey.utils.DictConst;
import com.bcxin.survey.utils.EmailUtil;
import com.bcxin.survey.utils.StringUtil;
import com.bcxin.survey.utils.sms.HuaWeiSmsContent;
import com.bcxin.survey.utils.sms.SMSUtil;
import com.bcxin.survey.vo.EmailModel;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.concurrent.Future;
/**
* 发送通知service
*
* @author aluo
*
*/
@Service
@Transactional
public class NotifyServiceImpl implements NotifyService {
/**
* 有效手机号长度
*/
private final static int VALIDATE_PHONE_LENGTH = 11;
@Resource
private SMSLogDao smsLogDao;
@Resource
private SMSUtil smsUtil;
/**
* 发送短信服务
* Function
*
* @param phone
* @param params
* @author LuoPeng
* @date 2019年06月04日 下午1:09:46
* @注意事项
*
*/
@Override
public void sendHuaWeiSMS(String phone,String content,String platform,String smsCode, String[] params) {
if (StringUtil.isEmpty(phone)) {
return ;
}
if (phone.length() != VALIDATE_PHONE_LENGTH) {
return ;
}
if (!StringUtil.isInteger(phone)) {
return ;
}
HuaWeiSmsContent huaWeiSmsContent = new HuaWeiSmsContent();
huaWeiSmsContent.setPlatform(platform);
huaWeiSmsContent.setSmsCode(smsCode);
huaWeiSmsContent.setMobile(phone);
huaWeiSmsContent.setParams(JSON.toJSONString(params));
Future result = smsUtil.sendHuaWeiSMS(huaWeiSmsContent);
content = StrUtil.format(content,params);
try {
if (result.get()) {
smsInstance(phone, content, DictConst.Y);
} else {
smsInstance(phone, content, DictConst.N);
}
} catch (Exception e) {
System.out.println("短信日志记录失败,手机号:{"+phone+"},短信内容:{"+content+"}" );
}
}
//@Override
//public boolean sendMessage(MessageModel model){
// if (model == null) {
// return false;
// }
// if (StringUtil.isEmpty(model.getTo())) {
// return false;
// }
// if (model.getTo().length() != VALIDATE_PHONE_LENGTH) {
// return false;
// }
// if (!StringUtil.isInteger(model.getTo())) {
// return false;
// }
// Future result = SMSUtil.sendSMS(model.getTo(), model.getContent());
// try {
// if (result.get()) {
// smsInstance(model.getTo(), model.getContent(), DictConst.Y);
// } else {
// smsInstance(model.getTo(), model.getContent(), DictConst.N);
// }
// } catch (Exception e) {
// System.out.println("短信日志记录失败,手机号:【" + model.getTo() + "】,短信内容:【" + model.getContent() + "】");
// }
//
// return true;
//}
private void smsInstance(String to, String content, String status) {
SMSLog smsLog = new SMSLog();
smsLog.setContent(content);
smsLog.setPhone(to);
smsLog.setSuccess(status);
smsLog.setCreateOn(new Date());
smsLog.setUpdateOn(new Date());
smsLogDao.save(smsLog);
}
@Override
public void sendEmail(EmailModel model) {
if ( StringUtil.isEmpty(model.getTo()) ) {
return;
}
EmailUtil emailUtil = new EmailUtil();
emailUtil.sendEmail(model.getSubject(), model.getContent(),model.getTo(), null);
}
}