81,122
社区成员




@Component
@Lazy(false)
public class TimeTask {
@Autowired
private SendSMSService sendSMSService;
@Autowired
private SMSSendMsgLogService smsLogService;
@Autowired
private UserService userService;
/**
* 心跳更新。启动时执行一次,之后每隔30秒执行一次
* 从日志中获取待发送短信进行发送
* @throws Exception
**/
@Scheduled(cron = "0/10 * * * * ?")
public void timeSendSMS() throws Exception{
System.out.println(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm")+"进入定时发送待发送短信任务~~~~~~~~~~~~");
SmsSendLogParams entityPar = new SmsSendLogParams();
entityPar.setStatus(2);
List<SmsSendLog> logList = smsLogService.getEntityListFroPar(entityPar);
for (SmsSendLog smsSendLog : logList) {
sendSMS(smsSendLog.getID());
}
}
private void sendSMS(Integer logId) throws Exception {
String returnStatus;
Map<String,String> msgInfo = new HashMap();
SmsSendLog log = smsLogService.getEntityListFroID(logId);
//判断用户是否存在
UserInfo userinfo = userService.getUserInfoFroIdActivities(log.getUSERID());
if(null!=userinfo){
msgInfo.put(log.getSENDNUM(), log.getSENDTEXT());
returnStatus = this.sendSMSService.sendSMS(msgInfo);
}else{
returnStatus="不存在的用户";
}
//记录日志
SmsSendLogParams par = new SmsSendLogParams();
par.setId(log.getID());
par.setFailReason(returnStatus);
par.setSendcs(log.getSENDCS()+1);
par.setSendDate(new Date());
par.setSendNum(log.getSENDNUM());
par.setSendText(log.getSENDTEXT());
if("SUCCESS".equals(returnStatus)){
par.setStatus(1);
}else{
par.setStatus(0);
}
par.setUserId(log.getUSERID());
smsLogService.editEntity(par);
}
}