- SCSS 스타일 및 HTML 템플릿 구현 - 알림 발송/상태 처리 자바 로직 추가 - 클라이언트 JS: 동적 데이터 바인딩, 발송/이력 관리
This commit is contained in:
@@ -37,22 +37,24 @@ public class MessageSendService {
|
|||||||
private final PortalPropertyService portalPropertyService;
|
private final PortalPropertyService portalPropertyService;
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void sendMessage(MessageCode messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
|
public List<MessageRequest> sendMessage(MessageCode messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
|
||||||
processMessage(messageCode.name(), recipient, 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());
|
Optional<MessageTemplate> template = messageTemplateRepository.findById(messageCode.toUpperCase());
|
||||||
|
|
||||||
|
List<MessageRequest> created = new ArrayList<>();
|
||||||
if (template.isPresent()) {
|
if (template.isPresent()) {
|
||||||
List<MessageRecipient> recipients = prepareRecipients(template.get(), recipient);
|
List<MessageRecipient> recipients = prepareRecipients(template.get(), recipient);
|
||||||
for (MessageRecipient user : recipients) {
|
for (MessageRecipient user : recipients) {
|
||||||
processSingleRecipient(user, template.get(), messageParams);
|
created.addAll(processSingleRecipient(user, template.get(), messageParams));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn("메세지 템플릿이 존재 하지 않음 - {}", messageCode);
|
log.warn("메세지 템플릿이 존재 하지 않음 - {}", messageCode);
|
||||||
}
|
}
|
||||||
|
return created;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<MessageRecipient> prepareRecipients(MessageTemplate template, MessageRecipient recipient) {
|
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");
|
Map<String, String> portalProperties = portalPropertyService.getPortalPropertiesAsMap("Portal");
|
||||||
|
|
||||||
updateMessageParams(user, messageParams);
|
updateMessageParams(user, messageParams);
|
||||||
|
|
||||||
String subject = buildMessage(template.getSubjectTemplate(), messageParams);
|
String subject = buildMessage(template.getSubjectTemplate(), messageParams);
|
||||||
|
|
||||||
|
List<MessageRequest> created = new ArrayList<>();
|
||||||
|
|
||||||
if (template.getEnableSms().equalsIgnoreCase("Y")) {
|
if (template.getEnableSms().equalsIgnoreCase("Y")) {
|
||||||
String smsEaiInterfaceId = portalProperties.get("djb.ums.sms.if_id");
|
String smsEaiInterfaceId = portalProperties.get("djb.ums.sms.if_id");
|
||||||
MessageRequest smsRequest = new MessageRequest();
|
MessageRequest smsRequest = new MessageRequest();
|
||||||
@@ -91,7 +95,7 @@ public class MessageSendService {
|
|||||||
smsRequest.setServiceId(portalProperties.get("djb.ums.sms.tx_id"));
|
smsRequest.setServiceId(portalProperties.get("djb.ums.sms.tx_id"));
|
||||||
smsRequest.setUserId(user.getUserId());
|
smsRequest.setUserId(user.getUserId());
|
||||||
smsRequest.setMessageType("SMS");
|
smsRequest.setMessageType("SMS");
|
||||||
messageRequestRepository.save(smsRequest);
|
created.add(messageRequestRepository.save(smsRequest));
|
||||||
logger.debug(smsRequest.toString());
|
logger.debug(smsRequest.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +113,7 @@ public class MessageSendService {
|
|||||||
emailRequest.setServiceId(portalProperties.get("djb.ums.email.tx_id"));
|
emailRequest.setServiceId(portalProperties.get("djb.ums.email.tx_id"));
|
||||||
emailRequest.setMessageType("EMAIL");
|
emailRequest.setMessageType("EMAIL");
|
||||||
emailRequest.setUserId(user.getUserId());
|
emailRequest.setUserId(user.getUserId());
|
||||||
messageRequestRepository.save(emailRequest);
|
created.add(messageRequestRepository.save(emailRequest));
|
||||||
logger.debug(emailRequest.toString());
|
logger.debug(emailRequest.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,9 +131,11 @@ public class MessageSendService {
|
|||||||
messengerRequest.setServiceId(portalProperties.get("djb.ums.messenger.tx_id"));
|
messengerRequest.setServiceId(portalProperties.get("djb.ums.messenger.tx_id"));
|
||||||
messengerRequest.setMessageType("MESSENGER");
|
messengerRequest.setMessageType("MESSENGER");
|
||||||
messengerRequest.setUserId(user.getUserId());
|
messengerRequest.setUserId(user.getUserId());
|
||||||
messageRequestRepository.save(messengerRequest);
|
created.add(messageRequestRepository.save(messengerRequest));
|
||||||
logger.debug(messengerRequest.toString());
|
logger.debug(messengerRequest.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return created;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user