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<String,IndepDtcenterConf> dtcenterConfMap = new HashMap<String, IndepDtcenterConf>(); public Map<String,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<IndepDtcenterConf> 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(); } } }
json 字符串转换为Object实体数组
最新推荐文章于 2024-03-03 18:06:38 发布