| | |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void wholeBomb() { |
| | | public synchronized void wholeBomb() { |
| | | Map<String, WholePriceDataModel> dataModelMap = WholeDataQueue.MAP; |
| | | if (CollUtil.isEmpty(dataModelMap)) { |
| | | return; |
| | |
| | | continue; |
| | | } |
| | | |
| | | synchronized (this) { |
| | | log.info("爆仓啥的:{}", entry.getKey()); |
| | | if (entry.getKey() != null) { |
| | | 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)); |
| | | } |
| | | log.info("爆仓啥的:{}", entry.getKey()); |
| | | if (entry.getKey() != null) { |
| | | 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)); |
| | | } |
| | | } |
| | | } |