RefinitivApiController股票详情信息添加id

This commit is contained in:
zhangjian
2024-04-22 14:23:35 +08:00
parent 658abd04e0
commit 662537bcbe

View File

@@ -1,5 +1,7 @@
package cn.stock.market.web; 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.dto.RetifiveStockInfo;
import cn.stock.market.listener.AppClient; import cn.stock.market.listener.AppClient;
import cn.stock.market.utils.RefinitivUtil; import cn.stock.market.utils.RefinitivUtil;
@@ -13,6 +15,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; 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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@@ -34,19 +37,25 @@ public class RefinitivApiController {
@Resource @Resource
private AppClient appClient; private AppClient appClient;
@Autowired
private RetifiveStockService retifiveStockService;
@ApiOperation(value = "股票详情信息", httpMethod = "GET", response = RetifiveStockInfo.class) @ApiOperation(value = "股票详情信息", httpMethod = "GET", response = RetifiveStockInfo.class)
@ApiImplicitParams({@ApiImplicitParam(name = "symbol", value = "symbol值")}) @ApiImplicitParams({@ApiImplicitParam(name = "symbol", value = "symbol值")})
@GetMapping("/getStockDetail") @GetMapping("/getStockDetail")
@EncryptFilter(decryptRequest = false) @EncryptFilter(decryptRequest = false)
public ServerResponse<?> getStockDetail(String symbol) { public ServerResponse<?> getStockDetail(String symbol) {
// 计算每个线程应处理的元素数量
try { try {
appClient.subscribe(symbol); appClient.subscribe(symbol);
// 等待消息, 设置超时时间例如10秒 // 等待消息, 设置超时时间例如10秒
RefreshMsg refreshMsg = appClient.getMessageFuture().get(10, TimeUnit.SECONDS); RefreshMsg refreshMsg = appClient.getMessageFuture().get(10, TimeUnit.SECONDS);
if (DataType.DataTypes.FIELD_LIST == refreshMsg.payload().dataType()) { if (DataType.DataTypes.FIELD_LIST == refreshMsg.payload().dataType()) {
RetifiveStockInfo retifiveStockInfo = RefinitivUtil.decodeData(refreshMsg.payload().fieldList(), refreshMsg.name()); 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); return ServerResponse.createBySuccess("操作成功", retifiveStockInfo);
} }
} catch (Exception e) { } catch (Exception e) {