基础设施统计接口

This commit is contained in:
wangliwen 2022-06-21 14:44:29 +08:00
parent 1b320e74e4
commit a7de7fa61a
2 changed files with 102 additions and 4 deletions

View File

@ -1,10 +1,13 @@
package io.renren.common.controller; package io.renren.common.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.renren.common.annotation.LogOperation; import io.renren.common.annotation.LogOperation;
import io.renren.common.constant.Constant;
import io.renren.common.domain.Tsingtao_xhaProperties;
import io.renren.common.utils.Result; import io.renren.common.utils.Result;
import io.renren.modules.processForm.service.TAbilityApplicationService; import io.renren.modules.processForm.service.TAbilityApplicationService;
import io.renren.modules.resource.service.ResourceService; import io.renren.modules.resource.service.ResourceService;
@ -14,6 +17,9 @@ import io.renren.modules.sys.service.SysDeptService;
import io.renren.modules.sys.service.SysUserService; import io.renren.modules.sys.service.SysUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -34,6 +40,8 @@ import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/census/center/v2") @RequestMapping("/census/center/v2")
public class CensusControllerV2 { public class CensusControllerV2 {
@Value("${project.place}")
private Integer projectPlace;
private static final Logger logger = LoggerFactory.getLogger(CensusControllerV2.class); private static final Logger logger = LoggerFactory.getLogger(CensusControllerV2.class);
@Autowired @Autowired
@ -49,6 +57,8 @@ public class CensusControllerV2 {
@Autowired @Autowired
private JdbcTemplate jdbcTemplate; private JdbcTemplate jdbcTemplate;
@Autowired
private Tsingtao_xhaProperties tsingtao_xhaProperties;
@Value("${census.type}") @Value("${census.type}")
private String[] censusTypes; // 需要进行统计的资源类型 private String[] censusTypes; // 需要进行统计的资源类型
@ -297,4 +307,92 @@ public class CensusControllerV2 {
return new Result().ok(resourceService.componentServiceRank(type)); return new Result().ok(resourceService.componentServiceRank(type));
} }
@GetMapping("/infrastructureInfo")
@ApiOperation("基础设施简况")
@LogOperation("基础设施简况")
public Result<List<Map<String, Object>>> infrastructureInfo() {
List<Map<String, Object>> result = new CopyOnWriteArrayList<>();
CompletableFuture<Void> allAmount = null;
switch (Constant.ProjectPlace.getByFlag(projectPlace)) {
case BAOTOU: { // 包头
allAmount = CompletableFuture.supplyAsync(() -> { // 获取平台总基础设施数目
return jdbcTemplate.queryForObject("SELECT COUNT(id) FROM tb_data_resource WHERE type = '基础设施' AND del_flag = 0", Long.class);
}).thenAccept(sum -> {
result.add(new HashMap<String, Object>() {
{
put("amount", sum);
put("type", "视频资源数量");
}
});
});
}
break;
case TSINGTAO: { // 青岛大数据局
allAmount = CompletableFuture.supplyAsync(() -> { // 获取平台总基础设施数目
return jdbcTemplate.queryForObject("SELECT COUNT(*) FROM t_camera;", Long.class);
}).thenAccept(sum -> {
result.add(new HashMap<String, Object>() {
{
put("amount", sum);
put("type", "视频资源数量");
}
});
});
}
break;
case TSINGTAO_XHA: { // 青岛西海岸
allAmount = CompletableFuture.supplyAsync(() -> { // 获取平台总基础设施数目
List<Long> result_ = new CopyOnWriteArrayList<>();
CompletableFuture cloud =
CompletableFuture.runAsync(() -> { // 云脑专网
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(tsingtao_xhaProperties.getCloudcam()).build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
JSONObject jsonObject = JSON.parseObject(response.body().string());
if (jsonObject.containsKey("data")) {
result_.add(jsonObject.getJSONObject("data").getLongValue("total"));
}
} else {
logger.error("包头获取失败");
}
} catch (Exception exception) {
logger.error("包头失败", exception);
}
});
CompletableFuture local =
CompletableFuture.runAsync(() -> { // 金宏网
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(tsingtao_xhaProperties.getLocalcam()).build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
JSONObject jsonObject = JSON.parseObject(response.body().string());
if (jsonObject.containsKey("data")) {
result_.add(jsonObject.getJSONObject("data").getLongValue("total"));
}
} else {
logger.error("包头获取失败");
}
} catch (Exception exception) {
logger.error("包头失败", exception);
}
});
CompletableFuture.allOf(cloud, local);
return result_.stream().filter(index -> index != null).findAny().orElse(0l);
}).thenAccept(sum -> {
result.add(new HashMap<String, Object>() {
{
put("amount", sum);
put("type", "视频资源数量");
}
});
});
}
break;
}
CompletableFuture<Void> all = CompletableFuture.allOf(allAmount);
all.join();
return new Result().ok(result);
}
} }

View File

@ -47,10 +47,10 @@ public class TsingtaoXHAVideoPreviewService extends AbstractVideoPreviewService
result.add(jsonObject.getString("data")); result.add(jsonObject.getString("data"));
} }
} else { } else {
logger.error("包头预览地址获取失败"); logger.error("西海岸预览地址获取失败");
} }
} catch (Exception exception) { } catch (Exception exception) {
logger.error("包头预览地址获取失败", exception); logger.error("西海岸预览地址获取失败", exception);
} }
}); });
CompletableFuture local = CompletableFuture local =
@ -64,10 +64,10 @@ public class TsingtaoXHAVideoPreviewService extends AbstractVideoPreviewService
result.add(jsonObject.getString("data")); result.add(jsonObject.getString("data"));
} }
} else { } else {
logger.error("包头预览地址获取失败"); logger.error("西海岸预览地址获取失败");
} }
} catch (Exception exception) { } catch (Exception exception) {
logger.error("包头预览地址获取失败", exception); logger.error("西海案预览地址获取失败", exception);
} }
}); });
CompletableFuture.allOf(cloud, local); CompletableFuture.allOf(cloud, local);