From b3b315cd6acc254ba2822e0a9768ce4210edbdf8 Mon Sep 17 00:00:00 2001 From: eastargh Date: Tue, 25 Aug 2026 09:53:40 +0900 Subject: [PATCH] =?UTF-8?q?UMS=20=EB=A9=94=EC=8B=A0=EC=A0=80=20=EC=A0=84?= =?UTF-8?q?=EC=9A=A9=20=EB=8B=A4=EC=88=98=EC=9D=B8=20=EB=B0=9C=EC=86=A1=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/djb/apistatus/ApiStatusService.java | 2 +- .../eai/rms/ext/djb/ums/UmsManager.java | 38 +++++++++++++++++++ .../rms/ext/djb/ums/service/UmsService.java | 29 +++++++++----- 3 files changed, 59 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/ApiStatusService.java b/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/ApiStatusService.java index 5fb5d1b..c2f3152 100644 --- a/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/ApiStatusService.java +++ b/src/main/java/com/eactive/eai/rms/ext/djb/apistatus/ApiStatusService.java @@ -93,7 +93,7 @@ public class ApiStatusService { //내부직원 스윙챗 발송 if (monitoringContext.getBooleanProperty(MonitoringContext.DJB_UMS_MESSENGER_APIMONITOR_ENABLED, true)) { HashMap params = getSwingChatMessage(event, apiIds); - ums.send("api-monitor", MessageCode.API_STATUS_CHANGED, params); + ums.sendMessenger("api-monitor", MessageCode.API_STATUS_CHANGED, params); } //제휴사 웹훅 발송 diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/ums/UmsManager.java b/src/main/java/com/eactive/eai/rms/ext/djb/ums/UmsManager.java index 6031247..f991ba7 100644 --- a/src/main/java/com/eactive/eai/rms/ext/djb/ums/UmsManager.java +++ b/src/main/java/com/eactive/eai/rms/ext/djb/ums/UmsManager.java @@ -60,6 +60,44 @@ public class UmsManager { } } + /** + * roleId에 해당하는 역할을 가진 직원에게 messenger 발송 (제주은행은 sms, email은 1인 발송이나, messenger는 다수 발송) + * (기존 ums 로직을 멀티 receiver로 변경할려면 많은 부분을 수정해야하기 때문에, messenger 전용만 추가) + * @param role + * @param messageCode + * @param params + * @return + */ + public void sendMessenger(String roleId, MessageCode messageCode, HashMap params) { + List users = userInfoService.findAllByRoleId(roleId); + if (users.isEmpty()) { + log.info("sendMessenger: no users found for role '{}'", roleId); + return; + } + + String messengerIds = ""; + String userNames = ""; + + for (UserInfo user : users) { + if (StringUtils.isEmpty(messengerIds)) { + messengerIds += user.getUserid(); + userNames += user.getUsername(); + } else { + messengerIds += "," + user.getUserid(); + userNames += "," + user.getUsername(); + } + } + + MessageRecipient recipient = MessageRecipient.builder() + .userId("") + .username(userNames) + .email("") + .phone("") + .messengerId(messengerIds) + .build(); + messageHandlerService.publishEvent(messageCode, recipient, params); + } + /** * 직원 또는 회원에게 UMS(sms,email,messenger) 발송 * @param user diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java b/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java index be25afe..87a917f 100644 --- a/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java +++ b/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java @@ -187,15 +187,7 @@ public class UmsService { swiDataVO.setNotiContent(messageRequest.getMessage()); // 스윙챗 알림 데이터 - List swiReDataVOList = new ArrayList(); - SwingReceiverDataVO receiver = new SwingReceiverDataVO(); - receiver.setType("PSN"); - receiver.setCompanyCode("CB"); - receiver.setCode(messageRequest.getMessengerId()); - receiver.setName(messageRequest.getUsername()); - swiReDataVOList.add(receiver); - - swiDataVO.setReceiverInfo(swiReDataVOList); + swiDataVO.setReceiverInfo(getSwingReceiver(messageRequest)); String header = gson.toJson(stdHeadVO); String common = gson.toJson(swiComVO); @@ -295,6 +287,25 @@ public class UmsService { } + private List getSwingReceiver(MessageRequest messageRequest) { + + String[] messengerIds = messageRequest.getMessengerId().split(","); + String[] userNames = messageRequest.getUsername().split(","); + + // 스윙챗 알림 데이터 + List swiReDataVOList = new ArrayList(); + for (int i = 0; i < messengerIds.length; i++) { + SwingReceiverDataVO receiver = new SwingReceiverDataVO(); + receiver.setType("PSN"); + receiver.setCompanyCode("CB"); + receiver.setCode(messengerIds[i]); + receiver.setName(userNames[i]); + swiReDataVOList.add(receiver); + } + + return swiReDataVOList; + } + private String[] makeStdGuidInfo() { // 리턴값 String rtnVal[] = new String[3];