From 2bd2200f209ddb7bcc59b636d9de6f8b3f762958 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 23 四月 2020 10:00:26 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderDividentsMessageListener.java | 82 ++++++++++++++++++++++++++++------------- 1 files changed, 56 insertions(+), 26 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..2d60100 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.TeamUserLevelStatistic; 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.inter.user.vip.TeamUserLevelStatisticService; import com.yeshi.fanli.service.manger.order.TeamDividentsManager; -import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.service.manger.order.TeamDividentsSourceManager; +import com.yeshi.fanli.util.order.CommonOrderUtil; import com.yeshi.fanli.util.rocketmq.MQTopicName; /** @@ -44,6 +51,15 @@ @Resource private TeamDividentsManager teamDividentsManager; + + @Resource + private TeamDividentsSourceManager teamDividentsSourceManager; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private TeamUserLevelStatisticService teamUserLevelStatisticService; public OrderDividentsMessageListener() { @@ -65,31 +81,45 @@ } } } else if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { - // 璁㈠崟纭鏀惰揣 - if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) { + if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name())) { + OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); + 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) { + TeamUserLevelStatistic levelStatistic = teamUserLevelStatisticService + .selectByUid(ts.getBoss().getId()); + if (levelStatistic == null) { + teamUserLevelStatisticService.initData(ts.getBoss().getId()); + levelStatistic = teamUserLevelStatisticService.selectByUid(ts.getBoss().getId()); + } + bossList.add(new UserTeamLevel(ts.getBoss().getId(), levelStatistic.getLevel())); + } + 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); - 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()); - } - - try { - teamDividentsManager.addDividentsSourceOrder(commonOrderList); - } - - catch (TeamDividentsSourceOrderException e) { - if (e.getCode() == TeamDividentsSourceOrderException.CODE_EXIST) - return Action.CommitMessage; - else { - e.printStackTrace(); - return Action.ReconsumeLater; - } - } - + 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