Administrator
2025-12-13 df80c37962892f3374b3ebca7136582086c30a45
refactor(okxNewPrice): 调整buyCntTime存储位置至TradeOrderWs

- 将buyCntTime从OrderInfoWs移至TradeOrderWs统一管理
- 更新CaoZuoServiceImpl中数据写入目标
- 修改TradeOrderWs中数据读取来源
- 确保初始化和加仓状态正确获取buyCntTime值
2 files modified
8 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -216,7 +216,7 @@
        String buyCntTime = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.BUY_CNT_TIME.name());
        BigDecimal subtract = avgPx.subtract(markPx);
        BigDecimal divide = subtract.divide(new BigDecimal(buyCntTime), 0, RoundingMode.DOWN).add(BigDecimal.ONE);
        WsMapBuild.saveStringToMap(OrderInfoWs.ORDERINFOWSMAP, "buyCntTime",String.valueOf(divide));
        WsMapBuild.saveStringToMap(TradeOrderWs.TRADEORDERWSMAP, "buyCntTime",String.valueOf(divide));
    }
    /**
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -45,12 +45,12 @@
        }else if (OrderParamEnums.INIT.getValue().equals(side)){
            log.info("当前状态为初始化");
            side = OrderParamEnums.BUY.getValue();
            String buyCntTime = OrderInfoWs.ORDERINFOWSMAP.get("buyCntTime");
            String buyCntTime = TRADEORDERWSMAP.get("buyCntTime");
            String buyCntStr = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.BUY_CNT.name());
            buyCnt = String.valueOf(new BigDecimal(buyCntTime).multiply(new BigDecimal(buyCntStr)));
        }else if (OrderParamEnums.BUY.getValue().equals(side)){
            log.info("当前状态为加仓");
            String buyCntTime = OrderInfoWs.ORDERINFOWSMAP.get("buyCntTime");
            String buyCntTime = TRADEORDERWSMAP.get("buyCntTime");
            String buyCntStr = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.BUY_CNT.name());
            buyCnt = String.valueOf(new BigDecimal(buyCntTime).multiply(new BigDecimal(buyCntStr)));
        }else if (OrderParamEnums.SELL.getValue().equals(side)){
@@ -84,7 +84,7 @@
            webSocketClient.send(jsonObject.toJSONString());
            log.info("发送下单频道:{},数量:{}", side, buyCnt);
            WsMapBuild.saveStringToMap(OrderInfoWs.ORDERINFOWSMAP, "buyCntTime",String.valueOf(BigDecimal.ONE));
            WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "buyCntTime",String.valueOf(BigDecimal.ONE));
            WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "clOrdId", clOrdId);
            WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "state", CoinEnums.ORDER_FILLED.getCode());