package com.nq.service.impl; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; import com.nq.common.ServerResponse; import com.nq.dao.SiteSmsLogMapper; import com.nq.pojo.SiteSmsLog; import com.nq.service.ISmsService; import com.nq.utils.DateTimeUtil; import com.nq.utils.redis.RedisShardedPoolUtils; import com.nq.utils.sms.ali.AliyunSms; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @Service("iSmsService") public class SmsServiceImpl implements ISmsService { private static final Logger log = LoggerFactory.getLogger(SmsServiceImpl.class); @Resource SiteSmsLogMapper siteSmsLogMapper; public ServerResponse sendAliyunSMS(String phoneNum, String ali_template) { System.out.println(phoneNum); if (StringUtils.isBlank(phoneNum)) return ServerResponse.createByErrorMsg("发送失败,手机号不能为空","en"); String yzmCode = RandomStringUtils.randomNumeric(4); System.out.println("验证码:" + yzmCode); SendSmsResponse response = null; try { response = AliyunSms.sendSms(phoneNum, "鸿鹄", ali_template, yzmCode); } catch (Exception e) { log.error("发送短信异常:{}", e); } System.out.println("短信接口返回的数据----------------"); System.out.println("Code=" + response.getCode()); System.out.println("Message=" + response.getMessage()); System.out.println("RequestId=" + response.getRequestId()); System.out.println("BizId=" + response.getBizId()); if (response.getCode() != null && response.getCode().equals("OK")) { String keys = "AliyunSmsCode:" + phoneNum; RedisShardedPoolUtils.setEx(keys, yzmCode, 5400); SiteSmsLog siteSmsLog = new SiteSmsLog(); siteSmsLog.setSmsPhone(phoneNum); siteSmsLog.setSmsTitle("注册验证码"); siteSmsLog.setSmsCnt(yzmCode); siteSmsLog.setSmsTemplate(ali_template); siteSmsLog.setSmsStatus(Integer.valueOf(0)); siteSmsLog.setAddTime(DateTimeUtil.getCurrentDate()); this.siteSmsLogMapper.insert(siteSmsLog); return ServerResponse.createBySuccessMsg("发送成功","en"); } return ServerResponse.createByErrorMsg("短信发送失败,请重试","en"); } }