From ee5c8055b1c0dd7c67a9025a76b10bd287c93d9a Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 15 四月 2020 09:52:27 +0800 Subject: [PATCH] 资金明细增加团队分红 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 90 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java index 5149fe4..e1881d6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java @@ -1,11 +1,33 @@ package com.yeshi.fanli.util.rocketmq.consumer.order; +import java.util.Date; + +import javax.annotation.Resource; + import org.springframework.stereotype.Component; import com.aliyun.openservices.ons.api.Action; import com.aliyun.openservices.ons.api.ConsumeContext; import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.MessageListener; +import com.aliyun.openservices.ons.api.Producer; +import com.google.gson.Gson; +import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; +import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg; +import com.yeshi.fanli.dto.mq.order.body.TeamRewardPreRecieveMQMsg; +import com.yeshi.fanli.exception.ParamsException; +import com.yeshi.fanli.exception.money.OrderMoneySettleException; +import com.yeshi.fanli.exception.money.TeamEincomeRecordException; +import com.yeshi.fanli.exception.order.CommonOrderException; +import com.yeshi.fanli.exception.order.InviteOrderSubsidyException; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.mq.MQUnSendInfoService; +import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.order.OrderMoneySettleService; +import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; +import com.yeshi.fanli.service.manger.order.TeamSubsidyManager; +import com.yeshi.fanli.util.TimeUtil; +import com.yeshi.fanli.util.rocketmq.MQTopicName; /** * 閭�璇疯鍗曡ˉ璐存秷鎭秷璐� @@ -15,6 +37,26 @@ */ @Component public class InviteOrderSubsidyMessageListener implements MessageListener { + @Resource + private TeamSubsidyManager teamSubsidyManager; + + @Resource + private UserSystemCouponRecordService userSystemCouponRecordService; + + @Resource(name = "producer") + private Producer producer; + + @Resource + private MQUnSendInfoService mqUnSendInfoService; + + @Resource + private OrderMoneySettleService orderMoneySettleService; + + @Resource + private CommonOrderService commonOrderService; + + // 鍥㈤槦濂栧姳寮�濮嬫椂闂� + private static final long TEAM_REWARD_START_TIME = TimeUtil.convertToTimeTemp("2019-04-15", "yyyy-MM-dd"); public InviteOrderSubsidyMessageListener() { @@ -22,8 +64,55 @@ @Override public Action consume(Message message, ConsumeContext context) { - if (message.getTag().startsWith("")) { + LogHelper.mqInfo("consumer:InviteOrderSubsidyMessageListener", message.getMsgID(), message.getTopic(), + message.getTag(), new String(message.getBody())); + String tag = message.getTag(); + if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { + if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name()) + || tag.equalsIgnoreCase(OrderTopicTagEnum.orderUpdate.name())) { + // 鏌ヨ涓婄骇绾㈠寘 + OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); + if (dto != null) { + // 鏌ヨ鍑鸿鍗曞垱寤烘椂闂� + Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType()); + if (orderTime.getTime() >= TEAM_REWARD_START_TIME) { + try { + teamSubsidyManager.addOrUpdateOrder(dto.getOrderId(), dto.getType()); + return Action.CommitMessage; + } catch (InviteOrderSubsidyException e) { + e.printStackTrace(); + LogHelper.errorDetailInfo(e, new Gson().toJson(dto), ""); + } catch (CommonOrderException e) { + e.printStackTrace(); + LogHelper.errorDetailInfo(e, new Gson().toJson(dto), ""); + } + return Action.ReconsumeLater; + } else { + try { + teamSubsidyManager.addOrUpdateOrder(dto.getOrderId(), dto.getType()); + } catch (Exception e) { + LogHelper.errorDetailInfo(e, new Gson().toJson(dto), ""); + return Action.ReconsumeLater; + } + } + } + } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.teamRewardPreRecieved.name())) {// 鍥㈤槦濂栭噾棰勫埌璐� + TeamRewardPreRecieveMQMsg dto = new Gson().fromJson(new String(message.getBody()), + TeamRewardPreRecieveMQMsg.class); + try { + teamSubsidyManager.addToTeamEincome(dto.getUid(), message.getKey(), dto.getPreGetTime()); + return Action.CommitMessage; + } catch (OrderMoneySettleException e) { + e.printStackTrace(); + } catch (TeamEincomeRecordException e) { + e.printStackTrace(); + } catch (ParamsException e) { + e.printStackTrace(); + } + + return Action.ReconsumeLater; + } } return Action.CommitMessage; } -- Gitblit v1.8.0