From 2f6670dc8a71ec0eb2980408d558f2c3d6ddce2a Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 27 Jan 2021 18:30:42 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java b/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java
index a8129f3..9dda87b 100644
--- a/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java
+++ b/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java
@@ -1,14 +1,25 @@
 package com.xcong.excoin.utils;
 
+import cn.hutool.core.collection.CollUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.xcong.excoin.common.enumerates.CoinTypeEnum;
+import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao;
+import com.xcong.excoin.modules.contract.dao.ContractOrderDao;
+import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity;
 import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
 import com.xcong.excoin.modules.contract.service.impl.OrderWebsocketServiceImpl;
 import com.xcong.excoin.modules.documentary.service.FollowOrderOperationService;
+import com.xcong.excoin.modules.member.dao.MemberWalletContractDao;
 import com.xcong.excoin.modules.member.entity.MemberEntity;
+import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
+import com.xcong.excoin.rabbit.pricequeue.whole.WholePriceDataModel;
+import com.xcong.excoin.rabbit.producer.OrderProducer;
 import com.xcong.excoin.utils.dingtalk.DingTalkUtils;
 import lombok.extern.slf4j.Slf4j;
 
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -85,4 +96,43 @@
             }
         });
     }
+
+    /**
+     * 发送全仓价格操作
+     *
+     * @param memberId
+     */
+    public static void sendWholePrice(@NotNull Long memberId) {
+        EXECUTOR.execute(new Runnable() {
+            @Override
+            public void run() {
+                log.info("全仓操作价格");
+                ContractHoldOrderDao contractHoldOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class);
+                MemberWalletContractDao memberWalletContractDao = SpringContextHolder.getBean(MemberWalletContractDao.class);
+
+                List<ContractHoldOrderEntity> holdOrders = contractHoldOrderDao.selectHoldOrderListByMemberId(memberId);
+                if (CollUtil.isEmpty(holdOrders)) {
+                    return;
+                }
+                MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name());
+
+                WholePriceDataModel wholePriceData = new WholePriceDataModel();
+                wholePriceData.setList(holdOrders);
+
+                BigDecimal totalHoldBond = BigDecimal.ZERO;
+                for (ContractHoldOrderEntity holdOrder : holdOrders) {
+                    totalHoldBond = totalHoldBond.add(holdOrder.getHoldBond() == null ? BigDecimal.ZERO : holdOrder.getHoldBond());
+                }
+
+                wholePriceData.setHoldBond(totalHoldBond);
+                wholePriceData.setBalance(wallet.getTotalBalance());
+                wholePriceData.setMemberId(memberId);
+
+                OrderProducer orderProducer = SpringContextHolder.getBean(OrderProducer.class);
+
+                orderProducer.sendWholePrice(JSONObject.toJSONString(wholePriceData));
+            }
+        });
+
+    }
 }

--
Gitblit v1.9.1