From 6210236a0c3753eb38619262f47e94de655b0a38 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 08 Sep 2020 11:41:09 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java b/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
index a6a6dbd..03e9d9c 100644
--- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
+++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
@@ -1,6 +1,7 @@
package com.xcong.excoin.rabbit.pricequeue;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.common.contants.AppContants;
import com.xcong.excoin.common.enumerates.CoinTypeEnum;
@@ -289,29 +290,33 @@
if (CollUtil.isNotEmpty(holdOrderEntities)) {
BigDecimal totalProfitOrLess = BigDecimal.ZERO;
- String currentPrice = null;
+ Map<String, Object> priceMap = new HashMap<>();
for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
- if (symbol.equalsIgnoreCase(holdOrderEntity.getSymbol())) {
- currentPrice = price;
- } else {
- currentPrice = redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()));
- }
+ String currentPrice = redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()));
+ priceMap.put(holdOrderEntity.getSymbol(), currentPrice);
+
BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
BigDecimal profitOrLess = CalculateUtil.calOrderProfitOrLess(holdOrderEntity.getOpeningType(), new BigDecimal(currentPrice), holdOrderEntity.getOpeningPrice(), lotNumber, holdOrderEntity.getSymbolCntSale(), memberEntity.getIsProfit());
- log.info("profitOrLess : {}, id : {}, symbol : {}, price : {}", profitOrLess, holdOrderEntity.getId(), holdOrderEntity.getSymbol(), currentPrice);
totalProfitOrLess = totalProfitOrLess.add(profitOrLess);
}
- log.info("totalProfitOrLess : {}", totalProfitOrLess);
MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name());
BigDecimal sub = wallet.getTotalBalance().add(totalProfitOrLess);
- log.info("sub : {}, memberId : {}", sub, memberId);
+// log.info("sub : {}, memberId : {}", sub, memberId);
if (sub.compareTo(BigDecimal.ZERO) <= 0) {
List<OrderModel> list = new ArrayList<>();
OrderModel orderModel = new OrderModel(null, 0, price, symbol, memberId);
list.add(orderModel);
String content = JSONObject.toJSONString(list);
-// orderProducer.sendWholeBomb(content);
+
+ String key = AppContants.WHOLE_BOMB_PREFIX + memberId;
+ Map<Object, Object> value = redisUtils.hmget(key);
+ if (value == null) {
+ orderProducer.sendWholeBomb(content);
+ contractHoldOrderDao.updateMemberAllHoldOrderClosingStatus(memberId);
+
+ redisUtils.hmset(key, priceMap);
+ }
}
}
}
--
Gitblit v1.9.1