From 286ea89f5f6cade73276f865effa5dcd2b19406d Mon Sep 17 00:00:00 2001
From: zainali5120 <512061637@qq.com>
Date: Fri, 25 Sep 2020 15:19:11 +0800
Subject: [PATCH] 撮合交易代码提交

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
index 58fee8e..93b135e 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
@@ -12,8 +12,10 @@
 import com.xcong.excoin.modules.contract.service.ContractHoldOrderService;
 import com.xcong.excoin.modules.contract.service.ContractOrderService;
 import com.xcong.excoin.modules.member.dao.AgentReturnDao;
+import com.xcong.excoin.modules.member.dao.MemberSettingDao;
 import com.xcong.excoin.modules.member.entity.AgentReturnEntity;
 import com.xcong.excoin.modules.member.entity.MemberEntity;
+import com.xcong.excoin.modules.member.entity.MemberSettingEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
 import com.xcong.excoin.modules.member.parameter.vo.NeedMoneyMemberVo;
 import com.xcong.excoin.modules.member.service.MemberService;
@@ -67,6 +69,8 @@
 
     @Resource
     private MemberAccountFlowEntityDao memberAccountFlowEntityDao;
+    @Resource
+    private MemberSettingDao memberSettingDao;
 
 
     public void dealOrderFromMq(List<OrderModel> list, Integer type) {
@@ -172,13 +176,16 @@
                                 .multiply(new BigDecimal(currentFlat))
                                 .multiply(symbolSku).setScale(8, BigDecimal.ROUND_DOWN);
                         MemberEntity memberEntity = memberService.getById(memberId);
-
+                        MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(memberId);
+                        log.info("划点前:{}", profitLossPrice);
+                        profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(memberSettingEntity.getClosingSpread().divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_DOWN)));
+                        log.info("划点后:{}", profitLossPrice);
                         if (memberEntity.getIsProfit() == 1) {
                             PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
                             if (profitLossPrice.compareTo(BigDecimal.ZERO) > 0) {
                                 profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(tradeSetting.getProfitParam()));
                             } else {
-                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
+//                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
                             }
                         }
                         //回报率
@@ -262,13 +269,16 @@
                                 .multiply(new BigDecimal(currentFlat + ""))
                                 .multiply(symbolSku).setScale(8, BigDecimal.ROUND_DOWN);
                         MemberEntity memberEntity = memberService.getById(memberId);
-
+                        MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(memberId);
+                        log.info("划点前:{}", profitLossPrice);
+                        profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(memberSettingEntity.getClosingSpread().divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_DOWN)));
+                        log.info("划点后:{}", profitLossPrice);
                         if (memberEntity.getIsProfit() == 1) {
                             PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
                             if (profitLossPrice.compareTo(BigDecimal.ZERO) > 0) {
                                 profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(tradeSetting.getProfitParam()));
                             } else {
-                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
+//                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
                             }
                         }
                         //回报率
@@ -278,7 +288,7 @@
                         contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount());
                         contractOrderEntity.setClosingPrice(closePrice);
                         contractOrderEntity.setClosingType(7);
-                        contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE);
+                        contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_LESS);
                         BigDecimal totalReturn = BigDecimal.ZERO;
                         contractOrderService.save(contractOrderEntity);
 
@@ -360,7 +370,7 @@
                             if (profitLossPrice.compareTo(BigDecimal.ZERO) > 0) {
                                 profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(tradeSetting.getProfitParam()));
                             } else {
-                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
+//                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
                             }
                         }
                         //回报率
@@ -451,7 +461,7 @@
                             if (profitLossPrice.compareTo(BigDecimal.ZERO) > 0) {
                                 profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.subtract(tradeSetting.getProfitParam()));
                             } else {
-                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
+//                                profitLossPrice = profitLossPrice.multiply(BigDecimal.ONE.add(tradeSetting.getProfitParam()));
                             }
                         }
                         //回报率
@@ -671,11 +681,9 @@
         String[] referenceIds = member.getRefererIds().split(",");
         List<String> ids = Arrays.asList(referenceIds);
 
-        log.info("---->{}", member.getAccountType());
         if (MemberEntity.ACCOUNT_TYPE_TEST.equals(member.getAccountType())) {
             return;
         }
-        log.info("--->--->");
 
         // 判断该用户是否为代理商
         NeedMoneyMemberVo needMoneyMember = memberService.selectFriendRelationUserByMemberId(mid);

--
Gitblit v1.9.1