Administrator
2025-12-13 56e585eb01d4ee22e81de71a3541cb615d8557fc
feat(okxNewPrice): 增加持仓初始化订单的异常处理

- 修改 saveStringToMap 方法返回布尔值以标识操作结果
- 在持仓初始化逻辑中增加对保存操作成功与否的判断
- 操作失败时返回 null,避免后续流程使用无效状态
- 增强系统在关键数据写入失败时的健壮性
2 files modified
15 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java 9 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -114,8 +114,12 @@
        BigDecimal pos = PositionsWs.POSITIONSWSMAP.get("pos");
        if (BigDecimal.ZERO.compareTo( pos) >= 0) {
            log.error("持仓数量为零,进行初始化订单");
            WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.STATE.name(), OrderParamEnums.STATE_4.getValue());
            boolean flag = WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.STATE.name(), OrderParamEnums.STATE_4.getValue());
            if ( flag){
            return OrderParamEnums.INIT.getValue();
            }else{
                return null;
            }
        }
        // 判断是否保证金超标
        if (PositionsWs.POSITIONSWSMAP.get("imr") == null){
src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java
@@ -16,22 +16,27 @@
@Slf4j
public class WsMapBuild {
    public static void saveBigDecimalToMap(Map<String,BigDecimal> accountMap, String key, BigDecimal value) {
    public static boolean saveBigDecimalToMap(Map<String,BigDecimal> accountMap, String key, BigDecimal value) {
        try {
            accountMap.put(key, value);
            return true;
        } catch (Exception e) {
            log.error("保存账户数据到MAP 失败", e);
            return false;
        }
    }
    public static void saveStringToMap(Map<String,String> accountMap, String key, String value) {
    public static boolean saveStringToMap(Map<String,String> accountMap, String key, String value) {
        try {
            accountMap.put(key, value);
            return true;
        } catch (Exception e) {
            log.error("保存账户数据到MAP 失败", e);
            return false;
        }
    }
    /**
     * 安全地将字符串解析为 BigDecimal 类型
     *