From 148af6b2f57be264c84d0991237fbd7ddea491a4 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期一, 04 十一月 2019 09:55:55 +0800 Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java | 84 ++++++++++++++++++++++------------------- 1 files changed, 45 insertions(+), 39 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 55610dc..ff15bbf 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 @@ -13,9 +13,12 @@ import com.aliyun.openservices.ons.api.Producer; import com.aliyun.openservices.ons.api.SendResult; import com.google.gson.Gson; -import com.yeshi.fanli.dto.order.OrderMQMsgDTO; -import com.yeshi.fanli.dto.order.OrderMoneyRecievedMQMsgDTO; -import com.yeshi.fanli.dto.user.coupon.UserSystemCouponUseMQMsgDTO; +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; @@ -60,35 +63,37 @@ @Override public Action consume(Message message, ConsumeContext context) { - // if (!Constant.IS_TASK) {// 闈炰换鍔℃湇鍔″櫒涓嶈兘娑堣垂娑堟伅 - // return Action.ReconsumeLater; - // } + BaseMQMsgBody baseBody = new Gson().fromJson(new String(message.getBody()), BaseMQMsgBody.class); + if (baseBody.isTest() != Constant.IS_TEST) + return Action.ReconsumeLater; LogHelper.mqInfo("consumer:InviteOrderSubsidyMessageListener", message.getTopic(), message.getTag(), new String(message.getBody())); + String tag = message.getTag(); if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { - // 鏌ヨ涓婄骇绾㈠寘 - OrderMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()), OrderMQMsgDTO.class); - if (dto != null) { - try { - inviteOrderSubsidyService.addOrUpdateByOrder(dto.getOrderId(), dto.getType()); - } catch (InviteOrderSubsidyException e) { - return Action.ReconsumeLater; - } - } - } else if (MQTopicName.TOPIC_FANLI.name().equalsIgnoreCase(message.getTopic())) { - if (message.getTag().equalsIgnoreCase("actual")) { - OrderMoneyRecievedMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()), - OrderMoneyRecievedMQMsgDTO.class); + 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) { - if (dto.getType() == OrderMoneyRecievedMQMsgDTO.TYPE_ZIGOU) {// 鑷喘鍒拌处 + 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() == OrderMoneyRecievedMQMsgDTO.TYPE_INVITE) {// 閭�璇峰埌璐� + } else if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_INVITE) {// 閭�璇峰埌璐� // 琛ヨ创鍒拌处 try { orderMoneySettleService.inviteSubsidySettle(dto.getUid(), message.getKey()); @@ -98,11 +103,11 @@ } } } - } else if (message.getTag().equalsIgnoreCase("delay")) { - OrderMoneyRecievedMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()), - OrderMoneyRecievedMQMsgDTO.class); + } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiDelay.name())) { + OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()), + OrderMoneyRecievedMQMsg.class); if (dto != null) { - if (dto.getType() == OrderMoneyRecievedMQMsgDTO.TYPE_ZIGOU) {// 寤舵椂鏃堕棿宸插埌 + if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 寤舵椂鏃堕棿宸插埌 // 鍒ゆ柇璁㈠崟鍙锋槸鍚﹀湪琛ヨ创涓� long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(), dto.getSourceType()); @@ -124,19 +129,19 @@ } } } - } - - } else if (MQTopicName.TOPIC_SYSTEM_COUPON_USE.name().equalsIgnoreCase(message.getTopic())) {// 濂栧姳鍒镐娇鐢ㄦ垚鍔� - UserSystemCouponUseMQMsgDTO dto = new Gson().fromJson(new String(message.getBody()), - UserSystemCouponUseMQMsgDTO.class); - if (dto != null) { - long count = inviteOrderSubsidyService.countByOrderIdAndSourceType(dto.getOrderId(), - dto.getSourceType()); - if (count > 0) { - // 浣跨浉鍏宠鍗曞け鏁� - inviteOrderSubsidyService.invalidByOrderIdAndSourceType(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()); + } + return Action.CommitMessage; } - return Action.CommitMessage; } } return Action.CommitMessage; @@ -147,9 +152,10 @@ * * @param day */ - private boolean sendOrderSubsidyUpdateLater(OrderMoneyRecievedMQMsgDTO dto, int day) { + private boolean sendOrderSubsidyUpdateLater(OrderMoneyRecievedMQMsg dto, int day) { - Message msg = new Message(MQTopicName.TOPIC_FANLI.name(), "delay", new Gson().toJson(dto).getBytes()); + Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderFanLiDelay.name(), + new Gson().toJson(dto).getBytes()); msg.setKey(dto.getSourceType() + "_" + dto.getOrderId()); long delayTime = System.currentTimeMillis() + (Constant.IS_TEST ? 1000 * 30L : 1000 * 60 * 60 * 24L * day); msg.setStartDeliverTime(delayTime); -- Gitblit v1.8.0