trading-order-admin/src/main/java/com/yami/trading/admin/task/InitHandle.java
@@ -121,7 +121,10 @@ for (Item item : items) { Realtime realtime = dataDBService.get(item.getSymbol()); if (realtime != null) { DataCache.putRealtime(item.getSymbol(), realtime); //停牌时不更新 //if (!itemService.isSuspended(item.getSymbol())) { DataCache.putRealtime(item.getSymbol(), realtime); //} } } @@ -216,7 +219,10 @@ for (Item item : items) { Realtime realtime = dataDBService.get(item.getSymbol()); if (realtime != null) { DataCache.putRealtime(item.getSymbol(), realtime); //停牌时不更新 //if (!itemService.isSuspended(item.getSymbol())) { DataCache.putRealtime(item.getSymbol(), realtime); //} } } trading-order-admin/src/main/java/com/yami/trading/admin/task/KlineLoadCache.java
@@ -49,7 +49,10 @@ String symbol = item.getSymbol(); Realtime realtime = klineService.findLatestRealtime(symbol); if (null != realtime) { DataCache.putLatestRealTime(symbol, realtime); //停牌时不更新 if (!itemService.isSuspended(symbol)) { DataCache.putLatestRealTime(symbol, realtime); } } } @@ -62,7 +65,10 @@ } DataCache.latestRealTimeMap_60s.put(symbol, list); if (CollectionUtil.isNotEmpty(list)) { DataCache.putLatestRealTime(symbol, list.get(0)); //停牌时不更新 if (!itemService.isSuspended(symbol)) { DataCache.putLatestRealTime(symbol, list.get(0)); } } } trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
@@ -93,7 +93,7 @@ symbol = item.getSymbol(); item = this.itemService.findBySymbol(symbol); //停牌时不更新 if (itemService.isSuspended(item)) { if (itemService.isSuspended(symbol)) { return; } Double currentValue = AdjustmentValueCache.getCurrentValue().get(symbol).doubleValue(); trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java
@@ -137,7 +137,7 @@ if (!itemService.isContractTrading(bySymbol)) { throw new YamiShopBindException("未开放合约交易"); } if (itemService.isSuspended(bySymbol)) { if (itemService.isSuspended(bySymbol.getSymbol())) { throw new YamiShopBindException("停牌禁止交易"); } trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java
@@ -1,6 +1,8 @@ package com.yami.trading.api.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.yami.trading.bean.data.domain.Kline; import com.yami.trading.bean.ico.domain.Ico; import com.yami.trading.bean.item.domain.Item; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.YamiShopBindException; @@ -9,6 +11,7 @@ import com.yami.trading.huobi.data.internal.KlineService; import com.yami.trading.service.data.DataService; import com.yami.trading.service.etf.MarketService; import com.yami.trading.service.ico.IcoService; import com.yami.trading.service.item.ItemService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -21,6 +24,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; /** * K线图 @@ -40,6 +44,8 @@ @Autowired @Qualifier("dataService") private DataService dataService; @Autowired private IcoService icoService; @ApiOperation(value = "行情") @GetMapping(HOBI + "getKline.action") @@ -55,6 +61,24 @@ } // 数据处理 List<Kline> data = this.dataService.kline(symbol, line); Item item = itemService.findBySymbol(symbol); if (item != null) { if (item.getType().equals(Item.cryptos) && (item.getCurrencyType() != null && item.getCurrencyType() == 1)) { /*QueryWrapper<Ico> iQuery = new QueryWrapper<>(); iQuery.eq("symbol", symbol); iQuery.eq("symbol_data", item.getSymbolData()); Ico ico = icoService.getOne(iQuery); if (ico != null) { long now = ico.getMarketDate().getTime();*/ long now = item.getCreateTimeTs() * 1000; data = data.stream().filter(kline -> kline != null && kline.getTs() != null && kline.getTs() > now) .collect(Collectors.toList()); //} } } if ("1day".equals(line) || "5day".equals(line) || "1mon".equals(line) || "1week".equals(line) || "quarter".equalsIgnoreCase(line) || "year".equalsIgnoreCase(line)) { for (Kline datum : data) { trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiExchangeApplyOrderController.java
@@ -7,6 +7,7 @@ import com.yami.trading.bean.exchange.ExchangeApplyOrder; import com.yami.trading.bean.exchange.dto.ExchangeSymbolDto; import com.yami.trading.bean.exchange.dto.SumEtfDto; import com.yami.trading.bean.item.domain.Item; import com.yami.trading.bean.model.*; import com.yami.trading.bean.purchasing.dto.ExchangeLock; import com.yami.trading.bean.syspara.domain.Syspara; @@ -402,6 +403,8 @@ String session_token = sessionTokenService.savePut(partyId); data.put("session_token", session_token); data.put("fee", sysparaService.find("exchange_apply_order_sell_fee").getSvalue()); Item item = itemService.findBySymbol(symbol); data.put("status", item.getStatus() == null || item.getStatus() == 1 ? 1 :0); } return Result.succeed(data); } trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/DataDBServiceImpl.java
@@ -44,6 +44,11 @@ log.debug("时间没有变化"); return; } //停牌时不更新 if (itemService.isSuspended(symbol)) { return; } DataCache.putLatestRealTime(symbol, realtime); // 最近60s内实时价格集合 trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java
@@ -205,7 +205,7 @@ if (!itemService.isContractTrading(item)) { throw new YamiShopBindException("未开放合约交易"); } if (itemService.isSuspended(item)) { if (itemService.isSuspended(item.getSymbol())) { throw new YamiShopBindException("停牌禁止交易"); } trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java
@@ -148,6 +148,11 @@ if (item == null) { throw new YamiShopBindException("参数错误"); } if (itemService.isSuspended(order.getSymbol())) { throw new YamiShopBindException("停牌禁止交易"); } List<Realtime> realtimes = dataService.realtime(order.getSymbol()); double close = 1; if (realtimes != null && realtimes.size() > 0) { trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java
@@ -264,13 +264,13 @@ /** * 是否停牌状态 * @param item * @return */ public boolean isSuspended(Item item) { item = getById(item.getUuid()); public boolean isSuspended(String symbol) { Item item = findBySymbol(symbol); //虚拟币新币才判断 if (item.getType().equals(Item.cryptos) && (item.getCurrencyType() != null && item.getCurrencyType() == 1)) { item = getById(item.getUuid()); if (item.getStatus() != null && item.getStatus() == 0) { return true; }