From d76ed8abc8f31e210f4e93f173f41bc2861870dd Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 06 Apr 2021 15:37:49 +0800
Subject: [PATCH] 20210406  交易员列表查询

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   72 +++++++++++++++++++++---------------
 1 files changed, 42 insertions(+), 30 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 f13702b..8a8b96f 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
@@ -213,7 +213,7 @@
                 memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
 
                 // 发送预估强平价
-                ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
+//                ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
                 // 计算佣金
                 ThreadPoolUtils.calReturnMoney(memberEntity.getId(), openFeePrice, contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
 
@@ -266,7 +266,7 @@
             memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
 
             // 发送预估强平价
-            ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
+//            ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
             // 计算佣金
             ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
 
@@ -385,17 +385,7 @@
 
             // 若该用户为交易员且开启带单模式,则发送带单异步
             if (isOpenFollow) {
-                FollowFollowerOrderRelationEntity relationEntity = new FollowFollowerOrderRelationEntity();
-                relationEntity.setIsShow(FollowFollowerOrderRelationEntity.IS_SHOW_Y);
-                relationEntity.setMemberId(holdOrderEntity.getMemberId());
-                relationEntity.setOrderId(holdOrderEntity.getId());
-                relationEntity.setOrderType(FollowFollowerOrderRelationEntity.ORDER_TYPE_HOLD);
-                relationEntity.setTradeId(tradeInfo.getId());
-                relationEntity.setTradeMemberId(tradeInfo.getMemberId());
-                relationEntity.setTradeOrderNo(holdOrderEntity.getOrderNo());
-                followFollowerOrderRelationDao.insert(relationEntity);
-
-                followProducer.sendAddFollowOrder(holdOrderEntity.getId());
+                sendFollowOrder(tradeInfo, holdOrderEntity);
 //                ThreadPoolUtils.sendFollowOrderTask(holdOrderEntity.getId());
             }
             // 提交成功
@@ -405,6 +395,20 @@
         return Result.fail(MessageSourceUtils.getString("member_service_0067"));
     }
 
+    @Override
+    public void sendFollowOrder(FollowTraderInfoEntity tradeInfo, ContractHoldOrderEntity holdOrderEntity) {
+        FollowFollowerOrderRelationEntity relationEntity = new FollowFollowerOrderRelationEntity();
+        relationEntity.setIsShow(FollowFollowerOrderRelationEntity.IS_SHOW_Y);
+        relationEntity.setMemberId(holdOrderEntity.getMemberId());
+        relationEntity.setOrderId(holdOrderEntity.getId());
+        relationEntity.setOrderType(FollowFollowerOrderRelationEntity.ORDER_TYPE_HOLD);
+        relationEntity.setTradeId(tradeInfo.getId());
+        relationEntity.setTradeMemberId(tradeInfo.getMemberId());
+        relationEntity.setTradeOrderNo(holdOrderEntity.getOrderNo());
+        followFollowerOrderRelationDao.insert(relationEntity);
+
+        followProducer.sendAddFollowOrder(holdOrderEntity.getId());
+    }
 
     /**
      * 全仓模式--若当前已经存在持仓,则合并当前持仓
@@ -527,7 +531,8 @@
                 holdOrderListVo.setReturnRate(returnRate);
                 holdOrderListVo.setProfitOrLoss(rewardRatio);
                 if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) {
-                    BigDecimal forcePrice = CalculateUtil.getForceSetPriceForWhole(holdOrderEntity.getSymbol(), memberEntity);
+                    BigDecimal forcePrice = CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity);
+//                    contractHoldOrderDao.updateForcePriceBySymbolAndMemberId(forcePrice, memberEntity.getId(), holdOrderEntity.getSymbol());
                     holdOrderListVo.setForceClosingPrice(forcePrice);
                 }
                 resultList.add(holdOrderListVo);
@@ -648,7 +653,7 @@
         	return Result.loading("loading_type");
         }
         
-        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbolDto.getSymbol(), 1);
+        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbolDto.getSymbol(), symbolDto.getType());
         if (CollUtil.isEmpty(holdOrderEntities)) {
             return Result.fail("订单不存在");
         }
@@ -859,7 +864,7 @@
         BigDecimal newPriceSymbol = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
 
         List<ContractEntrustOrderEntity> entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
-        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId());
+        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbolTest(memberEntity.getId(), null);
         MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
 //        if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) {
 //            // 当前合约委托单
@@ -951,6 +956,7 @@
         contractMoneyInfoVo.setLeverRate(rateEntity.getLevelRateUp());
         contractMoneyInfoVo.setMoreBondAmount(moreBondAmount);
         contractMoneyInfoVo.setLessBondAmount(lessBondAmount);
+        contractMoneyInfoVo.setProfitOrLess(totalProfitOrLess);
         return Result.ok(contractMoneyInfoVo);
     }
 
@@ -1134,29 +1140,35 @@
 
         if (CollUtil.isNotEmpty(list)) {
             for (ContractHoldOrderEntity holdOrderEntity : list) {
+                BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio());
+                MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(holdOrderEntity.getMemberId(), CoinTypeEnum.USDT.name());
+                log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold);
+
                 BigDecimal holdAmount = holdOrderEntity.getHoldAmount();
                 if (holdAmount == null) {
                     holdAmount = BigDecimal.ZERO;
                 }
 
-                BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio());
-                log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold);
-
-                MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId());
-                BigDecimal subBond = holdOrderEntity.getBondAmount().subtract(thisTimeHold);
-
-                BigDecimal newForcePrice = CalculateUtil.getForceSetPrice(subBond.subtract(holdOrderEntity.getOpeningFeeAmount()), holdOrderEntity.getOpeningPrice(), holdOrderEntity.getSymbolCnt(), holdOrderEntity.getSymbolSku(), holdOrderEntity.getOpeningType(), memberEntity);
                 holdAmount = holdAmount.add(thisTimeHold);
-                holdOrderEntity.setBondAmount(subBond);
-                holdOrderEntity.setHoldAmount(holdAmount);
-                holdOrderEntity.setForceClosingPrice(newForcePrice);
-                holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1);
-                contractHoldOrderDao.updateById(holdOrderEntity);
-
-                memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, holdOrderEntity.getMemberId());
                 if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == holdOrderEntity.getPositionType()) {
+
+                    MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId());
+                    BigDecimal subBond = holdOrderEntity.getBondAmount().subtract(thisTimeHold);
+                    BigDecimal newForcePrice = CalculateUtil.getForceSetPrice(subBond.subtract(holdOrderEntity.getOpeningFeeAmount()), holdOrderEntity.getOpeningPrice(), holdOrderEntity.getSymbolCnt(), holdOrderEntity.getSymbolSku(), holdOrderEntity.getOpeningType(), memberEntity);
+                    holdOrderEntity.setBondAmount(subBond);
+                    holdOrderEntity.setHoldAmount(holdAmount);
+                    holdOrderEntity.setForceClosingPrice(newForcePrice);
+                    holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1);
+                    contractHoldOrderDao.updateById(holdOrderEntity);
+
+                    memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, wallet.getId());
                     // 发送爆仓消息
                     sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());
+                } else {
+                    holdOrderEntity.setHoldAmount(holdAmount);
+                    contractHoldOrderDao.updateById(holdOrderEntity);
+                    memberWalletContractDao.increaseWalletContractBalanceById(thisTimeHold.negate(), thisTimeHold.negate(), null, wallet.getId());
+                    ThreadPoolUtils.sendWholePrice(holdOrderEntity.getMemberId());
                 }
             }
         }

--
Gitblit v1.9.1