mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2025-12-30 04:52:26 +00:00
99 lines
3.6 KiB
Java
99 lines
3.6 KiB
Java
package com.genersoft.iot.vmp.conf;
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
import com.genersoft.iot.vmp.common.StatisticsInfo;
|
|
import com.genersoft.iot.vmp.utils.DateUtil;
|
|
import com.genersoft.iot.vmp.utils.GitUtil;
|
|
import com.genersoft.iot.vmp.utils.SystemInfoUtils;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import okhttp3.*;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.CommandLineRunner;
|
|
import org.springframework.core.annotation.Order;
|
|
import org.springframework.data.redis.connection.RedisConnection;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import javax.sql.DataSource;
|
|
import java.io.File;
|
|
import java.sql.DatabaseMetaData;
|
|
import java.util.Objects;
|
|
|
|
@Component
|
|
@Order(value=100)
|
|
@Slf4j
|
|
public class StatisticsInfoTask implements CommandLineRunner {
|
|
|
|
@Autowired
|
|
private GitUtil gitUtil;
|
|
|
|
@Autowired
|
|
private RedisTemplate<Object, Object> redisTemplate;
|
|
|
|
@Autowired
|
|
private DataSource dataSource;
|
|
|
|
@Override
|
|
public void run(String... args) throws Exception {
|
|
try {
|
|
StatisticsInfo statisticsInfo = new StatisticsInfo();
|
|
statisticsInfo.setDeviceId(SystemInfoUtils.getHardwareId());
|
|
statisticsInfo.setBranch(gitUtil.getBranch());
|
|
statisticsInfo.setGitCommitId(gitUtil.getGitCommitId());
|
|
statisticsInfo.setGitUrl(gitUtil.getGitUrl());
|
|
statisticsInfo.setVersion(gitUtil.getBuildVersion());
|
|
|
|
statisticsInfo.setOsName(System.getProperty("os.name"));
|
|
statisticsInfo.setArch(System.getProperty("os.arch"));
|
|
statisticsInfo.setJdkVersion(System.getProperty("java.version"));
|
|
|
|
statisticsInfo.setDocker(new File("/.dockerenv").exists());
|
|
try {
|
|
statisticsInfo.setRedisVersion(getRedisVersion());
|
|
}catch (Exception ignored) {}
|
|
try {
|
|
DatabaseMetaData metaData = dataSource.getConnection().getMetaData();
|
|
statisticsInfo.setSqlVersion(metaData.getDatabaseProductVersion());
|
|
statisticsInfo.setSqlType(metaData.getDriverName());
|
|
}catch (Exception ignored) {}
|
|
statisticsInfo.setTime(DateUtil.getNow());
|
|
sendPost(statisticsInfo);
|
|
|
|
|
|
}catch (Exception e) {
|
|
log.error("[获取信息失败] ", e);
|
|
}
|
|
}
|
|
|
|
public String getRedisVersion() {
|
|
if (redisTemplate.getConnectionFactory() == null) {
|
|
return null;
|
|
}
|
|
RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();
|
|
if (connection.info() == null) {
|
|
return null;
|
|
}
|
|
return connection.info().getProperty("redis_version");
|
|
}
|
|
|
|
public void sendPost(StatisticsInfo statisticsInfo) {
|
|
OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
|
|
OkHttpClient client = httpClientBuilder.build();
|
|
|
|
RequestBody requestBodyJson = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), JSON.toJSONString(statisticsInfo));
|
|
|
|
Request request = new Request.Builder()
|
|
.post(requestBodyJson)
|
|
.url("http://api.wvp-pro.cn:136/api/statistics/ping")
|
|
// .url("http://127.0.0.1:11236/api/statistics/ping")
|
|
.addHeader("Content-Type", "application/json")
|
|
.build();
|
|
try {
|
|
Response response = client.newCall(request).execute();
|
|
response.close();
|
|
Objects.requireNonNull(response.body()).close();
|
|
|
|
}catch (Exception ignored){}
|
|
}
|
|
}
|