From 62a447d89331aee1feae7724c7616aa1bb2cfe79 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 16 十月 2024 14:28:37 +0800 Subject: [PATCH] 将CMQ替换为rabbitmq --- fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamRewardManager.java | 294 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 147 insertions(+), 147 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamRewardManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamRewardManager.java index e193186..9982e83 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamRewardManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamRewardManager.java @@ -1,147 +1,147 @@ -package com.yeshi.fanli.service.manger.order; - -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import com.yeshi.fanli.entity.bus.user.HongBaoV2; -import com.yeshi.fanli.entity.money.TeamRewardDebt; -import com.yeshi.fanli.entity.order.CommonOrder; -import com.yeshi.fanli.entity.order.HongBaoOrder; -import com.yeshi.fanli.entity.taobao.TaoBaoOrder; -import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; -import com.yeshi.fanli.exception.ParamsException; -import com.yeshi.fanli.exception.money.TeamEincomeRecordException; -import com.yeshi.fanli.exception.money.TeamRewardDebtException; -import com.yeshi.fanli.exception.order.TaoBaoOrderException; -import com.yeshi.fanli.service.inter.money.TeamRewardDebtService; -import com.yeshi.fanli.service.inter.order.CommonOrderService; -import com.yeshi.fanli.service.inter.order.HongBaoOrderService; -import com.yeshi.fanli.service.inter.order.HongBaoV2Service; -import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService; -import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; -import com.yeshi.fanli.service.manger.money.TeamEincomeManager; -import com.yeshi.fanli.util.Constant; - -/** - * 鍥㈤槦鍒嗙孩绠$悊 - * @author Administrator - * - */ -@Component -public class TeamRewardManager { - - @Resource - private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; - @Resource - private TaoBaoOrderService taoBaoOrderService; - @Resource - private HongBaoOrderService hongBaoOrderService; - @Resource - private HongBaoV2Service hongBaoV2Service; - - @Resource - private CommonOrderService commonOrderService; - - @Resource - private TeamRewardDebtService teamRewardDebtService; - - @Resource - private TeamEincomeManager teamEincomeManager; - - @Transactional(rollbackFor = Exception.class) - public void addToEincome(Long uid, Date date, BigDecimal money, int sourceType) - throws TeamEincomeRecordException, ParamsException, TeamRewardDebtException { - // 鏌ヨ鏄惁鏈夋瑺璐� - BigDecimal debtMoney = teamRewardDebtService.getTotalDebtMoney(uid, date); - // 鏈夋瑺璐� - if (debtMoney.compareTo(new BigDecimal(0)) > 0) - money = teamRewardDebtService.repayDebtByUid(uid, date, money); - - teamEincomeManager.addTeamReward(uid, date, money, sourceType); - } - - /** - * 澶勭悊閭�璇风淮鏉� - * @param orderNo - * @param sourceType - * @param tradeId - * @throws TaoBaoOrderException - * @throws TeamRewardDebtException - */ - public void weiQuan(String orderNo, int sourceType, String tradeId) - throws TaoBaoOrderException, TeamRewardDebtException { - if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {// 鍙鐞嗘窐瀹濈殑缁存潈 - TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderService.selectByTradeId(tradeId); - - // 鍙鐞嗙淮鏉冩垚鍔� - if (!taoBaoWeiQuanOrder.getState().startsWith("缁存潈鎴愬姛")) - return; - TaoBaoOrder taoBaoOrder = taoBaoOrderService.selectByTradeId(tradeId); - if (taoBaoOrder == null) - return; - - if (taoBaoOrder.getSettlement() == null) - throw new TaoBaoOrderException(1, "璁㈠崟鏈洿鏂�"); - - CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(sourceType, tradeId); - if (commonOrder == null) - return; - - // 鏌ヨ璁㈠崟 - HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(commonOrder.getId()); - - if (hongBaoOrder == null) - return; - - List<HongBaoV2> children = hongBaoV2Service.listChildrenById(hongBaoOrder.getHongBaoV2().getId()); - - if (children == null) - return; - - for (HongBaoV2 child : children) { - if (child != null)// - { - if (child.getState() == HongBaoV2.STATE_SHIXIAO) - continue; - - BigDecimal drawBackMoney = computeDrawBackMoney(taoBaoOrder.getSettlement(), - taoBaoWeiQuanOrder.getMoney(), child.getMoney()); - if (drawBackMoney.compareTo(new BigDecimal(0)) <= 0) - continue; - - TeamRewardDebt oldDebt = teamRewardDebtService.selectBySourceId(child.getId()); - if (oldDebt != null) - continue; - - if (child.getPreGetTime() == null) { - throw new TeamRewardDebtException(2, "璁㈠崟杩樻湭鏇存柊"); - } - - TeamRewardDebt debt = new TeamRewardDebt(); - debt.setCreateTime(new Date()); - debt.setOriginMoney(drawBackMoney); - debt.setSourceId(child.getId()); - debt.setTradeId(tradeId); - debt.setSourceType(sourceType); - debt.setUid(child.getUserInfo().getId()); - debt.setEstimatePayTime(child.getPreGetTime()); - teamRewardDebtService.addDebt(debt); - } - } - } - } - - private BigDecimal computeDrawBackMoney(BigDecimal settlement, BigDecimal wqMoney, BigDecimal hongBaoMoney) { - BigDecimal money = (hongBaoMoney.multiply(wqMoney)).divide(settlement, 2, BigDecimal.ROUND_UP); - if (money.compareTo(hongBaoMoney) > 0) - money = hongBaoMoney; - return money; - } - -} +package com.yeshi.fanli.service.manger.order; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.money.TeamRewardDebt; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.HongBaoOrder; +import com.yeshi.fanli.entity.taobao.TaoBaoOrder; +import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; +import com.yeshi.fanli.exception.ParamsException; +import com.yeshi.fanli.exception.money.TeamEincomeRecordException; +import com.yeshi.fanli.exception.money.TeamRewardDebtException; +import com.yeshi.fanli.exception.order.TaoBaoOrderException; +import com.yeshi.fanli.service.inter.money.TeamRewardDebtService; +import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoV2Service; +import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService; +import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; +import com.yeshi.fanli.service.manger.money.TeamEincomeManager; +import com.yeshi.fanli.util.Constant; + +/** + * 鍥㈤槦鍒嗙孩绠$悊 + * @author Administrator + * + */ +@Component +public class TeamRewardManager { + + @Resource + private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; + @Resource + private TaoBaoOrderService taoBaoOrderService; + @Resource + private HongBaoOrderService hongBaoOrderService; + @Resource + private HongBaoV2Service hongBaoV2Service; + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private TeamRewardDebtService teamRewardDebtService; + + @Resource + private TeamEincomeManager teamEincomeManager; + + @Transactional(rollbackFor = Exception.class) + public void addToEincome(Long uid, Date date, BigDecimal money, int sourceType) + throws TeamEincomeRecordException, ParamsException, TeamRewardDebtException { + // 鏌ヨ鏄惁鏈夋瑺璐� + BigDecimal debtMoney = teamRewardDebtService.getTotalDebtMoney(uid, date); + // 鏈夋瑺璐� + if (debtMoney.compareTo(new BigDecimal(0)) > 0) + money = teamRewardDebtService.repayDebtByUid(uid, date, money); + + teamEincomeManager.addTeamReward(uid, date, money, sourceType); + } + + /** + * 澶勭悊閭�璇风淮鏉� + * @param orderNo + * @param sourceType + * @param tradeId + * @throws TaoBaoOrderException + * @throws TeamRewardDebtException + */ + public void weiQuan(String orderNo, int sourceType, String tradeId) + throws TaoBaoOrderException, TeamRewardDebtException { + if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {// 鍙鐞嗘窐瀹濈殑缁存潈 + TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderService.selectByTradeId(tradeId); + + // 鍙鐞嗙淮鏉冩垚鍔� + if (!taoBaoWeiQuanOrder.getState().startsWith("缁存潈鎴愬姛")) + return; + TaoBaoOrder taoBaoOrder = taoBaoOrderService.selectByTradeId(tradeId); + if (taoBaoOrder == null) + return; + + if (taoBaoOrder.getSettlement() == null) + throw new TaoBaoOrderException(1, "璁㈠崟鏈洿鏂�"); + + CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(sourceType, tradeId); + if (commonOrder == null) + return; + + // 鏌ヨ璁㈠崟 + HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(commonOrder.getId()); + + if (hongBaoOrder == null) + return; + + List<HongBaoV2> children = hongBaoV2Service.listChildrenById(hongBaoOrder.getHongBaoV2().getId()); + + if (children == null) + return; + + for (HongBaoV2 child : children) { + if (child != null)// + { + if (child.getState() == HongBaoV2.STATE_SHIXIAO) + continue; + + BigDecimal drawBackMoney = computeDrawBackMoney(taoBaoOrder.getSettlement(), + taoBaoWeiQuanOrder.getMoney(), child.getMoney()); + if (drawBackMoney.compareTo(new BigDecimal(0)) <= 0) + continue; + + TeamRewardDebt oldDebt = teamRewardDebtService.selectBySourceId(child.getId()); + if (oldDebt != null) + continue; + + if (child.getPreGetTime() == null) { + throw new TeamRewardDebtException(2, "璁㈠崟杩樻湭鏇存柊"); + } + + TeamRewardDebt debt = new TeamRewardDebt(); + debt.setCreateTime(new Date()); + debt.setOriginMoney(drawBackMoney); + debt.setSourceId(child.getId()); + debt.setTradeId(tradeId); + debt.setSourceType(sourceType); + debt.setUid(child.getUserInfo().getId()); + debt.setEstimatePayTime(child.getPreGetTime()); + teamRewardDebtService.addDebt(debt); + } + } + } + } + + private BigDecimal computeDrawBackMoney(BigDecimal settlement, BigDecimal wqMoney, BigDecimal hongBaoMoney) { + BigDecimal money = (hongBaoMoney.multiply(wqMoney)).divide(settlement, 2, BigDecimal.ROUND_UP); + if (money.compareTo(hongBaoMoney) > 0) + money = hongBaoMoney; + return money; + } + +} -- Gitblit v1.8.0