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/modules/contract/service/impl/RabbitOrderServiceImpl.java | 8 ++++++--
src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java | 16 +++++++---------
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
index 97e866e..7a27dc0 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -45,6 +45,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Map;
/**
* @author wzy
@@ -479,14 +480,17 @@
Long memberId = memberEntity.getId();
List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberId, null);
MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name());
+
+ Map<Object, Object> value = redisUtils.hmget(AppContants.WHOLE_BOMB_PREFIX + memberId);
if (CollUtil.isNotEmpty(holdOrderEntities)) {
PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
// 删除次仓订单
contractHoldOrderDao.deleteById(holdOrderEntity.getId());
BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
- BigDecimal currentPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
-
+ String symbolPrice = (String) value.get(holdOrderEntity.getSymbol());
+ log.info("symbolPrice : {}, symbol : {}", symbolPrice, holdOrderEntity.getSymbol());
+ BigDecimal currentPrice = new BigDecimal(symbolPrice);
// 单个订单盈利
// BigDecimal profitOrLess = BigDecimal.ZERO;
// // 开多
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 5d90b5e..03e9d9c 100644
--- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
+++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
@@ -290,13 +290,11 @@
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());
totalProfitOrLess = totalProfitOrLess.add(profitOrLess);
@@ -312,12 +310,12 @@
String content = JSONObject.toJSONString(list);
String key = AppContants.WHOLE_BOMB_PREFIX + memberId;
- String value = redisUtils.getString(key);
- if (StrUtil.isBlank(value)) {
+ Map<Object, Object> value = redisUtils.hmget(key);
+ if (value == null) {
orderProducer.sendWholeBomb(content);
contractHoldOrderDao.updateMemberAllHoldOrderClosingStatus(memberId);
- redisUtils.set(key, memberId);
+ redisUtils.hmset(key, priceMap);
}
}
}
--
Gitblit v1.9.1