From 662537bcbecda7d2255ccd3bcfb18a974a375622 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Mon, 22 Apr 2024 14:23:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?RefinitivApiController=E8=82=A1=E7=A5=A8?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E4=BF=A1=E6=81=AF=E6=B7=BB=E5=8A=A0id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/stock/market/web/RefinitivApiController.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/cn/stock/market/web/RefinitivApiController.java b/src/main/java/cn/stock/market/web/RefinitivApiController.java index 6437e8e..e4cd9a4 100644 --- a/src/main/java/cn/stock/market/web/RefinitivApiController.java +++ b/src/main/java/cn/stock/market/web/RefinitivApiController.java @@ -1,5 +1,7 @@ package cn.stock.market.web; +import cn.stock.market.domain.basic.entity.RetifiveStock; +import cn.stock.market.domain.basic.service.RetifiveStockService; import cn.stock.market.dto.RetifiveStockInfo; import cn.stock.market.listener.AppClient; import cn.stock.market.utils.RefinitivUtil; @@ -13,6 +15,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -34,19 +37,25 @@ public class RefinitivApiController { @Resource private AppClient appClient; + @Autowired + private RetifiveStockService retifiveStockService; @ApiOperation(value = "股票详情信息", httpMethod = "GET", response = RetifiveStockInfo.class) @ApiImplicitParams({@ApiImplicitParam(name = "symbol", value = "symbol值")}) @GetMapping("/getStockDetail") @EncryptFilter(decryptRequest = false) public ServerResponse getStockDetail(String symbol) { - // 计算每个线程应处理的元素数量 try { appClient.subscribe(symbol); // 等待消息, 设置超时时间,例如10秒 RefreshMsg refreshMsg = appClient.getMessageFuture().get(10, TimeUnit.SECONDS); if (DataType.DataTypes.FIELD_LIST == refreshMsg.payload().dataType()) { RetifiveStockInfo retifiveStockInfo = RefinitivUtil.decodeData(refreshMsg.payload().fieldList(), refreshMsg.name()); + //获取股票id + RetifiveStock stock = retifiveStockService.repository().findBtStockByCoCode(symbol); + if(stock != null){ + retifiveStockInfo.setId(stock.getId()); + } return ServerResponse.createBySuccess("操作成功", retifiveStockInfo); } } catch (Exception e) { From 42b9d2917aadbd6bb23898daced41797b5915e33 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Mon, 22 Apr 2024 15:15:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Refinitiv=E8=82=A1=E7=A5=A8=E8=A1=8C?= =?UTF-8?q?=E6=83=85=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/stock/market/dto/RetifiveStockInfo.java | 6 +++--- .../java/cn/stock/market/utils/RefinitivUtil.java | 10 +++++----- .../stock/market/web/MessageRetifiveController.java | 13 ++----------- .../cn/stock/market/web/RefinitivApiController.java | 13 +++++++++++++ 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/main/java/cn/stock/market/dto/RetifiveStockInfo.java b/src/main/java/cn/stock/market/dto/RetifiveStockInfo.java index 4158a3a..e2b76cd 100644 --- a/src/main/java/cn/stock/market/dto/RetifiveStockInfo.java +++ b/src/main/java/cn/stock/market/dto/RetifiveStockInfo.java @@ -30,12 +30,12 @@ public class RetifiveStockInfo { private String stockType; @ApiModelProperty("当前价格") - private String currentPrice; + private String lastPrice; @ApiModelProperty("变动百分比") - private String changePercent; + private String perchg; @ApiModelProperty("变动值") - private String changeValue; + private String change; @ApiModelProperty("开盘价格") private String openPrice; diff --git a/src/main/java/cn/stock/market/utils/RefinitivUtil.java b/src/main/java/cn/stock/market/utils/RefinitivUtil.java index 2776101..b44b2d2 100644 --- a/src/main/java/cn/stock/market/utils/RefinitivUtil.java +++ b/src/main/java/cn/stock/market/utils/RefinitivUtil.java @@ -127,10 +127,10 @@ public class RefinitivUtil { } return RetifiveStockInfo.builder() .stockCode(stockCode).stockName(stockName).symbol(name).status(status) - .openPrice(openPrice).currentPrice(price).highPrice(high).lowPrice(low) - .previousPrice(previousPrice).changePercent(percentChange).volume(volume) + .openPrice(openPrice).lastPrice(price).highPrice(high).lowPrice(low) + .previousPrice(previousPrice).perchg(percentChange).volume(volume) .week52HighPrice(week52High).week52LowPrice(week52Low).stockType(stockType) - .changeValue(changeValue) + .change(changeValue) .build(); } @@ -257,8 +257,8 @@ public class RefinitivUtil { } } RetifiveStockInfo retifiveStockInfo = RetifiveStockInfo.builder().stockCode(stockCode).stockName(stockName).symbol(name).status(status) - .openPrice(openPrice).currentPrice(price).highPrice(high).lowPrice(low).previousPrice(previousPrice).changePercent(percentChange) - .volume(volume).week52HighPrice(week52High).week52LowPrice(week52Low).stockType(stockType).changeValue(changeValue) + .openPrice(openPrice).lastPrice(price).highPrice(high).lowPrice(low).previousPrice(previousPrice).perchg(percentChange) + .volume(volume).week52HighPrice(week52High).week52LowPrice(week52Low).stockType(stockType).change(changeValue) .build(); return retifiveStockInfo; diff --git a/src/main/java/cn/stock/market/web/MessageRetifiveController.java b/src/main/java/cn/stock/market/web/MessageRetifiveController.java index c296323..0c65763 100644 --- a/src/main/java/cn/stock/market/web/MessageRetifiveController.java +++ b/src/main/java/cn/stock/market/web/MessageRetifiveController.java @@ -3,19 +3,15 @@ package cn.stock.market.web; import cn.stock.market.domain.basic.entity.RetifiveStock; import cn.stock.market.domain.basic.service.RetifiveStockService; import cn.stock.market.dto.RetifiveStockInfo; -import cn.stock.market.infrastructure.db.po.RetifiveStockPO; import cn.stock.market.listener.AppClient; import cn.stock.market.listener.ConcurrentAppClient; import cn.stock.market.listener.StockInfoRefinitiv; import cn.stock.market.listener.SymbolRefinitiv; import cn.stock.market.utils.ServerResponse; import com.google.common.collect.Lists; -import com.thomsonreuters.ema.access.Data; import com.thomsonreuters.ema.access.DataType; import com.thomsonreuters.ema.access.FieldEntry; import com.thomsonreuters.ema.access.FieldList; -import com.thomsonreuters.ema.access.Map; -import com.thomsonreuters.ema.access.MapEntry; import com.thomsonreuters.ema.access.RefreshMsg; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -27,14 +23,9 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; import java.util.Iterator; import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -661,8 +652,8 @@ public class MessageRetifiveController { } } RetifiveStockInfo retifiveStockInfo = RetifiveStockInfo.builder().stockCode(stockCode).stockName(stockName).symbol(name).status(status) - .openPrice(openPrice).currentPrice(price).highPrice(high).lowPrice(low).previousPrice(previousPrice).changePercent(percentChange) - .volume(volume).week52HighPrice(week52High).week52LowPrice(week52Low).stockType(stockType).changeValue(changeValue) + .openPrice(openPrice).lastPrice(price).highPrice(high).lowPrice(low).previousPrice(previousPrice).perchg(percentChange) + .volume(volume).week52HighPrice(week52High).week52LowPrice(week52Low).stockType(stockType).change(changeValue) .build(); return retifiveStockInfo; diff --git a/src/main/java/cn/stock/market/web/RefinitivApiController.java b/src/main/java/cn/stock/market/web/RefinitivApiController.java index e4cd9a4..5a2a868 100644 --- a/src/main/java/cn/stock/market/web/RefinitivApiController.java +++ b/src/main/java/cn/stock/market/web/RefinitivApiController.java @@ -1,5 +1,6 @@ package cn.stock.market.web; +import cn.hutool.core.util.StrUtil; import cn.stock.market.domain.basic.entity.RetifiveStock; import cn.stock.market.domain.basic.service.RetifiveStockService; import cn.stock.market.dto.RetifiveStockInfo; @@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -94,6 +96,10 @@ public class RefinitivApiController { @GetMapping("/getTopActives") @EncryptFilter(decryptRequest = false) public ServerResponse getTopActives(@RequestParam String stockType) { + if (StrUtil.equalsIgnoreCase(stockType, "nse")) { + return ServerResponse.createBySuccess("操作成功", new ArrayList<>()); + } + String name = ".AV.BO"; List list = Lists.newArrayList(); try { @@ -120,6 +126,9 @@ public class RefinitivApiController { @GetMapping("/getTopGainers") @EncryptFilter(decryptRequest = false) public ServerResponse getTopGainers(@RequestParam String stockType) { + if (StrUtil.equalsIgnoreCase(stockType, "nse")) { + return ServerResponse.createBySuccess("操作成功", new ArrayList<>()); + } String name = ".PG.BO"; List list = Lists.newArrayList(); try { @@ -146,6 +155,10 @@ public class RefinitivApiController { @GetMapping("/getTopLosers") @EncryptFilter(decryptRequest = false) public ServerResponse getTopLosers(@RequestParam String stockType) { + if (StrUtil.equalsIgnoreCase(stockType, "nse")) { + return ServerResponse.createBySuccess("操作成功", new ArrayList<>()); + } + String name = ".PL.BO"; List list = Lists.newArrayList(); try {