From f1a24aa07e340197dff3ea99dbd50c4191a0a6d9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 17 Mar 2021 16:42:50 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 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 7e1b743..a05c0f4 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
@@ -1,6 +1,7 @@
 package com.xcong.excoin.modules.contract.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.xcong.excoin.common.contants.AppContants;
@@ -214,7 +215,7 @@
                     followOrderOperationService.closingFollowOrders(holdOrderEntity.getOrderNo());
                 } else {
                     followFollowerProfitDao.updateFollowerProfitByTradeMemberId(holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()), profitOrLoss, traderInfoEntity.getMemberId(), memberEntity.getId());
-                    LogRecordUtils.insertFollowerNotice(memberEntity.getId(), NoticeConstant.CLOSE_ORDER_TITLE, StrUtil.format(NoticeConstant.CLOSE_ORDER_CONTENT, contractOrderEntity.getSymbol(), contractOrderEntity.getClosingPrice(), profitOrLoss, traderInfoEntity.getNickname()));
+                    LogRecordUtils.insertFollowerNotice(memberEntity.getId(), NoticeConstant.CLOSE_ORDER_TITLE, StrUtil.format(NoticeConstant.CLOSE_ORDER_CONTENT, contractOrderEntity.getSymbol(), contractOrderEntity.getClosingPrice(), profitOrLoss.setScale(8, BigDecimal.ROUND_DOWN).toString(), traderInfoEntity.getNickname()));
                 }
             }
         }
@@ -383,7 +384,8 @@
         log.info("执行平仓委托");
 
         Long memberId = entrustOrder.getMemberId();
-        int orderType = entrustOrder.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_MORE ? ContractHoldOrderEntity.OPENING_TYPE_MORE : ContractHoldOrderEntity.OPENING_TYPE_LESS;
+//        int orderType = entrustOrder.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_MORE ? ContractHoldOrderEntity.OPENING_TYPE_MORE : ContractHoldOrderEntity.OPENING_TYPE_LESS;
+        int orderType = entrustOrder.getEntrustType();
         String symbol = entrustOrder.getSymbol();
 
         MemberEntity memberEntity = memberDao.selectById(memberId);
@@ -485,14 +487,16 @@
         MemberEntity memberEntity = memberDao.selectById(wholePriceData.getMemberId());
         List<HoldOrderDataModel> list = wholePriceData.getList();
         if (CollUtil.isNotEmpty(list)) {
+            String batchNo = IdUtil.randomUUID();
             for (HoldOrderDataModel holdOrderDataModel : list) {
                 ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectById(holdOrderDataModel.getId());
                 if (holdOrderEntity == null) {
                     log.info("持仓不存在:{}", holdOrderDataModel.getId());
+                    redisUtils.del(AppContants.WHOLE_BOMB_PREFIX + wholePriceData.getMemberId());
                     continue;
                 }
 
-                holdOrderEntity.setForceClosingPrice(getForceSetPrice(wholePriceData, holdOrderEntity, holdOrderDataModel.getSymbol()));
+//                holdOrderEntity.setForceClosingPrice(getForceSetPrice(wholePriceData, holdOrderEntity, holdOrderDataModel.getSymbol()));
                 contractHoldOrderDao.deleteById(holdOrderDataModel.getId());
 
                 ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity);
@@ -507,6 +511,7 @@
                 contractOrderEntity.setRewardRatio(rewardRatio);
                 contractOrderEntity.setRewardAmount(holdOrderDataModel.getRewardAmount().add(contractOrderEntity.getHoldBond().negate()));
                 contractOrderEntity.setClosingPrice(holdOrderDataModel.getClosingPrice());
+                contractOrderEntity.setForceClosingPrice(holdOrderDataModel.getClosingPrice());
 
                 // 订单状态转换
                 if (ContractOrderEntity.ORDER_TYPE_OPEN_MORE == contractOrderEntity.getOrderType()) {
@@ -515,7 +520,7 @@
                     contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_LESS);
                 }
                 contractOrderEntity.setClosingTime(new Date());
-
+                contractOrderEntity.setBatchNo(batchNo);
                 contractOrderDao.insert(contractOrderEntity);
             }
 
@@ -523,11 +528,13 @@
             BigDecimal totalAmount = BigDecimal.ZERO;
             if (CollUtil.isNotEmpty(entrustOrder)) {
                 for (ContractEntrustOrderEntity contractEntrustOrderEntity : entrustOrder) {
-                    totalAmount.add(contractEntrustOrderEntity.getEntrustAmount());
+                    totalAmount = totalAmount.add(contractEntrustOrderEntity.getEntrustAmount());
                 }
             }
 
             memberWalletContractDao.increaseWalletContractBalanceById(wallet.getAvailableBalance().negate(), wallet.getTotalBalance().subtract(totalAmount).negate(), null, wallet.getId());
+
+            redisUtils.del(AppContants.WHOLE_BOMB_PREFIX + wholePriceData.getMemberId());
         } else {
             log.info("参数有误:{}", memberEntity.getId());
         }

--
Gitblit v1.9.1