package com.yami.trading.admin.task;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.yami.trading.api.websocket.WebSocketServer;
|
import com.yami.trading.api.websocket.WebSocketSession;
|
import com.yami.trading.bean.data.domain.Depth;
|
import com.yami.trading.bean.data.domain.DepthEntry;
|
import com.yami.trading.bean.data.domain.Realtime;
|
import com.yami.trading.bean.data.domain.TradeEntry;
|
import com.yami.trading.bean.item.domain.Item;
|
import com.yami.trading.common.util.MarketOpenChecker;
|
import com.yami.trading.common.util.StringUtils;
|
import com.yami.trading.common.web.ResultObject;
|
import com.yami.trading.huobi.data.DataCache;
|
import com.yami.trading.huobi.data.internal.DepthTimeObject;
|
import com.yami.trading.huobi.data.internal.TradeTimeObject;
|
import com.yami.trading.huobi.hobi.internal.XueQiuDataServiceImpl;
|
import com.yami.trading.service.item.ItemService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Component
|
@Lazy(value = false)
|
@Slf4j
|
public class AStockTradeListTask {
|
@Autowired
|
private DepthPushJob depthPushJob;
|
@Autowired
|
private ItemService itemService;
|
@Autowired
|
private XueQiuDataServiceImpl xueQiuDataService;
|
|
private volatile boolean isAStockInit = false;
|
private volatile boolean isUsStockInit = false;
|
|
|
//@Scheduled(cron = "*/5 * * * * ?")
|
public void sendTask() throws InterruptedException {
|
if(!isAStockInit){
|
fetchAStock();
|
isAStockInit = true;
|
}
|
if(MarketOpenChecker.isMarketOpenByItemCloseType(Item.A_STOCKS)){
|
fetchAStock();
|
}
|
|
if(!isUsStockInit){
|
fetchUs();
|
|
isUsStockInit = true;
|
}
|
if(MarketOpenChecker.isMarketOpenByItemCloseType(Item.US_STOCKS)){
|
fetchUs();
|
|
}
|
|
|
|
}
|
|
private void fetchAStock() {
|
String symbols = itemService.list().stream().filter(t->Item.A_STOCKS.equalsIgnoreCase(t.getOpenCloseType())).map(Item::getSymbol).collect(Collectors.joining(","));
|
xueQiuDataService.tradeList(symbols, false);
|
}
|
|
private void fetchUs() {
|
String usSymbols = itemService.findByType(Item.US_STOCKS).stream().map(Item::getSymbol).collect(Collectors.joining(","));
|
xueQiuDataService.tradeList(usSymbols, true);
|
}
|
|
|
}
|