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