For a triggered SMS message, check if notification flag is set. If so, send to GCM service.
This commit is contained in:
+25
-8
@@ -194,21 +194,38 @@ public class SmsMessageScheduledJobServiceImpl implements SmsMessageScheduledJob
|
|||||||
public void sendTriggeredMessages(Map<SmsCampaign, Collection<SmsMessage>> smsDataMap) {
|
public void sendTriggeredMessages(Map<SmsCampaign, Collection<SmsMessage>> smsDataMap) {
|
||||||
try {
|
try {
|
||||||
if (!smsDataMap.isEmpty()) {
|
if (!smsDataMap.isEmpty()) {
|
||||||
|
List<SmsMessage> toSaveMessages = new ArrayList<>() ;
|
||||||
|
List<SmsMessage> toSendNotificationMessages = new ArrayList<>() ;
|
||||||
for (Entry<SmsCampaign, Collection<SmsMessage>> entry : smsDataMap.entrySet()) {
|
for (Entry<SmsCampaign, Collection<SmsMessage>> entry : smsDataMap.entrySet()) {
|
||||||
Iterator<SmsMessage> smsMessageIterator = entry.getValue().iterator();
|
Iterator<SmsMessage> smsMessageIterator = entry.getValue().iterator();
|
||||||
Collection<SmsMessageApiQueueResourceData> apiQueueResourceDatas = new ArrayList<>();
|
Collection<SmsMessageApiQueueResourceData> apiQueueResourceDatas = new ArrayList<>();
|
||||||
StringBuilder request = new StringBuilder();
|
StringBuilder request = new StringBuilder();
|
||||||
while (smsMessageIterator.hasNext()) {
|
while (smsMessageIterator.hasNext()) {
|
||||||
SmsMessage smsMessage = smsMessageIterator.next();
|
SmsMessage smsMessage = smsMessageIterator.next();
|
||||||
SmsMessageApiQueueResourceData apiQueueResourceData = SmsMessageApiQueueResourceData.instance(smsMessage.getId(),
|
if(smsMessage.isNotification()){
|
||||||
null, null, null, smsMessage.getMobileNo(), smsMessage.getMessage(), entry.getKey().getProviderId());
|
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
|
||||||
apiQueueResourceDatas.add(apiQueueResourceData);
|
toSendNotificationMessages.add(smsMessage);
|
||||||
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
|
}else {
|
||||||
|
SmsMessageApiQueueResourceData apiQueueResourceData = SmsMessageApiQueueResourceData.instance(smsMessage.getId(),
|
||||||
|
null, null, null, smsMessage.getMobileNo(), smsMessage.getMessage(), entry.getKey().getProviderId());
|
||||||
|
apiQueueResourceDatas.add(apiQueueResourceData);
|
||||||
|
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
|
||||||
|
toSaveMessages.add(smsMessage) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.smsMessageRepository.save(entry.getValue()) ;
|
if(toSaveMessages.size()>0){
|
||||||
request.append(SmsMessageApiQueueResourceData.toJsonString(apiQueueResourceDatas));
|
this.smsMessageRepository.save(toSaveMessages);
|
||||||
logger.info("Sending triggered SMS with request - " + request.toString());
|
this.smsMessageRepository.flush();
|
||||||
this.triggeredExecutorService.execute(new SmsTask(ThreadLocalContextUtil.getTenant(), apiQueueResourceDatas));
|
//this.smsMessageRepository.save(entry.getValue());
|
||||||
|
//request.append(SmsMessageApiQueueResourceData.toJsonString(apiQueueResourceDatas));
|
||||||
|
//logger.info("Sending triggered SMS with request - " + request.toString());
|
||||||
|
this.triggeredExecutorService.execute(new SmsTask(ThreadLocalContextUtil.getTenant(), apiQueueResourceDatas));
|
||||||
|
}
|
||||||
|
if(!toSendNotificationMessages.isEmpty()){
|
||||||
|
this.notificationSenderService.sendNotification(toSendNotificationMessages);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user