fix:优化股票K线图

This commit is contained in:
xiaoliuhu
2024-05-06 08:14:23 +08:00
parent 68e12d321f
commit d799898bcc
2 changed files with 58 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ import cn.hutool.http.HttpUtil;
import cn.stock.market.domain.basic.entity.RetifiveStock;
import cn.stock.market.dto.RetifiveStockInfo;
import cn.stock.market.dto.StockHistoryResponse;
import cn.stock.market.utils.DateTimeUtil;
import cn.stock.market.utils.RefinitivUtil;
import com.ag.exception.SysTipsException;
import com.alibaba.fastjson.JSONArray;
@@ -25,6 +26,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -268,19 +270,48 @@ public class RefinitivConsumer implements ApplicationRunner {
int countback = 5;
String interval = null;
String resourceEndpoint = null;
if(StringUtils.equals("H",resolution)){
Date start = new Date();
if(StringUtils.equals("1m",resolution)){
start = DateTimeUtil.getDayOfMorning(start,0);
countback = 360;
interval = "PT1M";
resourceEndpoint = baseURLToday + symbol;
}else
if(StringUtils.equals("3m",resolution)){
start = DateTimeUtil.getDayOfMorning(start,0);
countback = 150;
interval = "PT3M";
resourceEndpoint = baseURLToday + symbol;
}else
if(StringUtils.equals("15m",resolution)){
start = DateTimeUtil.getDayOfMorning(start,0);
countback = 50;
interval = "PT15M";
resourceEndpoint = baseURLToday + symbol;
}else
if(StringUtils.equals("30m",resolution)){
start = DateTimeUtil.getDayOfMorning(start,0);
countback = 30;
interval = "PT30M";
resourceEndpoint = baseURLToday + symbol;
}else
if(StringUtils.equals("H",resolution)){
start = DateTimeUtil.getDayOfMorning(start,0);
countback = 60;
interval = "PT1H";
resourceEndpoint = baseURLToday + symbol;
}else if(StringUtils.equals("D",resolution)){
start = DateTimeUtil.getDayOfMorning(start,-30);
countback = 30;
interval ="P1D";
resourceEndpoint = baseURLHistory + symbol;
}else if(StringUtils.equals("W",resolution)){
start = DateTimeUtil.getDayOfMorning(start,-60);
countback = 30;
interval ="P1W";
resourceEndpoint = baseURLHistory + symbol;
}else if(StringUtils.equals("M",resolution)){
start = DateTimeUtil.getDayOfYear(start,-1);
countback = 30;
interval ="P1M";
resourceEndpoint = baseURLHistory + symbol;
@@ -288,7 +319,7 @@ public class RefinitivConsumer implements ApplicationRunner {
HttpResponse response = HttpUtil.createGet(resourceEndpoint)
.form("eventTypes","trade,quote")
.form("start","2023-05-11T18:30:12.000000000Z")
.form("start",start)
.form("count",countback)
.form("interval",interval)
.header("Authorization","Bearer " + token)

View File

@@ -185,6 +185,31 @@ public class DateTimeUtil {
return cal.getTime();
}
/**
* 获取某个时间的凌晨时间
* @param time
* @param date
* @return
*/
public static Date getDayOfMorning(Date time,Integer date){
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(time);
lastDate.add(Calendar.DATE,date);
lastDate.set(Calendar.HOUR_OF_DAY,0);
lastDate.set(Calendar.MINUTE,0);
lastDate.set(Calendar.SECOND,0);
lastDate.set(Calendar.MILLISECOND,0);
return lastDate.getTime();
}
//获取某个时间的前/后时间,以年为单位
public static Date getDayOfYear(Date time,Integer date){
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(time);
lastDate.add(Calendar.YEAR,date);
return lastDate.getTime();
}
public static void main(String[] args) {
parseToDateByMinute(10);