From a7454d8a6325566753358b37ffabfae2faa0ca7f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 28 四月 2021 19:46:49 +0800 Subject: [PATCH] 拼多多授权调整,支持小程序跳转 --- fanli/src/main/java/com/yeshi/fanli/util/rocketmq/order/MQLocalTransactionChecker.java | 175 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 88 insertions(+), 87 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/order/MQLocalTransactionChecker.java b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/order/MQLocalTransactionChecker.java index da1a276..199efd9 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/order/MQLocalTransactionChecker.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/rocketmq/order/MQLocalTransactionChecker.java @@ -1,87 +1,88 @@ -package com.yeshi.fanli.util.rocketmq.order; - -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Component; - -import com.aliyun.openservices.ons.api.Message; -import com.aliyun.openservices.ons.api.transaction.LocalTransactionChecker; -import com.aliyun.openservices.ons.api.transaction.TransactionStatus; -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.dto.mq.user.UserTopicTagEnum; -import com.yeshi.fanli.entity.bus.user.HongBaoV2; -import com.yeshi.fanli.entity.order.CommonOrder; -import com.yeshi.fanli.entity.order.HongBaoOrder; -import com.yeshi.fanli.service.inter.hongbao.HongBaoV2SettleTempService; -import com.yeshi.fanli.service.inter.order.CommonOrderService; -import com.yeshi.fanli.service.inter.order.HongBaoOrderService; -import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyService; -import com.yeshi.fanli.util.rocketmq.MQTopicName; - -@Component -public class MQLocalTransactionChecker implements LocalTransactionChecker { - - @Resource - private MQLocalUserCouponUsedTransactionChecker mqLocalUserCouponUsedTransactionChecker; - - @Resource - private HongBaoV2SettleTempService hongBaoV2SettleTempService; - - @Resource - private InviteOrderSubsidyService inviteOrderSubsidyService; - - @Resource - private CommonOrderService commonOrderService; - - @Resource - private HongBaoOrderService hongBaoOrderService; - - public MQLocalTransactionChecker() { - - } - - @Override - public TransactionStatus check(Message msg) { - - String tag = msg.getTag(); - if (msg.getTopic().equalsIgnoreCase(MQTopicName.TOPIC_ORDER.name())) { - if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) { - if (hongBaoV2SettleTempService.countByKey(msg.getKey()) > 0) - return TransactionStatus.CommitTransaction; - else - return TransactionStatus.RollbackTransaction; - } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiDelay.name())) { - OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(msg.getBody()), - OrderMoneyRecievedMQMsg.class); - if (dto != null) { - if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) { - // TODO 灏氭湭澶勭悊涓�涓鍗曢儴鍒嗗埌璐︾殑鐘跺喌 - // 杩斿埄鏄惁鍒拌处 - List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(dto.getSourceType(), - dto.getOrderId()); - for (CommonOrder order : orderList) { - HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(order.getId()); - if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null - && hongBaoOrder.getHongBaoV2().getState() == HongBaoV2.STATE_YILINGQU) { - return TransactionStatus.CommitTransaction; - } - } - return TransactionStatus.RollbackTransaction; - } - } - // 鍏朵粬鏈煡鏉′欢鏆傛椂澶勭悊涓哄洖婊� - return TransactionStatus.RollbackTransaction; - } - - } else if (msg.getTopic().equalsIgnoreCase(MQTopicName.TOPIC_USER.name())) { - if (tag.equalsIgnoreCase(UserTopicTagEnum.useSystemCoupon.name()))// 绯荤粺鍒镐娇鐢� - return mqLocalUserCouponUsedTransactionChecker.check(msg); - } - - return TransactionStatus.Unknow; - } -} +package com.yeshi.fanli.util.rocketmq.order; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import com.aliyun.openservices.ons.api.Message; +import com.aliyun.openservices.ons.api.transaction.LocalTransactionChecker; +import com.aliyun.openservices.ons.api.transaction.TransactionStatus; +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.dto.mq.user.UserTopicTagEnum; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.HongBaoOrder; +import com.yeshi.fanli.service.inter.hongbao.HongBaoV2SettleTempService; +import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoOrderService; +import com.yeshi.fanli.util.rocketmq.MQTopicName; + +@Component +public class MQLocalTransactionChecker implements LocalTransactionChecker { + + @Resource + private MQLocalUserCouponUsedTransactionChecker mqLocalUserCouponUsedTransactionChecker; + + @Resource + private HongBaoV2SettleTempService hongBaoV2SettleTempService; + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private HongBaoOrderService hongBaoOrderService; + + public MQLocalTransactionChecker() { + + } + + @Override + public TransactionStatus check(Message msg) { + + String tag = msg.getTag(); + if (msg.getTopic().equalsIgnoreCase(MQTopicName.TOPIC_ORDER.name())) { + if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiActual.name())) { + if (hongBaoV2SettleTempService.countByKey(msg.getKey()) > 0) + return TransactionStatus.CommitTransaction; + else + return TransactionStatus.RollbackTransaction; + } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.teamRewardPreRecieved.name())) { + if (hongBaoV2SettleTempService.countByKey(msg.getKey()) > 0) + return TransactionStatus.CommitTransaction; + else + return TransactionStatus.RollbackTransaction; + }else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderFanLiDelay.name())) { + OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(msg.getBody()), + OrderMoneyRecievedMQMsg.class); + if (dto != null) { + if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) { + // TODO 灏氭湭澶勭悊涓�涓鍗曢儴鍒嗗埌璐︾殑鐘跺喌 + // 杩斿埄鏄惁鍒拌处 + List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(dto.getSourceType(), + dto.getOrderId()); + for (CommonOrder order : orderList) { + HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(order.getId()); + if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null + && hongBaoOrder.getHongBaoV2().getState() == HongBaoV2.STATE_YILINGQU) { + return TransactionStatus.CommitTransaction; + } + } + return TransactionStatus.RollbackTransaction; + } + } + // 鍏朵粬鏈煡鏉′欢鏆傛椂澶勭悊涓哄洖婊� + return TransactionStatus.RollbackTransaction; + } + + } else if (msg.getTopic().equalsIgnoreCase(MQTopicName.TOPIC_USER.name())) { + if (tag.equalsIgnoreCase(UserTopicTagEnum.useSystemCoupon.name()))// 绯荤粺鍒镐娇鐢� + return mqLocalUserCouponUsedTransactionChecker.check(msg); + } + + return TransactionStatus.Unknow; + } +} -- Gitblit v1.8.0