UMS 메신저 전용 다수인 발송 추가

This commit is contained in:
eastargh
2026-08-25 09:53:40 +09:00
parent e0b7ab1129
commit b3b315cd6a
3 changed files with 59 additions and 10 deletions
@@ -93,7 +93,7 @@ public class ApiStatusService {
//내부직원 스윙챗 발송
if (monitoringContext.getBooleanProperty(MonitoringContext.DJB_UMS_MESSENGER_APIMONITOR_ENABLED, true)) {
HashMap<String, Object> params = getSwingChatMessage(event, apiIds);
ums.send("api-monitor", MessageCode.API_STATUS_CHANGED, params);
ums.sendMessenger("api-monitor", MessageCode.API_STATUS_CHANGED, params);
}
//제휴사 웹훅 발송
@@ -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<String, Object> params) {
List<UserInfo> 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
@@ -187,15 +187,7 @@ public class UmsService {
swiDataVO.setNotiContent(messageRequest.getMessage());
// 스윙챗 알림 데이터
List<SwingReceiverDataVO> swiReDataVOList = new ArrayList<SwingReceiverDataVO>();
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<SwingReceiverDataVO> getSwingReceiver(MessageRequest messageRequest) {
String[] messengerIds = messageRequest.getMessengerId().split(",");
String[] userNames = messageRequest.getUsername().split(",");
// 스윙챗 알림 데이터
List<SwingReceiverDataVO> swiReDataVOList = new ArrayList<SwingReceiverDataVO>();
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];