新版仿ok交易所-后端
zyy
2025-10-28 e84b3c45f7ecef39926b582b10d03b30ff77ee95
trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
@@ -4,6 +4,7 @@
import com.yami.trading.bean.data.domain.Realtime;
import com.yami.trading.bean.data.domain.Trade;
import com.yami.trading.bean.item.domain.Item;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.Arith;
import com.yami.trading.huobi.data.AdjustmentValueCache;
import com.yami.trading.huobi.data.DataCache;
@@ -91,6 +92,10 @@
         Item item = itemService.findBySymbol(symbol);
         symbol = item.getSymbol();
         item = this.itemService.findBySymbol(symbol);
         //停牌时不更新
         if (itemService.isSuspended(symbol)) {
            return;
         }
         Double currentValue = AdjustmentValueCache.getCurrentValue().get(symbol).doubleValue();
         double close = event.getTicker().getClose().doubleValue();
         double vol = event.getTicker().getVol().doubleValue();
@@ -107,20 +112,22 @@
         realtime.setAmount(new BigDecimal(amount));
         if (currentValue != null && currentValue != 0) {
            realtime.setClose(new BigDecimal(Arith.add(close, currentValue.doubleValue())));
            realtime.setVolume(new BigDecimal(Arith.add(vol, Arith.mul(Arith.div(currentValue, close), vol))));
            realtime.setAmount(new BigDecimal(Arith.add(amount, Arith.mul(Arith.div(currentValue, close), amount))));
            realtime.setClose(new BigDecimal(Arith.add(close, currentValue)));
            //realtime.setVolume(new BigDecimal(Arith.add(vol, Arith.mul(Arith.div(currentValue, close), vol))));
            //realtime.setAmount(new BigDecimal(Arith.add(amount, Arith.mul(Arith.div(currentValue, close), amount))));
            Double high = DataCache.getRealtimeHigh().get(symbol);
            Double low = DataCache.getRealtimeLow().get(symbol);
            if (high != null) {
               realtime.setHigh(BigDecimal.valueOf(high));
            }
            if (low != null) {
               realtime.setLow(BigDecimal.valueOf(low));
            }
         }
         Double high = DataCache.getRealtimeHigh().get(symbol);
         Double low = DataCache.getRealtimeLow().get(symbol);
         if (high == null || realtime.getClose().doubleValue() > high) {
            DataCache.getRealtimeHigh().put(symbol, close);
         }
         if ((low == null || realtime.getClose().doubleValue() < low) && realtime.getClose().doubleValue() > 0) {
            DataCache.getRealtimeLow().put(symbol, close);
         }
         Realtime current = DataCache.getRealtime(symbol);
         if (current == null || current.getTs() != event.getTs()) {
@@ -130,19 +137,22 @@
               realtime.setAmount(realtime.getAmount().multiply(item.getMultiple()));
            }
            if (high != null && high >= realtime.getClose().doubleValue()) {
            /*if (high != null && high >= realtime.getClose().doubleValue()) {
               realtime.setHigh(new BigDecimal(high));
            }
            if (low != null && low <= realtime.getClose().doubleValue()) {
               realtime.setLow(new BigDecimal(low));
            }
            }*/
            Double h24Before = DataCache.getRealtime24HBeforeOpen().get(symbol);
            /*ouble h24Before = DataCache.getRealtime24HBeforeOpen().get(symbol);
            if (h24Before != null) {
               realtime.setOpen(new BigDecimal(h24Before));
            }
            }*/
            /*if (realtime.getSymbol().equals("galausdt")) {
               System.out.println("galausdt222" + realtime);
            }*/
            DataCache.putRealtime(symbol, realtime);
            // System.out.println(JSONObject.toJSONString(realtime));
         }