From 5e7b0ed4a154ad067cbcf4aa1a1c7cce32f9864c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 26 四月 2024 18:02:17 +0800 Subject: [PATCH] 唯品会链接解析升级 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderMoneyRecievedMessageListener.java | 242 ++++++++++++++++++++++++------------------------ 1 files changed, 121 insertions(+), 121 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderMoneyRecievedMessageListener.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderMoneyRecievedMessageListener.java index 632591d..be18dab 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderMoneyRecievedMessageListener.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/OrderMoneyRecievedMessageListener.java @@ -1,121 +1,121 @@ -package com.yeshi.fanli.util.rocketmq.consumer.order; - -import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -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.OrderMoneyRecievedMQMsg; -import com.yeshi.fanli.entity.bus.user.HongBaoV2; -import com.yeshi.fanli.entity.order.HongBaoOrder; -import com.yeshi.fanli.entity.order.HongBaoV2SettleTemp; -import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.hongbao.HongBaoV2SettleTempService; -import com.yeshi.fanli.service.inter.order.HongBaoOrderService; -import com.yeshi.fanli.service.inter.order.HongBaoV2Service; -import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; -import com.yeshi.fanli.util.rocketmq.MQTopicName; - -/** - * 璁㈠崟鍒拌处娑堣垂 - * - * @author Administrator - * - */ -@Component -public class OrderMoneyRecievedMessageListener implements MessageListener { - - @Resource - private HongBaoV2SettleTempService hongBaoV2SettleTempService; - - @Resource - private HongBaoV2Service hongBaoV2Service; - - @Resource - private HongBaoOrderService hongBaoOrderService; - - @Resource - private Producer producer; - - private int getHongBaoType(int type) { - switch (type) { - case HongBaoV2.TYPE_YIJI: - case HongBaoV2.TYPE_ERJI: - case HongBaoV2.TYPE_SHARE_YIJI: - case HongBaoV2.TYPE_SHARE_ERJI: - return OrderMoneyRecievedMQMsg.TYPE_INVITE; - case HongBaoV2.TYPE_SHARE_GOODS: - return OrderMoneyRecievedMQMsg.TYPE_SHARE; - case HongBaoV2.TYPE_ZIGOU: - return OrderMoneyRecievedMQMsg.TYPE_ZIGOU; - } - return 0; - } - - @Override - public Action consume(Message message, ConsumeContext context) { - LogHelper.mqInfo("consumer:OrderMoneyRecievedMessageListener", message.getMsgID(), message.getTopic(), - message.getTag(), new String(message.getBody())); - // 鏍规嵁绾㈠寘鍋氳鍗曞垎鍙� - if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { - if (OrderTopicTagEnum.orderFanLiActual.name().equalsIgnoreCase(message.getTag())) { - String key = message.getKey(); - List<HongBaoV2SettleTemp> list = hongBaoV2SettleTempService.listByKey(key); - Map<String, BigDecimal> moneyMap = new HashMap<>(); - // 涓存椂璁㈠崟娑堟伅 - for (HongBaoV2SettleTemp temp : list) { - long hongBaoId = temp.getHongBaoId(); - HongBaoV2 v2 = hongBaoV2Service.selectByPrimaryKey(hongBaoId); - if (v2 != null) { - long mainHongBaoId = v2.getId(); - if (v2.getParent() != null) - mainHongBaoId = v2.getParent().getId(); - HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByHongBaoId(mainHongBaoId); - if (hongBaoOrder != null && hongBaoOrder.getCommonOrder() != null) { - // 鎸夎鍗曞彿涓庣敤鎴风粺璁¤祫閲� - String mapKey = String.format("%s#%s#%s#%s", hongBaoOrder.getCommonOrder().getOrderNo(), - hongBaoOrder.getCommonOrder().getSourceType(), v2.getUserInfo().getId(), - getHongBaoType(v2.getType())); - if (moneyMap.get(mapKey) == null) - moneyMap.put(mapKey, new BigDecimal(0)); - moneyMap.put(mapKey, moneyMap.get(mapKey).add(v2.getMoney())); - } - } - } - - for (Iterator<String> its = moneyMap.keySet().iterator(); its.hasNext();) { - String mapKey = its.next(); - String[] mapKeys = mapKey.split("#"); - String orderNo = mapKeys[0]; - String sourceType = mapKeys[1]; - String uid = mapKeys[2]; - String type = mapKeys[3]; - OrderMoneyRecievedMQMsg msg = new OrderMoneyRecievedMQMsg(Integer.parseInt(type), - Long.parseLong(uid), Integer.parseInt(sourceType), orderNo, moneyMap.get(mapKey), - new Date(), 0); - LogHelper.test(String.format("鎵归噺杩斿埄鍒拌处璁㈠崟鍒嗗彂:\n key鍊�:%s \n 鍐呭:", key, new Gson().toJson(msg))); - producer.send(MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, - OrderTopicTagEnum.orderFanLiSeparateByOrderNo, msg)); - } - - return Action.CommitMessage; - } - } - - return Action.CommitMessage; - } - -} +package com.yeshi.fanli.util.rocketmq.consumer.order; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +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.OrderMoneyRecievedMQMsg; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.order.HongBaoOrder; +import com.yeshi.fanli.entity.order.HongBaoV2SettleTemp; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.hongbao.HongBaoV2SettleTempService; +import com.yeshi.fanli.service.inter.order.HongBaoOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoV2Service; +import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; +import com.yeshi.fanli.util.rocketmq.MQTopicName; + +/** + * 璁㈠崟鍒拌处娑堣垂 + * + * @author Administrator + * + */ +@Component +public class OrderMoneyRecievedMessageListener implements MessageListener { + + @Resource + private HongBaoV2SettleTempService hongBaoV2SettleTempService; + + @Resource + private HongBaoV2Service hongBaoV2Service; + + @Resource + private HongBaoOrderService hongBaoOrderService; + + @Resource + private Producer producer; + + private int getHongBaoType(int type) { + switch (type) { + case HongBaoV2.TYPE_YIJI: + case HongBaoV2.TYPE_ERJI: + case HongBaoV2.TYPE_SHARE_YIJI: + case HongBaoV2.TYPE_SHARE_ERJI: + return OrderMoneyRecievedMQMsg.TYPE_INVITE; + case HongBaoV2.TYPE_SHARE_GOODS: + return OrderMoneyRecievedMQMsg.TYPE_SHARE; + case HongBaoV2.TYPE_ZIGOU: + return OrderMoneyRecievedMQMsg.TYPE_ZIGOU; + } + return 0; + } + + @Override + public Action consume(Message message, ConsumeContext context) { + LogHelper.mqInfo("consumer:OrderMoneyRecievedMessageListener", message.getMsgID(), message.getTopic(), + message.getTag(), new String(message.getBody())); + // 鏍规嵁绾㈠寘鍋氳鍗曞垎鍙� + if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { + if (OrderTopicTagEnum.orderFanLiActual.name().equalsIgnoreCase(message.getTag())) { + String key = message.getKey(); + List<HongBaoV2SettleTemp> list = hongBaoV2SettleTempService.listByKey(key); + Map<String, BigDecimal> moneyMap = new HashMap<>(); + // 涓存椂璁㈠崟娑堟伅 + for (HongBaoV2SettleTemp temp : list) { + long hongBaoId = temp.getHongBaoId(); + HongBaoV2 v2 = hongBaoV2Service.selectByPrimaryKey(hongBaoId); + if (v2 != null) { + long mainHongBaoId = v2.getId(); + if (v2.getParent() != null) + mainHongBaoId = v2.getParent().getId(); + HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByHongBaoId(mainHongBaoId); + if (hongBaoOrder != null && hongBaoOrder.getCommonOrder() != null) { + // 鎸夎鍗曞彿涓庣敤鎴风粺璁¤祫閲� + String mapKey = String.format("%s#%s#%s#%s", hongBaoOrder.getCommonOrder().getOrderNo(), + hongBaoOrder.getCommonOrder().getSourceType(), v2.getUserInfo().getId(), + getHongBaoType(v2.getType())); + if (moneyMap.get(mapKey) == null) + moneyMap.put(mapKey, new BigDecimal(0)); + moneyMap.put(mapKey, moneyMap.get(mapKey).add(v2.getMoney())); + } + } + } + + for (Iterator<String> its = moneyMap.keySet().iterator(); its.hasNext();) { + String mapKey = its.next(); + String[] mapKeys = mapKey.split("#"); + String orderNo = mapKeys[0]; + String sourceType = mapKeys[1]; + String uid = mapKeys[2]; + String type = mapKeys[3]; + OrderMoneyRecievedMQMsg msg = new OrderMoneyRecievedMQMsg(Integer.parseInt(type), + Long.parseLong(uid), Integer.parseInt(sourceType), orderNo, moneyMap.get(mapKey), + new Date(), 0); + LogHelper.test(String.format("鎵归噺杩斿埄鍒拌处璁㈠崟鍒嗗彂:\n key鍊�:%s \n 鍐呭:%s", key, new Gson().toJson(msg))); + producer.send(MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, + OrderTopicTagEnum.orderFanLiSeparateByOrderNo, msg)); + } + + return Action.CommitMessage; + } + } + + return Action.CommitMessage; + } + +} -- Gitblit v1.8.0