From 7bf61a945ae760e8d875ac620e14a4329009fef5 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 29 Jan 2021 16:04:32 +0800 Subject: [PATCH] Merge branch 'whole_new' of https://gitee.com/chonggaoxiao/new_excoin.git into whole_new --- src/test/java/com/xcong/excoin/WholeTest.java | 12 +++++++++--- src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 3 +++ src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java | 8 ++++++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java index fcd2cd8..00e5277 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java @@ -250,6 +250,9 @@ if (i > 0) { memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId()); + // 全仓爆仓 + ThreadPoolUtils.sendWholePrice(memberEntity.getId()); + // 发送预估强平价 ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity); // 计算佣金 diff --git a/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java b/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java index 357df80..3ae2459 100644 --- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java +++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java @@ -151,6 +151,7 @@ * @param memberId */ public static void wholePriceDataOperation(Long memberId) { + Map<String, WholePriceDataModel> dataModelMap = WholeDataQueue.MAP; RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); ContractHoldOrderDao contractHoldOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class); @@ -160,6 +161,11 @@ List<ContractHoldOrderEntity> holdOrders = contractHoldOrderDao.selectHoldOrderListByMemberId(memberId); if (CollUtil.isEmpty(holdOrders)) { + if (dataModelMap.get(memberId.toString()) != null) { + dataModelMap.remove(memberId.toString()); + + redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap)); + } return; } @@ -187,10 +193,8 @@ wholePriceData.setBalance(wallet.getTotalBalance().subtract(totalAmount)); wholePriceData.setMemberId(memberId); - Map<String, WholePriceDataModel> dataModelMap = WholeDataQueue.MAP; dataModelMap.put(wholePriceData.getMemberId().toString(), wholePriceData); - redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap)); } } diff --git a/src/test/java/com/xcong/excoin/WholeTest.java b/src/test/java/com/xcong/excoin/WholeTest.java index 8e7dbf8..2c7a5bb 100644 --- a/src/test/java/com/xcong/excoin/WholeTest.java +++ b/src/test/java/com/xcong/excoin/WholeTest.java @@ -177,10 +177,16 @@ @Test public void wholeForceTest() { - // 3153.33181635 -// System.out.println(new BigDecimal("9921.69458495").subtract(new BigDecimal("6768.36276860"))); + // 8301.38608660 +// System.out.println(new BigDecimal("9925.29996175").subtract(new BigDecimal("1623.91387515"))); - // 33684.14725218 + BigDecimal aa = new BigDecimal("1623.91387515").subtract(new BigDecimal("0.1").multiply(new BigDecimal(50)).multiply(new BigDecimal("32478.27750300"))); + BigDecimal bb = new BigDecimal(50).multiply(new BigDecimal("0.1")); + BigDecimal divide = aa.divide(bb, 8, BigDecimal.ROUND_DOWN); + System.out.println(divide); + // -(账户权益-委托保证金-全仓维持保证金-全仓未实现盈利-数量*面值*开仓价格)/(数量*面值) + // 30818.00028568 + // -32153.49472797 } } -- Gitblit v1.9.1