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; // // 开多 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); } } }