package foundation.send.sms;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Map.Entry;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import foundation.dao.Filter;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.object.DataObject;
|
import foundation.persist.NamedSQL;
|
import foundation.persist.SQLRunner;
|
import foundation.server.Initializer;
|
|
public class SmsLoader extends Initializer{
|
|
private static Logger logger;
|
|
static {
|
logger = LogManager.getLogger(SmsLoader.class);
|
}
|
|
@Override
|
public void startUp() throws Exception {
|
SmsCenter smsCenter = SmsCenter.getInstance();
|
|
//1. 加载配置信息
|
loadSmsConfig(smsCenter);
|
|
loadSmsConfigDetail(smsCenter);
|
|
//2. 注册action
|
registerActions(smsCenter);
|
|
//3. 激活配置
|
smsCenter.activate();
|
}
|
|
private void registerActions(SmsCenter mailCenter) {
|
AliyunSMSProvider aliyunSmsProvider = new AliyunSMSProvider();
|
mailCenter.addOneProvider(aliyunSmsProvider);
|
}
|
|
private void loadSmsConfigDetail(SmsCenter smsCenter) {
|
NamedSQL namedSQL = null;
|
EntitySet entitySet = null;
|
SmsBuilderDetail smsBuilderDetail = null;
|
String parentId = "";
|
|
logger.info("加载配置明细");
|
try {
|
namedSQL = NamedSQL.getInstance("getSendConfigDetail");
|
namedSQL.setParam("type", "sms");
|
entitySet = SQLRunner.getEntitySet(namedSQL);
|
if (entitySet == null || entitySet.isEmpty()) {
|
return;
|
}
|
|
for (Entity entity : entitySet) {
|
parentId = entity.getString("parent_id", "");
|
for (Map.Entry<String, SmsBuilder> smsEntry : smsCenter.getSmsBuilders().getItemMap().entrySet()) {
|
if (parentId.equalsIgnoreCase(smsEntry.getKey())) {
|
List<SmsBuilderDetail> smsBuilderDetailList = smsEntry.getValue().getSmsBuilderDetailList();
|
if (smsBuilderDetailList == null) {
|
smsBuilderDetailList = new ArrayList<SmsBuilderDetail>();
|
}
|
smsBuilderDetail = new SmsBuilderDetail();
|
smsBuilderDetail.setId(entity.getString("id", ""));
|
smsBuilderDetail.setParentId(entity.getString("parent_id", ""));
|
smsBuilderDetail.setBusinessCode(entity.getString("business_code", ""));
|
smsBuilderDetail.setBusinessName(entity.getString("business_name", ""));
|
smsBuilderDetail.setSubject(entity.getString("subject", ""));
|
smsBuilderDetail.setTemplate(entity.getString("template", ""));
|
smsBuilderDetail.setIsActive(entity.getString("is_active", ""));
|
smsBuilderDetail.setSignName(entity.getString("sign_name", ""));
|
smsBuilderDetail.setTemplateCode(entity.getString("template_code", ""));
|
smsBuilderDetailList.add(smsBuilderDetail);
|
smsEntry.getValue().setSmsBuilderDetailList(smsBuilderDetailList);
|
break;
|
}
|
}
|
}
|
} catch(Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
private void loadSmsConfig(SmsCenter smsCenter) {
|
DataObject dataObject = DataObject.getInstance("sys_send_config");
|
EntitySet entitySet = null;
|
Filter filter = new Filter();
|
String platForm = "", id = "";
|
SmsBuilder smsBuilder = null;
|
logger.info("加载配置主体");
|
|
try {
|
filter.add("type", "sms");
|
entitySet = dataObject.getTableEntitySet(filter);
|
if (entitySet == null || entitySet.isEmpty()) {
|
return;
|
}
|
for (Entity entity : entitySet) {
|
platForm = entity.getString("name", "");
|
id = entity.getString("id", "");
|
for (Entry<String, SmsConfig> smsEntry : SmsConfigerLoader.getSmsConfigMap().entrySet()) {
|
if (platForm.equalsIgnoreCase(smsEntry.getKey())) {
|
smsBuilder = new SmsBuilder();
|
smsBuilder.setId(entity.getString("id", ""));
|
smsBuilder.setType(entity.getString("type", ""));
|
smsBuilder.setName(entity.getString("name", ""));
|
smsBuilder.setSendAccount(entity.getString("account", ""));
|
smsBuilder.setPassword(entity.getString("password", ""));
|
smsBuilder.setIsActive(entity.getString("is_active", ""));
|
smsBuilder.setSmsConfig(smsEntry.getValue());
|
smsCenter.getSmsBuilders().add(id, smsBuilder);
|
break;
|
}
|
}
|
}
|
} catch(Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void shutDown() throws Exception {
|
// TODO Auto-generated method stub
|
}
|
|
}
|