package com.cloud.control.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cloud.common.utils.JsonUtil; import com.cloud.common.utils.RestTemplateUtil; import com.cloud.control.service.ClusterService; import com.cloud.control.utils.EnumStr; import com.cloud.model.common.Result; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j @Service public class ClusterServiceImpl implements ClusterService { @Autowired private EnumStr enumStr; /** * 获取集群内的所有信息,包括集群信息,节点信息,同步库和本地库,以及摄像机设备信息 * @return */ @Override public Result findAllNode() { Map params = new HashMap<>(); params.put("name", "");//集群名称参数 params.put("isContainerDb", "1");//是否查本地库信息 String url = "http://" + enumStr.getDeviceServiceUrl()+":" + enumStr.getDeviceServicePort()+ "/data/api-d/cluster/findAllNode"; try { JSONObject jsonParam = JsonUtil.mapToJson(params); String result = RestTemplateUtil.post(url, jsonParam, MediaType.APPLICATION_FORM_URLENCODED,false); if(StringUtils.isNotEmpty(result)){ return JSONObject.parseObject(result, Result.class); } } catch (Exception e) { e.printStackTrace(); return Result.error(e); } return Result.custom("查询失败",500,false,"服务调用失败"); } /** * 查询集群设备树信息(在布控范围中使用) * @return */ @Override public Result getClusterDeviceTree() { String url = "http://" + enumStr.getDeviceServiceUrl()+":" + enumStr.getDeviceServicePort()+ "/data/api-d/cluster/getClusterDeviceTree"; try { String result = RestTemplateUtil.post(url, new JSONObject(), MediaType.APPLICATION_FORM_URLENCODED,true); if(StringUtils.isNotEmpty(result)){ return Result.ok("查询成功", JSONArray.parseArray(result)); } } catch (Exception e) { e.printStackTrace(); } return Result.custom("查询失败",500,false,"服务调用失败"); } }