Administrator
2025-12-12 e038b5c6ad4c19c7a502fb04b88aaaeb3d5ba74e
fix(okxWs): 修复订单信息与交易订单逻辑错误

- 修复订单详情完成时状态设置逻辑错误
- 修复交易订单频道发送时自定义编号赋值错误
- 调整订单状态更新顺序以确保数据一致性
- 优化WebSocket消息处理流程避免重复赋值
- 完善订单成交后状态码设置逻辑
- 增强异常处理机制提高系统稳定性
2 files modified
6 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java
@@ -98,13 +98,13 @@
                    if (StrUtil.isBlank(ORDERINFOWSMAP.get("orderPrice"))){
                        WsMapBuild.saveStringToMap(ORDERINFOWSMAP, "orderPrice",avgPx);
                    }
                    WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.STATE.name(), OrderParamEnums.STATE_1.getValue());
                    WsMapBuild.saveStringToMap(TradeOrderWs.TRADEORDERWSMAP, "state", CoinEnums.ORDER_LIVE.getCode());
                    String outStr = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.OUT.name());
                    if (OrderParamEnums.OUT_YES.getValue().equals(outStr)){
                        WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.STATE.name(), OrderParamEnums.STATE_3.getValue());
                    }else{
                        WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.STATE.name(), OrderParamEnums.STATE_1.getValue());
                    }
                    log.info("订单详情已完成: {}, 自定义编号: {}", CoinEnums.HE_YUE.getCode(), clOrdId);
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -80,7 +80,7 @@
            webSocketClient.send(jsonObject.toJSONString());
            log.info("发送下单频道:{},数量:{}", side, buyCnt);
            WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "clOrdId", connId);
            WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "clOrdId", clOrdId);
            WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "state", CoinEnums.ORDER_FILLED.getCode());
        } catch (Exception e) {