알림 테스트 도구 추가:
eapim-portal CI (from elink-portal-common) / build (push) Has been cancelled

- SCSS 스타일 및 HTML 템플릿 구현
- 알림 발송/상태 처리 자바 로직 추가
- 클라이언트 JS: 동적 데이터 바인딩, 발송/이력 관리
This commit is contained in:
Rinjae
2026-08-26 12:57:03 +09:00
parent b14b139abd
commit 61086f419f
@@ -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;
}
/**