diff --git a/src/main/java/com/eactive/apim/portal/template/service/MessageSendService.java b/src/main/java/com/eactive/apim/portal/template/service/MessageSendService.java index c098224..324727c 100644 --- a/src/main/java/com/eactive/apim/portal/template/service/MessageSendService.java +++ b/src/main/java/com/eactive/apim/portal/template/service/MessageSendService.java @@ -37,22 +37,24 @@ public class MessageSendService { private final PortalPropertyService portalPropertyService; @Transactional - public void sendMessage(MessageCode messageCode, MessageRecipient recipient, Map messageParams) { - processMessage(messageCode.name(), recipient, messageParams); + public List sendMessage(MessageCode messageCode, MessageRecipient recipient, Map messageParams) { + return processMessage(messageCode.name(), recipient, messageParams); } - private void processMessage(String messageCode, MessageRecipient recipient, Map messageParams) { + private List processMessage(String messageCode, MessageRecipient recipient, Map messageParams) { Optional template = messageTemplateRepository.findById(messageCode.toUpperCase()); + List created = new ArrayList<>(); if (template.isPresent()) { List recipients = prepareRecipients(template.get(), recipient); for (MessageRecipient user : recipients) { - processSingleRecipient(user, template.get(), messageParams); + created.addAll(processSingleRecipient(user, template.get(), messageParams)); } } else { log.warn("메세지 템플릿이 존재 하지 않음 - {}", messageCode); } + return created; } private List prepareRecipients(MessageTemplate template, MessageRecipient recipient) { @@ -70,13 +72,15 @@ public class MessageSendService { } - public void processSingleRecipient(MessageRecipient user, MessageTemplate template, Map messageParams) { + public List processSingleRecipient(MessageRecipient user, MessageTemplate template, Map messageParams) { Map portalProperties = portalPropertyService.getPortalPropertiesAsMap("Portal"); updateMessageParams(user, messageParams); String subject = buildMessage(template.getSubjectTemplate(), messageParams); + List created = new ArrayList<>(); + if (template.getEnableSms().equalsIgnoreCase("Y")) { String smsEaiInterfaceId = portalProperties.get("djb.ums.sms.if_id"); MessageRequest smsRequest = new MessageRequest(); @@ -91,7 +95,7 @@ public class MessageSendService { smsRequest.setServiceId(portalProperties.get("djb.ums.sms.tx_id")); smsRequest.setUserId(user.getUserId()); smsRequest.setMessageType("SMS"); - messageRequestRepository.save(smsRequest); + created.add(messageRequestRepository.save(smsRequest)); logger.debug(smsRequest.toString()); } @@ -109,7 +113,7 @@ public class MessageSendService { emailRequest.setServiceId(portalProperties.get("djb.ums.email.tx_id")); emailRequest.setMessageType("EMAIL"); emailRequest.setUserId(user.getUserId()); - messageRequestRepository.save(emailRequest); + created.add(messageRequestRepository.save(emailRequest)); logger.debug(emailRequest.toString()); } @@ -127,9 +131,11 @@ public class MessageSendService { messengerRequest.setServiceId(portalProperties.get("djb.ums.messenger.tx_id")); messengerRequest.setMessageType("MESSENGER"); messengerRequest.setUserId(user.getUserId()); - messageRequestRepository.save(messengerRequest); + created.add(messageRequestRepository.save(messengerRequest)); logger.debug(messengerRequest.toString()); } + + return created; } /**