Browse Source

[定时任务][修改][短信定时发送加入日志信息]

release_toaliyun_real
gongbiao 7 years ago
parent
commit
7f9eaaec74
1 changed files with 20 additions and 33 deletions
  1. +20
    -33
      mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java

+ 20
- 33
mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java View File

@@ -1,21 +1,24 @@
package com.iformall.schedule;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.iformall.domain.po.WxMsg;
import com.iformall.domain.po.WxMsgConfig;
import com.iformall.enums.EnumMsgSendStatus;
import com.iformall.enums.EnumMsgStatus;
import com.iformall.enums.EnumVerifyCode;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxMsgConfigMapper;
import com.iformall.mapper.WxMsgMapper;
import com.iformall.service.PushLimitService;
import com.iformall.utils.*;
import com.iformall.utils.DateUtils;
import com.iformall.utils.WiwideUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.*;
import java.util.List;

@Component
public class MsgSendingSchedule {
@@ -32,75 +35,59 @@ public class MsgSendingSchedule {
private PushLimitService pushLimitService;


@Scheduled(cron = "0 1 * * * ?") // 每小时第一分钟执行
@Scheduled(cron = "0 46 * * * ?") // 每小时第一分钟执行
public void sendmsgschedule() {

logger.info("sendmsg定时任务启动");

String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:00:00");
String systemTime = DateUtils.getSystemTime("yyyy-MM-dd 14:00:00");
WxMsg wxMsg = new WxMsg();
wxMsg.setIsright(0);
wxMsg.setSendtime(systemTime);
List<WxMsg> list = wxMsgMapper.findList(wxMsg);
logger.info("将要发送的短信列表:" + JSONArray.toJSONString(list));
for(WxMsg msg:list){
boolean checkTime = false;
try {
checkTime = pushLimitService.checkSendTime(wxMsg.getTenantId());
} catch (MallinkException e) {
logger.error(e.getMessage());
}
if (checkTime) {
sendmsg(msg);
}
sendmsg(msg);
}

logger.info("sendmsg定时任务结束");
}

public void sendmsg(WxMsg wxMsg){



logger.info("发送短信开始----------");
//从短信配置中查询密钥 bid 等信息
WxMsgConfig wxMsgConfig = new WxMsgConfig();
wxMsgConfig.setTenantId(wxMsg.getTenantId());
List<WxMsgConfig> wxMsgConfigs = wxMsgConfigMapper.findList(wxMsgConfig);
if (wxMsgConfigs.size() == 0) return;
if (wxMsgConfigs.size() == 0) {
logger.info("短信相关配置不存在");
return;
}
wxMsgConfig = wxMsgConfigs.get(0);

if(wxMsgConfig.getRemains()==0){
logger.info("短信数量为0");
return;
}

if(wxMsgConfig.getRemains()<wxMsg.getExpectSendNumber()){
logger.info("短信数量不足");
return;
}


String secret = wxMsgConfig.getSecret();
String bid = wxMsgConfig.getBid();
String publickey = wxMsgConfig.getPublickey();

String phone = wxMsg.getPhones();
String signature = wxMsg.getSignature();
String msg = wxMsg.getMsg();
String notifyUrl = wxMsgConfig.getNotifyurl();
String result = WiwideUtil.sendMsg(secret, bid, publickey, phone, signature, msg, notifyUrl,EnumVerifyCode.NO.getCode().toString());
logger.info("短信返回结果:" + result);
JSONObject jsonObjectResult = JSONObject.parseObject(result);
String ret = jsonObjectResult.get("ret").toString();

if (ret.equals("1")) {
wxMsg.setSendstatus(1);
wxMsg.setSendstatus(EnumMsgSendStatus.MSG_SEND_SUCCESS.getCode());
} else {
wxMsg.setSendstatus(0);
wxMsg.setSendstatus(EnumMsgSendStatus.MSG_SEND_FAIL.getCode());
}

wxMsg.setStatus(1);
wxMsg.setStatus(EnumMsgStatus.MSG_STATUS_SENDED.getCode());
wxMsgMapper.updateByPrimaryKeySelective(wxMsg);
logger.info("短信发送结束:" + jsonObjectResult.toJSONString());
}

}

Loading…
Cancel
Save