UMS 카톡 템플릿 적용

This commit is contained in:
eastargh
2026-09-10 13:20:13 +09:00
parent d86b169a6c
commit a4976fdfa5
3 changed files with 20 additions and 11 deletions
@@ -11,7 +11,7 @@ public enum MessageCode {
// 사용자 이벤트 영역 // 사용자 이벤트 영역
USER_VERIFICATION_EMAIL("이메일 주소 인증", null, Channels.EMAIL), USER_VERIFICATION_EMAIL("이메일 주소 인증", null, Channels.EMAIL),
USER_VERIFICATION_MOBILEPHONE("휴대폰 번호 인증", null, Channels.SMS), USER_VERIFICATION_MOBILEPHONE("휴대폰 번호 인증", "JJB_85959019001", Channels.SMS),
USER_PASSWORD_RESET("비밀번호 재설정", null, Channels.SMS), USER_PASSWORD_RESET("비밀번호 재설정", null, Channels.SMS),
USER_PASSWORD_CHANGED("사용자 비밀번호 변경", null, Channels.SMS), USER_PASSWORD_CHANGED("사용자 비밀번호 변경", null, Channels.SMS),
@@ -37,7 +37,7 @@ public enum MessageCode {
// 제주은행 // 제주은행
API_STATUS_CHANGED("API 상태 변화", null, Channels.SWING), API_STATUS_CHANGED("API 상태 변화", null, Channels.SWING),
INFLOW_TOKEN_FAILED("유량제어 토큰 획득 실패", null, Channels.SWING), INFLOW_TOKEN_FAILED("유량제어 토큰 획득 실패", null, Channels.SWING),
ADMIN_VERIFICATION_MOBILEPHONE("관리자포탈 휴대폰 번호 인증", null, Channels.SMS), ADMIN_VERIFICATION_MOBILEPHONE("관리자포탈 휴대폰 번호 인증", "JJB_85999019001", Channels.SMS),
// 레거시/미사용 — Event 핸들러 클래스 호환을 위해 유지 (실제 발송 없음) // 레거시/미사용 — Event 핸들러 클래스 호환을 위해 유지 (실제 발송 없음)
API_APPROVED("API 승인 알림", null, Channels.NONE), API_APPROVED("API 승인 알림", null, Channels.NONE),
@@ -86,6 +86,9 @@ public class MessageRequest implements Serializable {
@Column(name = "eai_interface_id") @Column(name = "eai_interface_id")
private String eaiInterfaceId; private String eaiInterfaceId;
@Column(name = "eai_tx_id")
private String eaiTxId;
@Column(name = "service_id") @Column(name = "service_id")
private String serviceId; private String serviceId;
@@ -38,21 +38,21 @@ public class MessageSendService {
@Transactional @Transactional
public List<MessageRequest> sendMessage(MessageCode messageCode, MessageRecipient recipient, Map<String, String> messageParams) { public List<MessageRequest> sendMessage(MessageCode messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
return processMessage(messageCode.name(), recipient, messageParams); return processMessage(messageCode, recipient, messageParams);
} }
private List<MessageRequest> processMessage(String messageCode, MessageRecipient recipient, Map<String, String> messageParams) { private List<MessageRequest> processMessage(MessageCode messageCode, MessageRecipient recipient, Map<String, String> messageParams) {
Optional<MessageTemplate> template = messageTemplateRepository.findById(messageCode.toUpperCase()); Optional<MessageTemplate> template = messageTemplateRepository.findById(messageCode.name().toUpperCase());
List<MessageRequest> created = new ArrayList<>(); 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) {
created.addAll(processSingleRecipient(user, template.get(), messageParams)); created.addAll(processSingleRecipient(user, template.get(), messageParams, messageCode));
} }
} else { } else {
log.warn("메세지 템플릿이 존재 하지 않음 - {}", messageCode); log.warn("메세지 템플릿이 존재 하지 않음 - {}", messageCode.name());
} }
return created; return created;
} }
@@ -72,7 +72,7 @@ public class MessageSendService {
} }
public List<MessageRequest> processSingleRecipient(MessageRecipient user, MessageTemplate template, Map<String, String> messageParams) { public List<MessageRequest> processSingleRecipient(MessageRecipient user, MessageTemplate template, Map<String, String> messageParams, MessageCode messageCode) {
Map<String, String> portalProperties = portalPropertyService.getPortalPropertiesAsMap("Portal"); Map<String, String> portalProperties = portalPropertyService.getPortalPropertiesAsMap("Portal");
updateMessageParams(user, messageParams); updateMessageParams(user, messageParams);
@@ -83,6 +83,7 @@ public class MessageSendService {
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");
String smsEaiTxId = portalProperties.get("djb.ums.sms.tx_id");
MessageRequest smsRequest = new MessageRequest(); MessageRequest smsRequest = new MessageRequest();
smsRequest.setMessageCode(MessageCode.valueOf(template.getMessageCode().toUpperCase())); smsRequest.setMessageCode(MessageCode.valueOf(template.getMessageCode().toUpperCase()));
smsRequest.setSubject(subject); smsRequest.setSubject(subject);
@@ -92,7 +93,8 @@ public class MessageSendService {
smsRequest.setUsername(user.getUsername()); smsRequest.setUsername(user.getUsername());
smsRequest.setPhone(user.getPhone()); smsRequest.setPhone(user.getPhone());
smsRequest.setEaiInterfaceId(smsEaiInterfaceId); smsRequest.setEaiInterfaceId(smsEaiInterfaceId);
smsRequest.setServiceId(portalProperties.get("djb.ums.sms.tx_id")); smsRequest.setEaiTxId(smsEaiTxId);
smsRequest.setServiceId(messageCode.getServiceId());
smsRequest.setUserId(user.getUserId()); smsRequest.setUserId(user.getUserId());
smsRequest.setMessageType("SMS"); smsRequest.setMessageType("SMS");
created.add(messageRequestRepository.save(smsRequest)); created.add(messageRequestRepository.save(smsRequest));
@@ -101,6 +103,7 @@ public class MessageSendService {
if (template.getEnableEmail().equalsIgnoreCase("Y")) { if (template.getEnableEmail().equalsIgnoreCase("Y")) {
String mailEaiInterfaceId = portalProperties.get("djb.ums.email.if_id"); String mailEaiInterfaceId = portalProperties.get("djb.ums.email.if_id");
String mailEaiTxId = portalProperties.get("djb.ums.email.tx_id");
MessageRequest emailRequest = new MessageRequest(); MessageRequest emailRequest = new MessageRequest();
emailRequest.setMessageCode(MessageCode.valueOf(template.getMessageCode().toUpperCase())); emailRequest.setMessageCode(MessageCode.valueOf(template.getMessageCode().toUpperCase()));
emailRequest.setSubject(subject); emailRequest.setSubject(subject);
@@ -110,7 +113,8 @@ public class MessageSendService {
emailRequest.setUsername(resolveEmailUsername(user)); emailRequest.setUsername(resolveEmailUsername(user));
emailRequest.setEmail(user.getUserId()); emailRequest.setEmail(user.getUserId());
emailRequest.setEaiInterfaceId(mailEaiInterfaceId); emailRequest.setEaiInterfaceId(mailEaiInterfaceId);
emailRequest.setServiceId(portalProperties.get("djb.ums.email.tx_id")); emailRequest.setEaiTxId(mailEaiTxId);
emailRequest.setServiceId(messageCode.getServiceId());
emailRequest.setMessageType("EMAIL"); emailRequest.setMessageType("EMAIL");
emailRequest.setUserId(user.getUserId()); emailRequest.setUserId(user.getUserId());
created.add(messageRequestRepository.save(emailRequest)); created.add(messageRequestRepository.save(emailRequest));
@@ -119,6 +123,7 @@ public class MessageSendService {
if (template.getEnableMessenger().equalsIgnoreCase("Y")) { if (template.getEnableMessenger().equalsIgnoreCase("Y")) {
String swingEaiInterfaceId = portalProperties.get("djb.ums.messenger.if_id"); String swingEaiInterfaceId = portalProperties.get("djb.ums.messenger.if_id");
String swingEaiTxId = portalProperties.get("djb.ums.messenger.tx_id");
MessageRequest messengerRequest = new MessageRequest(); MessageRequest messengerRequest = new MessageRequest();
messengerRequest.setMessageCode(MessageCode.valueOf(template.getMessageCode())); messengerRequest.setMessageCode(MessageCode.valueOf(template.getMessageCode()));
messengerRequest.setSubject(subject); messengerRequest.setSubject(subject);
@@ -128,7 +133,8 @@ public class MessageSendService {
messengerRequest.setUsername(user.getUsername()); messengerRequest.setUsername(user.getUsername());
messengerRequest.setMessengerId(user.getMessengerId()); messengerRequest.setMessengerId(user.getMessengerId());
messengerRequest.setEaiInterfaceId(swingEaiInterfaceId); messengerRequest.setEaiInterfaceId(swingEaiInterfaceId);
messengerRequest.setServiceId(portalProperties.get("djb.ums.messenger.tx_id")); messengerRequest.setEaiTxId(swingEaiTxId);
messengerRequest.setServiceId(messageCode.getServiceId());
messengerRequest.setMessageType("MESSENGER"); messengerRequest.setMessageType("MESSENGER");
messengerRequest.setUserId(user.getUserId()); messengerRequest.setUserId(user.getUserId());
created.add(messageRequestRepository.save(messengerRequest)); created.add(messageRequestRepository.save(messengerRequest));