fix:修改economictimes获取指数详情bug

This commit is contained in:
xiaoliuhu
2024-04-20 21:28:18 +08:00
parent a7e6cc0b05
commit 37bb619e24
2 changed files with 42 additions and 61 deletions

View File

@@ -1072,17 +1072,18 @@ public class StockService {
List<IndiaIndexVo> indexVoList = new ArrayList<>(); List<IndiaIndexVo> indexVoList = new ArrayList<>();
try { try {
//获取详情 //获取详情
String scripcode = "SENSEX"; String indexid = "2365";
String exchangeid = "47"; String exchange = "47";
String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); String keyName = "sensex";
IndiaIndexVo vo1 = new IndiaIndexVo(); IndiaIndexVo vo1 = new IndiaIndexVo();
JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); JSONObject object = EttechchartsApis.getStockDetail(indexid, exchange,keyName);
IndiaStockVO market = ettechchartsObjToVo(object); IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object);
market.setName("BSESENSEX指数"); market.setName("BSESENSEX指数");
vo1.setIndexVo(market); vo1.setIndexVo(market);
//获取k线图 1min 当天的数据 分钟 //获取k线图 1min 当天的数据 分钟
List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); String scripcode = "SENSEX";
List kine = EttechchartsApis.getStockKline(scripcode,exchange);
vo1.setKLine(kine); vo1.setKLine(kine);
indexVoList.add(vo1); indexVoList.add(vo1);
}catch (Exception e){ }catch (Exception e){
@@ -1090,16 +1091,17 @@ public class StockService {
} }
try { try {
//获取详情 //获取详情
String scripcode = "NSE+Index"; String indexid = "2369";
String exchangeid = "50"; String exchangeid = "50";
String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); String keyName = "nifty";
IndiaIndexVo vo1 = new IndiaIndexVo(); IndiaIndexVo vo1 = new IndiaIndexVo();
JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName);
IndiaStockVO market = ettechchartsObjToVo(object); IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object);
market.setName("NIFTY50指数"); market.setName("NIFTY50指数");
vo1.setIndexVo(market); vo1.setIndexVo(market);
//获取k线图 1min 当天的数据 分钟 //获取k线图 1min 当天的数据 分钟
String scripcode = "NSE+Index";
List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); List kine = EttechchartsApis.getStockKline(scripcode,exchangeid);
vo1.setKLine(kine); vo1.setKLine(kine);
indexVoList.add(vo1); indexVoList.add(vo1);
@@ -1109,27 +1111,5 @@ public class StockService {
return ServerResponse.createBySuccess(indexVoList); return ServerResponse.createBySuccess(indexVoList);
} }
private IndiaStockVO ettechchartsObjToVo(JSONObject object) {
IndiaStockVO market = new IndiaStockVO();
if (object.containsKey("Close")) {
market.setClose(object.getString("Close"));
}
if (object.containsKey("Adj_Close")) {
market.setNowPrice(object.getString("Adj_Close"));
}
if (object.containsKey("perchg")) {
market.setRate(object.getString("perchg"));
}
if (object.containsKey("High")) {
market.setHigh(object.getString("High"));
}
if (object.containsKey("Low")) {
market.setLow(object.getString("Low"));
}
if (object.containsKey("Open")) {
market.setOpen(object.getString("Open"));
}
return market;
}
} }

View File

@@ -56,51 +56,50 @@ public class EttechchartsApis {
// return null; // return null;
} }
//获取指数详情 //获取指数详情
public static JSONObject getStockDetail(String scripcode,String exchangeid,String currentTime){ public static JSONObject getStockDetail(String indexid,String exchange,String keyName){
String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/currenttick?scripcode=%s&exchangeid=%s&datatype=eod&filtertype=eod&tagId=&firstreceivedataid=2023-06-30&lastreceivedataid=%s&directions=current&callback=serviceHit.autoLoadResultCallback&scripcodetype=index",scripcode,exchangeid,currentTime); String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/liveindices?outputtype=json&indexid=2365&exchange=47&company=true&pagesize=1&sortby=percentchange&sortorder=desc&callback=objIndices.getDataCB&language=",indexid,exchange);
String str = get(url); String str = get(url);
if(StringUtils.isBlank(str)){ if(StringUtils.isBlank(str)){
return new JSONObject(); return new JSONObject();
} }
str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")")); str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")"));
JSONObject object = JSON.parseObject(str); JSONObject object = JSON.parseObject(str);
if(!object.containsKey("query")){ if(!object.containsKey("searchresult")){
return new JSONObject(); return new JSONObject();
} }
JSONObject query = object.getJSONObject("query"); JSONObject query = object.getJSONObject("searchresult");
if(!query.containsKey("results")){ if(!query.containsKey("index")){
return new JSONObject(); return new JSONObject();
} }
JSONObject results = query.getJSONObject("results"); JSONObject results = query.getJSONObject("index");
if(!results.containsKey("quote")){ if(!results.containsKey(keyName)){
return new JSONObject(); return new JSONObject();
} }
JSONArray quote = results.getJSONArray("quote"); return results.getJSONObject(keyName);
//
return (JSONObject) quote.get(0);
// return getList(object.getString("data"),1);
// return null;
} }
private static IndiaStockVO ettechchartsObjToVo(JSONObject object) { public static IndiaStockVO ettechchartsObjToVo(JSONObject object) {
IndiaStockVO market = new IndiaStockVO(); IndiaStockVO market = new IndiaStockVO();
if (object.containsKey("Close")) { if (object.containsKey("CloseIndexValue")) {
market.setClose(object.getString("Close")); market.setClose(object.getString("CloseIndexValue"));
} }
if (object.containsKey("Adj_Close")) { if (object.containsKey("PercentChange")) {
market.setNowPrice(object.getString("Adj_Close")); market.setRate(object.getString("PercentChange"));
} }
if (object.containsKey("perchg")) { if (object.containsKey("HighIndexValue")) {
market.setRate(object.getString("perchg")); market.setHigh(object.getString("HighIndexValue"));
} }
if (object.containsKey("High")) { if (object.containsKey("LowIndexValue")) {
market.setHigh(object.getString("High")); market.setLow(object.getString("LowIndexValue"));
} }
if (object.containsKey("Low")) { if (object.containsKey("OpenIndexValue")) {
market.setLow(object.getString("Low")); market.setOpen(object.getString("OpenIndexValue"));
} }
if (object.containsKey("Open")) { if (object.containsKey("CurrentIndexValue")) {
market.setOpen(object.getString("Open")); market.setNowPrice(object.getString("CurrentIndexValue"));
}
if (object.containsKey("NetChange")) {
market.setNumber(object.getString("NetChange"));
} }
return market; return market;
} }
@@ -109,9 +108,10 @@ public class EttechchartsApis {
//获取详情 //获取详情
String scripcode = "NSE+Index"; String scripcode = "NSE+Index";
String exchangeid = "50"; String exchangeid = "50";
String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); String indexid = "2369";
String keyName = "nifty";
IndiaIndexVo vo1 = new IndiaIndexVo(); IndiaIndexVo vo1 = new IndiaIndexVo();
JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName);
IndiaStockVO market = ettechchartsObjToVo(object); IndiaStockVO market = ettechchartsObjToVo(object);
market.setName("NIFTY50指数"); market.setName("NIFTY50指数");
vo1.setIndexVo(market); vo1.setIndexVo(market);
@@ -125,10 +125,11 @@ public class EttechchartsApis {
public static void requestSensexData(List<IndiaIndexVo> indexVoList) { public static void requestSensexData(List<IndiaIndexVo> indexVoList) {
//获取详情 //获取详情
String scripcode = "SENSEX"; String scripcode = "SENSEX";
String indexid = "2365";
String exchangeid = "47"; String exchangeid = "47";
String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); String keyName = "sensex";
IndiaIndexVo vo1 = new IndiaIndexVo(); IndiaIndexVo vo1 = new IndiaIndexVo();
JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName);
IndiaStockVO market = ettechchartsObjToVo(object); IndiaStockVO market = ettechchartsObjToVo(object);
market.setName("BSESENSEX指数"); market.setName("BSESENSEX指数");
vo1.setIndexVo(market); vo1.setIndexVo(market);