From f0d06601a6be8c09ef5e8e7e76666cb1e8ef72a5 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 20 三月 2020 16:41:55 +0800 Subject: [PATCH] 团队补贴按照下单时间兼容 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java | 73 ++++++++++++++++++++++++++++++++---- 1 files changed, 65 insertions(+), 8 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 980dc0e..72af241 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,6 +1,7 @@ package com.yeshi.fanli.util.rocketmq.consumer.order; import java.util.Date; +import java.util.List; import javax.annotation.Resource; @@ -20,16 +21,22 @@ import com.yeshi.fanli.dto.mq.user.body.UserSystemCouponUseMQMsg; import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord; import com.yeshi.fanli.entity.mq.MQUnSendInfo; +import com.yeshi.fanli.entity.order.CommonOrder; import com.yeshi.fanli.entity.system.SystemCoupon; import com.yeshi.fanli.exception.money.OrderMoneySettleException; import com.yeshi.fanli.exception.mq.MQUnSendInfoException; +import com.yeshi.fanli.exception.order.CommonOrderException; import com.yeshi.fanli.exception.order.InviteOrderSubsidyException; +import com.yeshi.fanli.exception.order.OrderTeamRewardException; 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.InviteOrderSubsidyService; +import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyServiceV2; import com.yeshi.fanli.service.inter.order.OrderMoneySettleService; import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; import com.yeshi.fanli.util.rocketmq.MQTopicName; @@ -45,6 +52,9 @@ private InviteOrderSubsidyService inviteOrderSubsidyService; @Resource + private InviteOrderSubsidyServiceV2 inviteOrderSubsidyServiceV2; + + @Resource private UserSystemCouponRecordService userSystemCouponRecordService; @Resource(name = "producer") @@ -55,6 +65,12 @@ @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() { @@ -72,11 +88,32 @@ // 鏌ヨ涓婄骇绾㈠寘 OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); if (dto != null) { - try { - inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType()); - } catch (InviteOrderSubsidyException e) { + // 鏌ヨ鍑鸿鍗曞垱寤烘椂闂� + Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType()); + if (orderTime.getTime() >= TEAM_REWARD_START_TIME) { + try { + inviteOrderSubsidyServiceV2.addOrUpdateByOrder(dto.getOrderId(), dto.getType()); + return Action.CommitMessage; + } catch (InviteOrderSubsidyException e) { + e.printStackTrace(); + LogHelper.errorDetailInfo(e, new Gson().toJson(dto), ""); + } catch (OrderTeamRewardException 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 { + inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType()); + } catch (InviteOrderSubsidyException e) { + LogHelper.errorDetailInfo(e, new Gson().toJson(dto), ""); + return Action.ReconsumeLater; + } } + } } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) { OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()), @@ -115,13 +152,27 @@ && record.getCouponType() .equalsIgnoreCase(SystemCoupon.CouponTypeEnum.rebatePercentCoupon.name()) && record.getGoodSource() == dto.getSourceType()) {// 鎴愬姛浣跨敤浜嗗鍔卞埜 - inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); + + Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType()); + if (orderTime.getTime() >= TEAM_REWARD_START_TIME) { + inviteOrderSubsidyServiceV2.invalidByOrderIdAndSourceType(dto.getOrderId(), + dto.getSourceType()); + } else + + inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), + dto.getSourceType()); } else { // 浣挎暟鎹湁鏁� try { - inviteOrderSubsidyService.validByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); + Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), + dto.getType()); + if (orderTime.getTime() >= TEAM_REWARD_START_TIME) { + inviteOrderSubsidyServiceV2.validByOrderIdAndSourceType(dto.getOrderId(), + dto.getSourceType()); + } else + + inviteOrderSubsidyService.validByOrderIdAndSourceType(dto.getOrderId(), + dto.getSourceType()); } catch (InviteOrderSubsidyException e) { e.printStackTrace(); return Action.ReconsumeLater; @@ -141,7 +192,13 @@ dto.getSourceType()); if (count > 0) { // 浣跨浉鍏宠鍗曞け鏁� - inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), dto.getSourceType()); + Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getSourceType()); + if (orderTime.getTime() >= TEAM_REWARD_START_TIME) { + inviteOrderSubsidyServiceV2.invalidByOrderIdAndSourceType(dto.getOrderId(), + dto.getSourceType()); + } else + inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), + dto.getSourceType()); } return Action.CommitMessage; } -- Gitblit v1.8.0