diff --git a/src/main/java/cn/stock/market/domain/basic/service/StockService.java b/src/main/java/cn/stock/market/domain/basic/service/StockService.java index d9eee2d..bbc7a24 100644 --- a/src/main/java/cn/stock/market/domain/basic/service/StockService.java +++ b/src/main/java/cn/stock/market/domain/basic/service/StockService.java @@ -1072,17 +1072,18 @@ public class StockService { List indexVoList = new ArrayList<>(); try { //获取详情 - String scripcode = "SENSEX"; - String exchangeid = "47"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String indexid = "2365"; + String exchange = "47"; + String keyName = "sensex"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); - IndiaStockVO market = ettechchartsObjToVo(object); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchange,keyName); + IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object); market.setName("BSESENSEX指数"); vo1.setIndexVo(market); //获取k线图 1min 当天的数据 分钟 - List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + String scripcode = "SENSEX"; + List kine = EttechchartsApis.getStockKline(scripcode,exchange); vo1.setKLine(kine); indexVoList.add(vo1); }catch (Exception e){ @@ -1090,16 +1091,17 @@ public class StockService { } try { //获取详情 - String scripcode = "NSE+Index"; + String indexid = "2369"; String exchangeid = "50"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String keyName = "nifty"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); - IndiaStockVO market = ettechchartsObjToVo(object); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); + IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object); market.setName("NIFTY50指数"); vo1.setIndexVo(market); //获取k线图 1min 当天的数据 分钟 + String scripcode = "NSE+Index"; List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); vo1.setKLine(kine); indexVoList.add(vo1); @@ -1109,27 +1111,5 @@ public class StockService { 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; - } } \ No newline at end of file diff --git a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java index 03917b0..ad73998 100644 --- a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java +++ b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java @@ -56,51 +56,50 @@ public class EttechchartsApis { // return null; } //获取指数详情 - public static JSONObject getStockDetail(String scripcode,String exchangeid,String currentTime){ - 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); + public static JSONObject getStockDetail(String indexid,String exchange,String keyName){ + 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); if(StringUtils.isBlank(str)){ return new JSONObject(); } str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")")); JSONObject object = JSON.parseObject(str); - if(!object.containsKey("query")){ + if(!object.containsKey("searchresult")){ return new JSONObject(); } - JSONObject query = object.getJSONObject("query"); - if(!query.containsKey("results")){ + JSONObject query = object.getJSONObject("searchresult"); + if(!query.containsKey("index")){ return new JSONObject(); } - JSONObject results = query.getJSONObject("results"); - if(!results.containsKey("quote")){ + JSONObject results = query.getJSONObject("index"); + if(!results.containsKey(keyName)){ return new JSONObject(); } - JSONArray quote = results.getJSONArray("quote"); -// - return (JSONObject) quote.get(0); -// return getList(object.getString("data"),1); -// return null; + return results.getJSONObject(keyName); } - private static IndiaStockVO ettechchartsObjToVo(JSONObject object) { + public static IndiaStockVO ettechchartsObjToVo(JSONObject object) { IndiaStockVO market = new IndiaStockVO(); - if (object.containsKey("Close")) { - market.setClose(object.getString("Close")); + if (object.containsKey("CloseIndexValue")) { + market.setClose(object.getString("CloseIndexValue")); } - if (object.containsKey("Adj_Close")) { - market.setNowPrice(object.getString("Adj_Close")); + if (object.containsKey("PercentChange")) { + market.setRate(object.getString("PercentChange")); } - if (object.containsKey("perchg")) { - market.setRate(object.getString("perchg")); + if (object.containsKey("HighIndexValue")) { + market.setHigh(object.getString("HighIndexValue")); } - if (object.containsKey("High")) { - market.setHigh(object.getString("High")); + if (object.containsKey("LowIndexValue")) { + market.setLow(object.getString("LowIndexValue")); } - if (object.containsKey("Low")) { - market.setLow(object.getString("Low")); + if (object.containsKey("OpenIndexValue")) { + market.setOpen(object.getString("OpenIndexValue")); } - if (object.containsKey("Open")) { - market.setOpen(object.getString("Open")); + if (object.containsKey("CurrentIndexValue")) { + market.setNowPrice(object.getString("CurrentIndexValue")); + } + if (object.containsKey("NetChange")) { + market.setNumber(object.getString("NetChange")); } return market; } @@ -109,9 +108,10 @@ public class EttechchartsApis { //获取详情 String scripcode = "NSE+Index"; String exchangeid = "50"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String indexid = "2369"; + String keyName = "nifty"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); IndiaStockVO market = ettechchartsObjToVo(object); market.setName("NIFTY50指数"); vo1.setIndexVo(market); @@ -125,10 +125,11 @@ public class EttechchartsApis { public static void requestSensexData(List indexVoList) { //获取详情 String scripcode = "SENSEX"; + String indexid = "2365"; String exchangeid = "47"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String keyName = "sensex"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); IndiaStockVO market = ettechchartsObjToVo(object); market.setName("BSESENSEX指数"); vo1.setIndexVo(market);