Helius
2021-05-25 1dbf829953a2bbca1522a48440223fde45518b46
src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
@@ -287,8 +287,8 @@
        }
    }
    @Transactional(rollbackFor = Exception.class)
    public void wholeBomb() {
        redisUtils.set("whole_bomb_execute", 1, 30);
        Map<String, WholePriceDataModel> dataModelMap = WholeDataQueue.MAP;
        if (CollUtil.isEmpty(dataModelMap)) {
            return;
@@ -339,12 +339,20 @@
                    continue;
                }
                dataModelMap.remove(entry.getKey());
                redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap));
                log.info("全仓爆仓触发:{}", JSONObject.toJSONString(wholePriceData));
                wholePriceData.setPrices(prices);
                contractHoldOrderDao.updateMemberAllHoldOrderClosingStatus(wholePriceData.getMemberId());
                orderProducer.sendWholeBomb(JSONObject.toJSONString(wholePriceData));
                log.info("过来过来");
                synchronized(this) {
                    log.info("爆仓啥的:{}", entry.getKey());
                    boolean b = redisUtils.setNotExist(AppContants.WHOLE_BOMB_PREFIX + entry.getKey(), 1, 5);
                    if (b) {
                        dataModelMap.remove(entry.getKey());
                        wholePriceData.setEquity(wholePriceData.getBalance().add(totalProfitOrLoss));
                        redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap));
                        log.info("全仓爆仓触发:{}", JSONObject.toJSONString(wholePriceData));
                        wholePriceData.setPrices(prices);
                        contractHoldOrderDao.updateMemberAllHoldOrderClosingStatus(wholePriceData.getMemberId());
                        orderProducer.sendWholeBomb(JSONObject.toJSONString(wholePriceData));
                    }
                }
            }
        }
    }