From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderDividentsMessageListener.java | 82 +++++++++++++++++++++++++++------------- 1 files changed, 55 insertions(+), 27 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderDividentsMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderDividentsMessageListener.java index 3ced9a0..09d35b4 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderDividentsMessageListener.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderDividentsMessageListener.java @@ -1,6 +1,6 @@ package com.yeshi.fanli.util.rocketmq.consumer.order; -import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; @@ -14,18 +14,25 @@ import com.google.gson.Gson; import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; import com.yeshi.fanli.dto.mq.order.body.OrderConfirmMQMsg; +import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg; import com.yeshi.fanli.dto.mq.order.body.OrderWeiQuanMQMsg; import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; import com.yeshi.fanli.dto.mq.user.body.UserForbiddenMQMsg; +import com.yeshi.fanli.dto.order.UserTeamLevel; +import com.yeshi.fanli.entity.bus.user.ThreeSale; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; import com.yeshi.fanli.entity.order.CommonOrder; -import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; +import com.yeshi.fanli.exception.ParamsException; import com.yeshi.fanli.exception.money.TeamDividentsDebtException; import com.yeshi.fanli.exception.order.dividents.TeamDividentsSourceOrderException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.order.CommonOrderService; -import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.service.manger.order.TeamDividentsManager; +import com.yeshi.fanli.service.manger.order.TeamDividentsSourceManager; +import com.yeshi.fanli.service.manger.user.UserLevelManager; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.order.CommonOrderUtil; import com.yeshi.fanli.util.rocketmq.MQTopicName; /** @@ -37,13 +44,19 @@ public class OrderDividentsMessageListener implements MessageListener { @Resource - private TeamDividentsSourceOrderService teamDividentsSourceOrderService; - - @Resource private CommonOrderService commonOrderService; @Resource private TeamDividentsManager teamDividentsManager; + + @Resource + private TeamDividentsSourceManager teamDividentsSourceManager; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private UserLevelManager userLevelManager; public OrderDividentsMessageListener() { @@ -60,36 +73,51 @@ // 鏌ヨ涓婄骇绾㈠寘 UserForbiddenMQMsg dto = new Gson().fromJson(new String(message.getBody()), UserForbiddenMQMsg.class); if (dto != null) { - teamDividentsSourceOrderService.invalidOrderByUid(dto.getUid(), "鐢ㄦ埛琚皝绂�"); + teamDividentsSourceManager.invalidBySourceUid(dto.getUid(), "鐢ㄦ埛琚皝绂�"); return Action.CommitMessage; } } } else if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { - // 璁㈠崟纭鏀惰揣 - if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) { - // 鎻掑叆鍒嗙孩 - OrderConfirmMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderConfirmMQMsg.class); - List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(dto.getSourceType(), - dto.getOrderNo()); - BigDecimal eincome = new BigDecimal(0); - for (CommonOrder order : commonOrderList) { - if (order.getState() == CommonOrder.STATE_JS) - eincome = eincome.add(order.geteIncome()); - } + if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name())) { - try { - teamDividentsManager.addDividentsSourceOrder(commonOrderList); - } + OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); + if (dto == null || dto.getStaticticDate().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) + return Action.CommitMessage; - catch (TeamDividentsSourceOrderException e) { - if (e.getCode() == TeamDividentsSourceOrderException.CODE_EXIST) - return Action.CommitMessage; - else { - e.printStackTrace(); - return Action.ReconsumeLater; + if (dto.isMiandan())// 鍏嶅崟鐨勫晢鍝佷笉鍙備笌鍒嗙孩 + return Action.CommitMessage; + + if (dto.getHandleType() == OrderMQMsg.HANDLE_TYPE_ADD) { + List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(dto.getType(), + dto.getOrderId()); + + int state = CommonOrderUtil.getState(commonOrderList); + if (commonOrderList.size() > 0 && state != CommonOrder.STATE_SX) { + List<UserTeamLevel> bossList = new ArrayList<>(); + List<ThreeSale> threeSalesList = threeSaleSerivce.getMyBossDeepList(dto.getUid(), 100); + if (threeSalesList != null) + for (ThreeSale ts : threeSalesList) { + UserLevelEnum level = userLevelManager.getUserLevel(ts.getBoss().getId()); + bossList.add(new UserTeamLevel(ts.getBoss().getId(), level)); + } + try { + teamDividentsSourceManager.addSource(commonOrderList, bossList); + return Action.CommitMessage; + } catch (TeamDividentsSourceOrderException e) { + if (e.getCode() == TeamDividentsSourceOrderException.CODE_EXIST) { + return Action.CommitMessage; + } + } catch (ParamsException e) { + e.printStackTrace(); + } } + } else { + teamDividentsSourceManager.updateOrderMoney(dto.getOrderId(), dto.getType()); } + } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) {// 璁㈠崟纭鏀惰揣 + OrderConfirmMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderConfirmMQMsg.class); + teamDividentsSourceManager.orderSettle(dto.getOrderNo(), dto.getSourceType()); } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.taoBaoOrderWeiQuan.name())) { OrderWeiQuanMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderWeiQuanMQMsg.class); try { -- Gitblit v1.8.0