From d5b1ec5dca1aefb6425d2e12b1b2804714019c27 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 28 Jan 2021 16:31:21 +0800 Subject: [PATCH] whole bomb finish --- src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 53 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..1f89588 100644 --- a/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java +++ b/src/main/java/com/xcong/excoin/utils/ThreadPoolUtils.java @@ -1,14 +1,27 @@ 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.mapper.ContractHoldOrderEntityMapper; 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.HoldOrderDataModel; +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 +98,44 @@ } }); } + + /** + * 发送全仓价格操作 + * + * @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(); + List<HoldOrderDataModel> holdOrderDataModels = ContractHoldOrderEntityMapper.INSTANCE.entitiesToDataModels(holdOrders); + wholePriceData.setList(holdOrderDataModels); + + 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