支持Retifive的操作
This commit is contained in:
@@ -52,7 +52,7 @@ public class AppClient implements OmmConsumerClient {
|
||||
|
||||
@Override
|
||||
public void onRefreshMsg(RefreshMsg refreshMsg, OmmConsumerEvent event) {
|
||||
log.error("监听的消息:"+refreshMsg.toString());
|
||||
// log.error("监听的消息:"+refreshMsg.toString());
|
||||
messageFuture.complete(refreshMsg);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,6 @@ public class AppClient implements OmmConsumerClient {
|
||||
|
||||
@Override
|
||||
public void onAllMsg(Msg msg, OmmConsumerEvent consumerEvent) {
|
||||
|
||||
}
|
||||
// 其他消息处理...
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ 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;
|
||||
@@ -214,6 +215,104 @@ public class MessageRetifiveController {
|
||||
|
||||
|
||||
|
||||
@GetMapping("/getBSETopActivesList")
|
||||
public ServerResponse<?> getGainerList(String itemName) {
|
||||
|
||||
// 计算每个线程应处理的元素数量
|
||||
String name = ".AV.BO";
|
||||
List<RetifiveStockInfo> list = Lists.newArrayList();
|
||||
try {
|
||||
appClient.subscribe(name); // 根据itemName订阅
|
||||
// 等待消息
|
||||
RefreshMsg refreshMsg = appClient.getMessageFuture().get(10, TimeUnit.SECONDS);// 设置超时时间,例如10秒
|
||||
if (DataType.DataTypes.FIELD_LIST == refreshMsg.payload().dataType()){
|
||||
List<String> strings = decode4(refreshMsg.payload().fieldList());
|
||||
for (String link : strings) {
|
||||
appClient.subscribe(link); // 根据itemName订阅
|
||||
// 等待消息
|
||||
RefreshMsg refreshMsg2 = appClient.getMessageFuture().get(10, TimeUnit.SECONDS);
|
||||
if (DataType.DataTypes.FIELD_LIST == refreshMsg2.payload().dataType()){
|
||||
list.add(decode3(refreshMsg2.payload().fieldList(),refreshMsg2.name()));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("获取股票详情link:"+name,e);
|
||||
}
|
||||
return ServerResponse.createBySuccess("操作成功",list);
|
||||
}
|
||||
|
||||
@GetMapping("/getBSETopGainerList")
|
||||
public ServerResponse<?> getBSETopGainerList() {
|
||||
|
||||
// 计算每个线程应处理的元素数量
|
||||
String name = ".PG.BO";
|
||||
List<RetifiveStockInfo> list = Lists.newArrayList();
|
||||
try {
|
||||
appClient.subscribe(name); // 根据itemName订阅
|
||||
// 等待消息
|
||||
RefreshMsg refreshMsg = appClient.getMessageFuture().get(10, TimeUnit.SECONDS);// 设置超时时间,例如10秒
|
||||
if (DataType.DataTypes.FIELD_LIST == refreshMsg.payload().dataType()){
|
||||
List<String> strings = decode4(refreshMsg.payload().fieldList());
|
||||
for (String link : strings) {
|
||||
appClient.subscribe(link); // 根据itemName订阅
|
||||
// 等待消息
|
||||
RefreshMsg refreshMsg2 = appClient.getMessageFuture().get(10, TimeUnit.SECONDS);
|
||||
if (DataType.DataTypes.FIELD_LIST == refreshMsg2.payload().dataType()){
|
||||
list.add(decode3(refreshMsg2.payload().fieldList(),refreshMsg2.name()));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("获取股票详情link:"+name,e);
|
||||
}
|
||||
return ServerResponse.createBySuccess("操作成功",list);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/getBSETopLoserList")
|
||||
public ServerResponse<?> getBSETopLoserList() {
|
||||
|
||||
// 计算每个线程应处理的元素数量
|
||||
String name = ".PL.BO";
|
||||
List<RetifiveStockInfo> list = Lists.newArrayList();
|
||||
try {
|
||||
appClient.subscribe(name); // 根据itemName订阅
|
||||
// 等待消息
|
||||
RefreshMsg refreshMsg = appClient.getMessageFuture().get(10, TimeUnit.SECONDS);// 设置超时时间,例如10秒
|
||||
if (DataType.DataTypes.FIELD_LIST == refreshMsg.payload().dataType()){
|
||||
List<String> strings = decode4(refreshMsg.payload().fieldList());
|
||||
for (String link : strings) {
|
||||
appClient.subscribe(link); // 根据itemName订阅
|
||||
// 等待消息
|
||||
RefreshMsg refreshMsg2 = appClient.getMessageFuture().get(10, TimeUnit.SECONDS);
|
||||
if (DataType.DataTypes.FIELD_LIST == refreshMsg2.payload().dataType()){
|
||||
list.add(decode3(refreshMsg2.payload().fieldList(),refreshMsg2.name()));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("获取股票详情link:"+name,e);
|
||||
}
|
||||
return ServerResponse.createBySuccess("操作成功",list);
|
||||
}
|
||||
|
||||
private List<String> decode4(FieldList fieldList) {
|
||||
List<String> list = Lists.newArrayList();
|
||||
String nextLink = "";
|
||||
for (FieldEntry fieldEntry : fieldList){
|
||||
// System.err.println("Fid: " + fieldEntry.fieldId() + " Name = " + fieldEntry.name() + " DataType: " + DataType.asString(fieldEntry.load().dataType()) + " Value: "+ fieldEntry.load().toString());
|
||||
if(fieldEntry.name().startsWith("BR_LINK")){
|
||||
nextLink = fieldEntry.load().toString();
|
||||
if(!nextLink.contains("blank data")){
|
||||
list.add(nextLink);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/* void decode(FieldList fieldList)
|
||||
{
|
||||
for (FieldEntry fieldEntry : fieldList)
|
||||
@@ -267,7 +366,7 @@ public class MessageRetifiveController {
|
||||
while (iter.hasNext())
|
||||
{
|
||||
fieldEntry = iter.next();
|
||||
System.out.println("Fid: " + fieldEntry.fieldId() + " Name: " + fieldEntry.name() + " value: " + fieldEntry.load());
|
||||
//System.out.println("Fid: " + fieldEntry.fieldId() + " Name: " + fieldEntry.name() + " value: " + fieldEntry.load());
|
||||
if(fieldEntry.name().startsWith("LINK_")){
|
||||
if(fieldEntry.loadType() == DataType.DataTypes.ASCII){
|
||||
String symbol = fieldEntry.load().toString();
|
||||
@@ -344,7 +443,7 @@ public class MessageRetifiveController {
|
||||
while (iter.hasNext())
|
||||
{
|
||||
fieldEntry = iter.next();
|
||||
System.out.println("Fid: " + fieldEntry.fieldId() + " Name: " + fieldEntry.name() +" Unit: "+DataType.asString(fieldEntry.loadType()) + " value: " + fieldEntry.load());
|
||||
// System.out.println("Fid: " + fieldEntry.fieldId() + " Name: " + fieldEntry.name() +" Unit: "+DataType.asString(fieldEntry.loadType()) + " value: " + fieldEntry.load());
|
||||
if(fieldEntry.name().equals("DSPLY_NAME")){
|
||||
if(fieldEntry.loadType() == DataType.DataTypes.RMTES) {
|
||||
stockName = fieldEntry.load().toString();
|
||||
@@ -440,10 +539,10 @@ public class MessageRetifiveController {
|
||||
stockInfoRefinitiv.setCommandStr(name);
|
||||
mongoTemplate.insert(stockInfoRefinitiv);*/
|
||||
|
||||
RetifiveStockInfo retifiveStockInfo = RetifiveStockInfo.builder().stockCode(stockCode).stockName(stockName).symbol(name).status(status)
|
||||
/* 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)
|
||||
.build();
|
||||
.build();*/
|
||||
|
||||
RetifiveStock retifiveStock = RetifiveStock.builder().stockType(stockType).saveTime(new Date()).isLock(0).isShow(0)
|
||||
.stockCode(stockCode).symbol(name).stockName(stockName).build();
|
||||
@@ -473,7 +572,7 @@ public class MessageRetifiveController {
|
||||
while (iter.hasNext())
|
||||
{
|
||||
fieldEntry = iter.next();
|
||||
System.out.println("Fid: " + fieldEntry.fieldId() + " Name: " + fieldEntry.name() +" Unit: "+DataType.asString(fieldEntry.loadType()) + " value: " + fieldEntry.load());
|
||||
// System.out.println("Fid: " + fieldEntry.fieldId() + " Name: " + fieldEntry.name() +" Unit: "+DataType.asString(fieldEntry.loadType()) + " value: " + fieldEntry.load());
|
||||
if(fieldEntry.name().equals("DSPLY_NAME")){
|
||||
if(fieldEntry.loadType() == DataType.DataTypes.RMTES) {
|
||||
stockName = fieldEntry.load().toString();
|
||||
@@ -569,6 +668,8 @@ public class MessageRetifiveController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private static List<String> generateItemNames() {
|
||||
List<String> itemNames = new ArrayList<>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user