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