Compare commits

...

2 Commits

12 changed files with 158 additions and 18 deletions

View File

@ -65,8 +65,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -307,4 +307,22 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
return DateUtils.parseDate(format);
}
/**
* 获取当天零点零时零分 时间
* @return Date
*/
public static Date getZeroTimeOfToday() {
// 获取 Calendar 实例
Calendar calendar = Calendar.getInstance();
// 将小时分钟秒和毫秒都设置为 0
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
// 返回 Date 对象
return calendar.getTime();
}
}

View File

@ -105,8 +105,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -123,8 +123,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -67,8 +67,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -145,8 +145,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -20,8 +20,11 @@ import java.math.BigDecimal;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;
import java.time.Instant;
import java.util.*;
import static com.jxy.common.core.utils.DateUtils.getZeroTimeOfToday;
/**
* @Description 稳定币流通量
@ -105,20 +108,23 @@ public class CSupplyTask {
JSONObject jsonObject = JSONObject.parseObject(s);
//币种流通量字段
JSONObject marketData = jsonObject.getJSONObject("market_data");
Date date;
try {
//币种流通量最后更新时间
date = (Date) marketData.get("last_updated");
}catch (Exception e){
return null;
}
//String dateString;
//try {
// //币种流通量最后更新时间
// dateString = (String) marketData.get("last_updated");
//}catch (Exception e){
// return null;
//}
//Instant instant = Instant.parse(dateString);
//Date date = Date.from(instant);
Date zeroTimeOfToday = getZeroTimeOfToday();
double doubleValue = marketData.getDoubleValue("circulating_supply");
List<CirculatingSupplyDataDto> circulatingSupplyDataDtos = new ArrayList<>();
CirculatingSupplyDataDto circulatingSupplyDataDto = new CirculatingSupplyDataDto();
circulatingSupplyDataDto.setValue(BigDecimal.valueOf(doubleValue));
circulatingSupplyDataDto.setDate(date);
circulatingSupplyDataDto.setDate(zeroTimeOfToday);
circulatingSupplyDataDtos.add(circulatingSupplyDataDto);
log.info("获取{}币流通量数据成功,最新时间{},流通量{}", coinId, date, doubleValue);
log.info("获取{}币流通量数据成功,最新时间{},流通量{}", coinId, zeroTimeOfToday, doubleValue);
return circulatingSupplyDataDtos;
}

View File

@ -0,0 +1,107 @@
package com.jxy.marketall.utils;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.jxy.common.core.utils.DateUtils;
import com.jxy.marketall.dto.CirculatingSupplyDataDto;
import com.jxy.marketall.task.CSupplyTask;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.jxy.common.core.utils.DateUtils.getZeroTimeOfToday;
/**
* @Description TODO
* @Date 2025/5/16 09:42
* @Author yyb
*/
public class TestCoingckoApi {
private static final Logger log = LoggerFactory.getLogger(CSupplyTask.class);
public static void main(String[] args) {
//String id = "binance-usd";
//HttpHeaders headers = new HttpHeaders();
//headers.add("Content-Type","application/json");
//headers.add("x-cg-demo-api-key","CG-kNuNBTKBcQREBSQKqgj2uua4");
//headers.add("User-Agent", "Mozilla/5.0");
//HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
//StringBuffer paramsURL = new StringBuffer(API_URL+id);
//String s = HttpUtil.get(paramsURL.toString());
//
//JSONObject jsonObject = JSONObject.parseObject(s);
////币种流通量字段
//JSONObject marketData = jsonObject.getJSONObject("market_data");
//Date date = null;
//try {
// //币种流通量最后更新时间
// date = (Date) marketData.get("last_updated");
//}catch (Exception e){
//
//}
//double doubleValue = marketData.getDoubleValue("circulating_supply");
//List<CirculatingSupplyDataDto> circulatingSupplyDataDtos = new ArrayList<>();
//CirculatingSupplyDataDto circulatingSupplyDataDto = new CirculatingSupplyDataDto();
//circulatingSupplyDataDto.setValue(BigDecimal.valueOf(doubleValue));
//circulatingSupplyDataDto.setDate(date);
//circulatingSupplyDataDtos.add(circulatingSupplyDataDto);
//log.info("获取{}币流通量数据成功,最新时间{},流通量{}", id, date, doubleValue);
try {
// 配置 HTTP 代理
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7897));
// 创建 URL 对象
URL url = new URL("https://api.coingecko.com/api/v3/coins/binance-usd");
// 打开连接并设置代理
HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
// 设置请求方法
connection.setRequestMethod("GET");
// 获取响应码
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
// 读取响应内容
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
JSONObject jsonObject = JSONObject.parseObject(response.toString());
JSONObject marketData = jsonObject.getJSONObject("market_data");
double doubleValue = marketData.getDoubleValue("circulating_supply");
//String dateString = (String) marketData.get("last_updated");
// 输出响应内容
System.out.println("doubleValue: " + doubleValue + "date:"+getZeroTimeOfToday());
} catch (IOException e) {
e.printStackTrace();
}
}
private static final String[] COINS = {"tether", "usd-coin", "binance-usd"};
private static final String[] SYMBOLS = {"USDT", "USDC", "BUSD"};
private static final String API_URL = "https://api.coingecko.com/api/v3/coins/";
}

View File

@ -129,8 +129,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -93,8 +93,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -93,8 +93,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>

View File

@ -94,8 +94,9 @@
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<executions>
<execution>
<goals>