- SCSS 스타일 및 HTML 템플릿 구현 - 알림 발송/상태 처리 자바 로직 추가 - 클라이언트 JS: 동적 데이터 바인딩, 발송/이력 관리
This commit is contained in:
@@ -37,22 +37,24 @@ public class MessageSendService {
|
||||
private final PortalPropertyService portalPropertyService;
|
||||
|
||||
@Transactional
|
||||
public void sendMessage(MessageCode messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
|
||||
processMessage(messageCode.name(), recipient, messageParams);
|
||||
public List<MessageRequest> sendMessage(MessageCode messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
|
||||
return processMessage(messageCode.name(), recipient, messageParams);
|
||||
}
|
||||
|
||||
private void processMessage(String messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
|
||||
private List<MessageRequest> processMessage(String messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
|
||||
|
||||
Optional<MessageTemplate> template = messageTemplateRepository.findById(messageCode.toUpperCase());
|
||||
|
||||
List<MessageRequest> created = new ArrayList<>();
|
||||
if (template.isPresent()) {
|
||||
List<MessageRecipient> 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<MessageRecipient> prepareRecipients(MessageTemplate template, MessageRecipient recipient) {
|
||||
@@ -70,13 +72,15 @@ public class MessageSendService {
|
||||
}
|
||||
|
||||
|
||||
public void processSingleRecipient(MessageRecipient user, MessageTemplate template, Map<String, String> messageParams) {
|
||||
public List<MessageRequest> processSingleRecipient(MessageRecipient user, MessageTemplate template, Map<String, String> messageParams) {
|
||||
Map<String, String> portalProperties = portalPropertyService.getPortalPropertiesAsMap("Portal");
|
||||
|
||||
updateMessageParams(user, messageParams);
|
||||
|
||||
String subject = buildMessage(template.getSubjectTemplate(), messageParams);
|
||||
|
||||
List<MessageRequest> 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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user