이벤트 성격에 따라 발송정책(SendPolicy)를 두고 그에 따라 UMS연계하여 문자메세지 발송하도록 추가.
UMS playload관련 패키지 이동.
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user