이벤트 성격에 따라 발송정책(SendPolicy)를 두고 그에 따라 UMS연계하여 문자메세지 발송하도록 추가.

UMS playload관련 패키지 이동.
This commit is contained in:
cho
2026-02-06 11:55:27 +09:00
parent 0340f63a79
commit 94b22aa90f
17 changed files with 277 additions and 100 deletions
@@ -1,9 +1,11 @@
package com.eactive.eai.custom.alarm;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Properties;
@@ -12,11 +14,12 @@ import org.springframework.stereotype.Service;
import com.eactive.eai.common.property.PropManager;
import com.eactive.eai.common.util.Jsons;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.custom.alarm.key.AlarmKey;
import com.eactive.eai.custom.alarm.key.DynamicAlarmKey;
import com.eactive.eai.custom.alarm.policy.AlarmPolicy;
import com.eactive.eai.custom.alarm.policy.CounterPolicy;
import com.eactive.eai.custom.alarm.policy.SendPolicy;
import com.eactive.eai.custom.alarm.policy.TimerPolicy;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
@Service
@@ -28,9 +31,9 @@ public class AlarmService {
final static String ALARM_KEY = "Alarm";
final static String ALARM_RECIVER = "{RECIVER}";
public List<AlarmPolicy> getAlarmPolicy() {
public Map<AlarmKey, AlarmPolicy> getAlarmPolicy() {
List<AlarmPolicy> policyList = new ArrayList<AlarmPolicy>();
Map<AlarmKey, AlarmPolicy> policyMap = new HashMap<AlarmKey, AlarmPolicy>();
try {
@@ -40,22 +43,24 @@ public class AlarmService {
String keyName = (String) key;
String configStr = (String) value;
if (keyName.contains(ALARM_RECIVER))
return;
if (keyName.contains(ALARM_RECIVER)) return;
policyList.add(buildAlarmPolicy(keyName, configStr));
AlarmPolicy newPolicy = buildAlarmPolicy(keyName, configStr);
policyMap.put(newPolicy.getAlarmKey(), newPolicy);
});
} catch (Exception e) {
logger.error("getAlarmPolicy fail.", e);
return Collections.EMPTY_LIST;
logger.warn("getAlarmPolicy fail.", e);
return Collections.EMPTY_MAP;
}
return null;
return policyMap;
}
AlarmPolicy buildAlarmPolicy(String key, String configJsonStr) {
private AlarmPolicy buildAlarmPolicy(String key, String configJsonStr) {
JsonObject alarmConfig = Jsons.GSON.fromJson(configJsonStr, JsonObject.class);
@@ -77,4 +82,45 @@ public class AlarmService {
return alarmPolicy;
}
public Map<AlarmKey, SendPolicy> getSendPolicy() {
Map<AlarmKey, SendPolicy> policyMap = new HashMap<AlarmKey, SendPolicy>();
try {
Properties props = PropManager.getInstance().getProperties(ALARM_GROUP);
props.forEach((key, value) -> {
String keyName = (String) key;
String configStr = (String) value;
if (!keyName.contains(ALARM_RECIVER)) return;
SendPolicy newPolicy = buildSendPolicy(keyName, configStr);
policyMap.put(newPolicy.getAlarmKey(), newPolicy);
});
} catch (Exception e) {
logger.warn("getSendPolicy fail.", e);
return Collections.EMPTY_MAP;
}
return policyMap;
}
private SendPolicy buildSendPolicy(String key, String configStr) {
List<String> reciverList = Optional.ofNullable(configStr).map( t -> Arrays.asList(t.split(",")) ).orElse(Collections.EMPTY_LIST);
key = key.replaceAll(ALARM_RECIVER, "").trim();
SendPolicy sendPolicy = new SendPolicy(key, reciverList);
return sendPolicy;
}
}