From c6b718c3cadf5e5fff4c2a47fd1247842439f8c7 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期三, 15 四月 2020 10:45:18 +0800 Subject: [PATCH] 团队消息 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java | 152 +++++++++++++++----------------------------------- 1 files changed, 46 insertions(+), 106 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 f3d0572..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 @@ -11,27 +11,22 @@ import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.MessageListener; import com.aliyun.openservices.ons.api.Producer; -import com.aliyun.openservices.ons.api.SendResult; import com.google.gson.Gson; -import com.yeshi.fanli.dto.mq.BaseMQMsgBody; 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.OrderMoneyRecievedMQMsg; -import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; -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.system.SystemCoupon; +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.mq.MQUnSendInfoException; +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.InviteOrderSubsidyService; +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.util.Constant; -import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; +import com.yeshi.fanli.service.manger.order.TeamSubsidyManager; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.rocketmq.MQTopicName; /** @@ -43,7 +38,7 @@ @Component public class InviteOrderSubsidyMessageListener implements MessageListener { @Resource - private InviteOrderSubsidyService inviteOrderSubsidyService; + private TeamSubsidyManager teamSubsidyManager; @Resource private UserSystemCouponRecordService userSystemCouponRecordService; @@ -57,14 +52,20 @@ @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() { } @Override public Action consume(Message message, ConsumeContext context) { - LogHelper.mqInfo("consumer:InviteOrderSubsidyMessageListener", message.getMsgID(),message.getTopic(), message.getTag(), - new String(message.getBody())); + 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())) { @@ -73,107 +74,46 @@ // 鏌ヨ涓婄骇绾㈠寘 OrderMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); if (dto != null) { - try { - inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType()); - } catch (InviteOrderSubsidyException e) { - return Action.ReconsumeLater; - } - } - } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) { - OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()), - OrderMoneyRecievedMQMsg.class); - if (dto != null) { - if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 鑷喘鍒拌处 - // 鍒ゆ柇璁㈠崟鍙锋槸鍚﹀湪琛ヨ创涓� - long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); - if (count > 0) {// 寤舵椂娑堟伅鍙戦�� - sendOrderSubsidyUpdateLater(dto, 5); - } - } else if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_INVITE) {// 閭�璇峰埌璐� - // 琛ヨ创鍒拌处 + // 鏌ヨ鍑鸿鍗曞垱寤烘椂闂� + Date orderTime = commonOrderService.getThirdCreateTime(dto.getOrderId(), dto.getType()); + if (orderTime.getTime() >= TEAM_REWARD_START_TIME) { try { - orderMoneySettleService.inviteSubsidySettle(dto.getUid(), message.getKey()); + teamSubsidyManager.addOrUpdateOrder(dto.getOrderId(), dto.getType()); return Action.CommitMessage; - } catch (OrderMoneySettleException e) { + } 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.orderFanLiDelay.name())) { - OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()), - OrderMoneyRecievedMQMsg.class); - if (dto != null) { - if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 寤舵椂鏃堕棿宸插埌 - // 鍒ゆ柇璁㈠崟鍙锋槸鍚﹀湪琛ヨ创涓� - long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); - if (count > 0) { - // 鍒ゆ柇鏄惁瑕佷娇鐢ㄥ鍔卞埜 - UserSystemCouponRecord record = userSystemCouponRecordService - .getRecordByOrderNo(dto.getOrderId(), UserSystemCouponRecord.STATE_SUCCESS); - if (record != null - && record.getCouponType() - .equalsIgnoreCase(SystemCoupon.CouponTypeEnum.rebatePercentCoupon.name()) - && record.getGoodSource() == dto.getSourceType()) {// 鎴愬姛浣跨敤浜嗗鍔卞埜 - inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); - } else { - // 浣挎暟鎹湁鏁� - inviteOrderSubsidyService.validByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); - } - } - } - } - } else if (tag.equalsIgnoreCase(UserTopicTagEnum.useSystemCoupon.name())) { - UserSystemCouponUseMQMsg dto = new Gson().fromJson(new String(message.getBody()), - UserSystemCouponUseMQMsg.class); - if (dto != null && dto.getCouponType() - .equalsIgnoreCase(SystemCoupon.CouponTypeEnum.rebatePercentCoupon.name())) {// 杩斿埄濂栧姳鍒哥殑浣跨敤 - long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); - if (count > 0) { - // 浣跨浉鍏宠鍗曞け鏁� - inviteOrderSubsidyService.invalidByOrderIdAndSourceType(dto.getOrderId(), dto.getSourceType()); - } + } 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; } - - /** - * 鍙戦�佽鍗曞欢鏃舵秷鎭� - * - * @param day - */ - private boolean sendOrderSubsidyUpdateLater(OrderMoneyRecievedMQMsg dto, int day) { - - Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiDelay, - dto); - msg.setKey(dto.getSourceType() + "_" + dto.getOrderId()); - long delayTime = System.currentTimeMillis() + (Constant.IS_TEST ? 1000 * 30L : 1000 * 60 * 60 * 24L * day); - msg.setStartDeliverTime(delayTime); - SendResult sendResult = producer.send(msg); - if (sendResult != null) { - return true; - } else { - MQUnSendInfo info = new MQUnSendInfo(); - info.setBody(new String(msg.getBody())); - if (msg.getStartDeliverTime() > 0) - info.setDeliverTime(new Date(msg.getStartDeliverTime())); - info.setKey(msg.getKey()); - info.setTag(msg.getTag()); - info.setTopic(msg.getTopic()); - try { - mqUnSendInfoService.addMQUnSendInfo(info); - } catch (MQUnSendInfoException e) { - e.printStackTrace(); - } - return false; - } - } - } -- Gitblit v1.8.0