From 645c16466ce9dbe563c03943b0ab5fd46c8eed00 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期一, 29 六月 2020 16:40:33 +0800 Subject: [PATCH] 免单券类型获得 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java | 116 ++++++++++++++++++++++------------------------------------ 1 files changed, 44 insertions(+), 72 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java index 983d6f9..fb7c0b5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java @@ -8,16 +8,10 @@ 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.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.IntegralTaskMQMsg; -import com.yeshi.fanli.dto.mq.user.body.UserAccountBindingMQMsg; -import com.yeshi.fanli.dto.mq.user.body.UserInviteMQMsg; -import com.yeshi.fanli.dto.mq.user.body.UserRedPackGiftMQMsg; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService; import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService; @@ -39,9 +33,12 @@ @Resource private RedPackWinInviteService redPackWinInviteService; - + @Resource private RedPackGiveRecordService redPackGiveRecordService; + + @Resource(name = "producer") + private Producer producer; @Override public Action consume(Message message, ConsumeContext context) { @@ -52,74 +49,49 @@ tag = ""; if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { - if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) {// 杩斿埄鍒拌处 - OrderMoneyRecievedMQMsg orderMoneyRecievedMQMsg = new Gson().fromJson(new String(message.getBody()), - OrderMoneyRecievedMQMsg.class); - // 鍒嗕韩璁㈠崟濂栧姳 - if (orderMoneyRecievedMQMsg.getType() == OrderMoneyRecievedMQMsg.TYPE_SHARE) { -// try { -// redPackWinInviteService.orderArriveReward(orderMoneyRecievedMQMsg.getUid(), -// orderMoneyRecievedMQMsg.getSourceType(), orderMoneyRecievedMQMsg.getOrderId()); -// } catch (Exception e) { -// e.printStackTrace(); -// } - } - } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name())) {// 璁㈠崟缁熻 - OrderMQMsg orderMQMsg = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); - if (orderMQMsg.isValid()) { - try {// 閭�璇峰鍔� - redPackWinInviteService.inviteSucceedReward(orderMQMsg.getUid()); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - } else if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) { - boolean inviteSucceedReward = false; - Long uid = null; - if (tag.equalsIgnoreCase(UserTopicTagEnum.userAccountBinding.name())) {// 璐﹀彿缁戝畾 - UserAccountBindingMQMsg userAccountBindingMQMsg = new Gson().fromJson(new String(message.getBody()), - UserAccountBindingMQMsg.class); - Integer type = userAccountBindingMQMsg.getType(); - if (type == UserAccountBindingMQMsg.TYPE_PHONE || type == UserAccountBindingMQMsg.TYPE_TAOBAO) { - inviteSucceedReward = true; - uid = userAccountBindingMQMsg.getUid(); - } - } else if (tag.equalsIgnoreCase(UserTopicTagEnum.inviteSuccess.name())) {// 閭�璇锋垚鍔� - UserInviteMQMsg userInviteMQMsg = new Gson().fromJson(new String(message.getBody()), - UserInviteMQMsg.class); - inviteSucceedReward = true; - uid = userInviteMQMsg.getWorkerId(); - } else if (tag.equalsIgnoreCase(UserTopicTagEnum.integralTaskFinish.name())) {// 閲戝竵浠诲姟瀹屾垚 - IntegralTaskMQMsg integralTaskMQMsg = new Gson().fromJson(new String(message.getBody()), - IntegralTaskMQMsg.class); - inviteSucceedReward = true; - uid = integralTaskMQMsg.getUid(); - } else if (tag.equalsIgnoreCase(UserTopicTagEnum.redPackGiftDrawback.name())) {// 绾㈠寘璧犻�� - UserRedPackGiftMQMsg userRedPackGiftMQMsg = new Gson().fromJson(new String(message.getBody()), - UserRedPackGiftMQMsg.class); - // 绾㈠寘璧犻�佸埌鏈熸湭棰嗗彇 - try { - redPackGiveRecordService.overdueByPrimaryKey(userRedPackGiftMQMsg.getId()); + if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name())) {// 璁㈠崟缁� + OrderMQMsg mqMsg = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); + + try {// 閭�璇峰鍔� + redPackWinInviteService.winRedPackByOrder(mqMsg.getUid(), mqMsg.getOrderId(), mqMsg.getType(), mqMsg.getPlaceTime()); } catch (Exception e) { - e.printStackTrace(); + LogHelper.errorDetailInfo(e); + } + + // 鍙戦��48灏忔椂寤舵椂娑堟伅 + boolean verifyOrder = redPackWinInviteService.verifyOrder(mqMsg.getUid(), mqMsg.getOrderId(), mqMsg.getType(), mqMsg.getPlaceTime()); + if (verifyOrder) { + int hour = 48; + if (Constant.IS_TEST) { + hour = 1; + } + mqMsg.setDelayHour(hour); + Message msg = new Message(message.getTopic(), OrderTopicTagEnum.orderStatisticDelay.name(), + new Gson().toJson(mqMsg).getBytes()); + if (mqMsg.getStaticticDate().getTime() + 1000 * 60 * 60L * hour > System.currentTimeMillis())// 鏃堕棿鏄惁宸茬粡杩囦簡 + msg.setStartDeliverTime(mqMsg.getStaticticDate().getTime() + 1000 * 60 * 60L * hour); + else + msg.setStartDeliverTime(System.currentTimeMillis() + 1000 * 60); + producer.send(msg); + } + return Action.CommitMessage; + } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatisticDelay.name())) {// 璁㈠崟缁熻 + OrderMQMsg mqMsg = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); + int hour = 48; + if (Constant.IS_TEST) { + hour = 1; + } + + if (mqMsg.getDelayHour() == hour) { + try { + redPackWinInviteService.winFreeCoupon(mqMsg.getUid(), mqMsg.getOrderId(), mqMsg.getType(), mqMsg.getPlaceTime()); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + return Action.ReconsumeLater; + } } return Action.CommitMessage; } - - if (inviteSucceedReward) { - try {// 閭�璇峰鍔� - if(uid==6269748) - { - System.out.println(uid); - } - redPackWinInviteService.inviteSucceedReward(uid); - } catch (Exception e) { - e.printStackTrace(); - } - } - } return Action.CommitMessage; } -- Gitblit v1.8.0