miduo_server/tablemanager/src/main/java/config/SPackPushConfig.java

118 lines
2.9 KiB
Java

package config;
import manager.STableManager;
import manager.Table;
import java.util.*;
@Table(name ="PackPush")
public class SPackPushConfig implements BaseConfig {
private int id;
private String desc;
private int[] scopeId;
private int[] conditionId;
private int priority;
private int cDTime;
private int count;
private int[] personas;
private int[] packs;
private int statistics;
private int privateCD;
public static Map<Integer,SPackPushConfig> configMap;
public static Map<Integer,Map<Integer,List<SPackPushConfig>>> conditionMap;
public void init() throws Exception {
Map<Integer, SPackPushConfig> config = STableManager.getConfig(SPackPushConfig.class);
Map<Integer,SPackPushConfig> tempConfigMap = new HashMap<>();
Map<Integer,Map<Integer,List<SPackPushConfig>>> tempConditionMap = new HashMap<>();
for(SPackPushConfig newConfig : config.values()){
tempConfigMap.put(newConfig.getId(),newConfig);
int[] conditionId = newConfig.getConditionId();
if(tempConditionMap.containsKey(conditionId[0])){
if(tempConditionMap.get(conditionId[0]).containsKey(conditionId[1])){
tempConditionMap.get(conditionId[0]).get(conditionId[1]).add(newConfig);
}else{
List<SPackPushConfig> list = new ArrayList<>();
list.add(newConfig);
tempConditionMap.get(conditionId[0]).put(conditionId[1],list);
}
}else{
Map<Integer,List<SPackPushConfig>> map = new HashMap<>();
List<SPackPushConfig> list = new ArrayList<>();
list.add(newConfig);
map.put(conditionId[1],list);
tempConditionMap.put(conditionId[0],map);
}
}
if(configMap == null){
configMap = tempConfigMap;
conditionMap = tempConditionMap;
}
}
public static SPackPushConfig getConfigById(int id){
return configMap.get(id);
}
public static List<SPackPushConfig> findConfigByCon(int type,int num){
if(conditionMap.get(type) == null){
return null;
}
return conditionMap.get(type).get(num);
}
public int getId() {
return id;
}
public String getDesc() {
return desc;
}
public int[] getScopeId() {
return scopeId;
}
public int[] getConditionId() {
return conditionId;
}
public int getPriority() {
return priority;
}
public int getcDTime() {
return cDTime;
}
public int getCount() {
return count;
}
public int[] getPersonas() {
return personas;
}
public int[] getPacks() {
return packs;
}
public int getStatistics() {
return statistics;
}
public int getPrivateCD() {
return privateCD;
}
}