From 70ad97e3d7047adba6a1a136d4d6b7cb7d697b28 Mon Sep 17 00:00:00 2001 From: wzy <wzy19931122ai@163.com> Date: Sat, 05 Jun 2021 18:40:09 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 50 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java index 5ab02e6..1b615a3 100644 --- a/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java +++ b/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java @@ -1,21 +1,32 @@ package com.xcong.excoin.rabbit.consumer; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.xcong.excoin.configurations.RabbitMqConfig; +import com.xcong.excoin.modules.member.dao.MemberDao; +import com.xcong.excoin.modules.member.dao.MemberSettingDao; +import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; +import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberSettingEntity; +import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.otc.dao.OtcEntrustOrderDao; import com.xcong.excoin.modules.otc.dao.OtcMarketBussinessDao; import com.xcong.excoin.modules.otc.dao.OtcOrderDao; import com.xcong.excoin.modules.otc.entity.OtcEntrustOrder; import com.xcong.excoin.modules.otc.entity.OtcMarketBussiness; import com.xcong.excoin.modules.otc.entity.OtcOrder; +import com.xcong.excoin.utils.LogRecordUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import java.util.Map; @Slf4j @@ -31,6 +42,15 @@ @Autowired private OtcOrderDao otcOrderDao; + + @Autowired + private MemberDao memberDao; + + @Autowired + private MemberSettingDao memberSettingDao; + + @Autowired + private MemberWalletCoinDao memberWalletCoinDao; @RabbitListener(queues = RabbitMqConfig.QUEUE_MARKET_BUSSINESS) public void marketBussiness(String content) { @@ -89,11 +109,40 @@ @RabbitListener(queues = RabbitMqConfig.QUEUE_ORDER_RETURN) + @Transactional(rollbackFor = Exception.class) public void orderReturn(String content) { log.info("收到返佣消息:{}", content); - OtcOrder order = otcOrderDao.selectOrderByOrderNoAndType(content, OtcEntrustOrder.ORDER_TYPE_B); + OtcOrder order = otcOrderDao.selectOrderUnEntrust(content); + MemberEntity member = memberDao.selectById(order.getMemberId()); + List<String> refererIds = StrUtil.split(member.getRefererIds(), ','); + List<MemberEntity> parentMembers = memberDao.selectMemberListByReferer(refererIds); + if (CollUtil.isNotEmpty(parentMembers)) { + int isFirst = 1; + for (MemberEntity parent : parentMembers) { + MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(parent.getId()); + + BigDecimal returnRatio = BigDecimal.ZERO; + if (isFirst == 1) { + returnRatio = memberSetting.getOtcReturnFirst(); + } else { + returnRatio = memberSetting.getOtcReturnSecond(); + } + + BigDecimal returnAmount = order.getCoinAmount().multiply(returnRatio); + + MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(parent.getId(), "USDT"); + memberWalletCoinDao.updateBlockBalance(wallet.getId(), returnAmount, BigDecimal.ZERO, 0); + + LogRecordUtils.insertMemberAccountMoneyChange(parent.getId(),"订单返利:" + content, returnAmount, "USDT", 1, 1); + isFirst = 0; + } + } + + order.setIsReturn(1); + otcOrderDao.updateIsReturnByOrderNo(1, content); } + } -- Gitblit v1.9.1