Administrator
7 days ago 27ebdeb8a61d4af070d2ed52f77c814350b6dc54
fix(okxNewPrice): 修复订单事件处理中的数据冲突问题

- 修改OkxQuantWebSocketClient中订单事件处理方法,使用无状态的orderZhiYingZhiSunEventNoState方法
- 避免多账号间的数据冲突问题
- 在TradeOrderWs中添加JSONUtil导入用于日志记录
- 更新日志输出格式,添加交易请求参数的JSON序列化输出便于调试
2 files modified
5 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxQuantWebSocketClient.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxQuantWebSocketClient.java
@@ -384,7 +384,7 @@
        // 这会导致多账号之间的数据冲突。需要进一步修改这些类的设计,让数据存储与特定账号关联
        if (OrderInfoWs.ORDERINFOWS_CHANNEL.equals(channel)) {
            TradeRequestParam tradeRequestParam = OrderInfoWs.handleEvent(response, redisUtils, account.name());
            TradeOrderWs.orderEvent(webSocketClient, tradeRequestParam);
            TradeOrderWs.orderZhiYingZhiSunEventNoState(webSocketClient, tradeRequestParam);
        }else if (AccountWs.ACCOUNTWS_CHANNEL.equals(channel)) {
            AccountWs.handleEvent(response, account.name());
        } else if (PositionsWs.POSITIONSWS_CHANNEL.equals(channel)) {
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -1,6 +1,7 @@
package com.xcong.excoin.modules.okxNewPrice.okxWs;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.CoinEnums;
@@ -36,7 +37,7 @@
    public static void orderEvent(WebSocketClient webSocketClient, TradeRequestParam tradeRequestParam) {
        log.info("开始执行TradeOrderWs......");
        log.info("开始执行TradeOrderWs{}......", JSONUtil.parse(tradeRequestParam));
        String accountName = tradeRequestParam.getAccountName();
        String markPx = tradeRequestParam.getMarkPx();
        String instId = tradeRequestParam.getInstId();