json文字列をObjectエンティティ配列に変換
11420 ワード
package com.dtdream.csr.manager.baseapi.common;
import com.dtdream.csr.api.manager.indep.entity.IndepDtCenters;
import com.dtdream.csr.api.manager.indep.entity.IndepDtcenterConf;
import com.dtdream.csr.api.util.FileApi;
import com.dtdream.csr.manager.dao.BaseDtcenterConfigDao;
import com.dtdream.csr.manager.dao.BaseDtcenterRegionItemDao;
import com.dtdream.csr.manager.entity.BaseDtcenterConfig;
import com.dtdream.csr.manager.entity.BaseDtcenterRegionItem;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.criteria.CriteriaBuilder;
/**
* Created by liucc on 17-6-19.
*/
@Singleton
public class DtcenterManager {
private Logger logger = LoggerFactory.getLogger(DtcenterManager.class);
@Inject
private BaseDtcenterConfigDao baseDtcenterConfigDao;
@Inject
BaseDtcenterRegionItemDao baseDtcenterRegionItemDao;
private static Map,IndepDtcenterConf> dtcenterConfMap = new HashMap, IndepDtcenterConf>();
public Map,IndepDtcenterConf> getDtcenterConfMap (){
return dtcenterConfMap;
}
public void registerDtcenter() {
registerDtcenterConfig();
registerDtceterRegions();
}
public void registerDtcenterConfig() {
ObjectMapper objectMapper = new ObjectMapper();
try {
File file = new File(FileApi.COM_DTDREAM_CSR_BASE);
String tempString = FileApi.readContent(file,"UTF-8");
IndepDtCenters indepDtCenterList = objectMapper.readValue(tempString, IndepDtCenters.class);
List confList = indepDtCenterList.getDtCenterConfList();
if(confList.size() == 0) {
logger.error("DtcenterManager: Dtcenter is null");
return;
}
for (IndepDtcenterConf conf : confList) {
if(dtcenterConfMap.get(conf.getId()) == null) {
dtcenterConfMap.put(conf.getId(),conf);
BaseDtcenterConfig baseConfig = baseDtcenterConfigDao.get(conf.getId());
if(baseConfig == null) {
/* Center */
baseConfig = new BaseDtcenterConfig();
baseConfig.setId(conf.getId());
baseConfig.setName(conf.getName());
baseConfig.setAccessKeyId(conf.getAccessKeyId());
baseConfig.setAccessKeySecret(conf.getAccessKeySecret());
baseConfig.setEndPoint(conf.getEndPoint());
baseDtcenterConfigDao.create(baseConfig);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void registerDtceterRegions() {
File file = new File("etc/com.dtdream.csr.region.json");
try {
String tempString = FileApi.readContent(file,"UTF-8");
JSONObject json = JSONObject.fromObject(tempString);
JSONArray jsonArray = json.getJSONArray("regions");
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject object = (JSONObject)jsonArray.get(i);
BaseDtcenterRegionItem item = (BaseDtcenterRegionItem) JSONObject.toBean(object,BaseDtcenterRegionItem.class);
BaseDtcenterRegionItem baseDtcenterRegion = baseDtcenterRegionItemDao.get(item.getRegionId());
if(jsonArray != null && baseDtcenterRegion == null) {
baseDtcenterRegionItemDao.create(item);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}