UMS 메신저 전용 다수인 발송 추가
This commit is contained in:
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user