Administrator
2025-12-12 5ad0a0e614c3097be78589bda57e82ff7ec546e2
feat(okx): 处理下单推送结果并更新持仓数据

- 在 OkxQuantWebSocketClient 中增加对下单推送结果的处理逻辑
- 根据推送数据中的操作类型判断是否为下单事件
- 当接收到下单推送时,记录日志并提前返回,避免后续处理
- 在 TradeOrderWs 中根据订单方向更新本地持仓映射表
- 增加对买入订单数量的解析,并将其存入持仓映射中
2 files modified
11 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxQuantWebSocketClient.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxQuantWebSocketClient.java
@@ -295,6 +295,13 @@
     * @param response 包含价格数据的 JSON 对象
     */
    private void processPushData(JSONObject response) {
        String op = response.getString("op");
        if (op != null){
            if (TradeOrderWs.ORDERWS_CHANNEL.equals(op)) {
                log.info("收到下单推动结果: {}", response.getJSONObject("data"));
                return ;
            }
        }
        JSONObject arg = response.getJSONObject("arg");
        if (arg == null) {
            log.warn("无效的推送数据,缺少 'arg' 字段 :{}",response);
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -87,6 +87,10 @@
                WsMapBuild.saveBigDecimalToMap(PositionsWs.POSITIONSWSMAP, "pos", BigDecimal.ZERO);
            }
            if (OrderParamEnums.BUY.getValue().equals(side)){
                WsMapBuild.saveBigDecimalToMap(PositionsWs.POSITIONSWSMAP, "pos", new BigDecimal(buyCnt));
            }
        } catch (Exception e) {
            log.error("下单构建失败", e);