admin
2019-10-22 16f3c0a66181095ff4d353ebe78fbaa30a36a3d3
rocketmq修改
2个文件已删除
7个文件已修改
3个文件已添加
313 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/order/OrderMQMsgDTO.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/HongBaoV2Service.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQLocalTransactionChecker.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQMessageListener.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/order/RocketMQLocalOrderTransactionChecker.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/rocket/consumer.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/rocket/transactionProducer.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -642,4 +642,14 @@
        }
    }
    @RequestMapping("getSchedulerList")
    public void getSchedulerList(PrintWriter out) {
        try {
            for (String groupName : scheduler.getJobGroupNames()) {
                System.out.println(groupName);
            }
        } catch (Exception e) {
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/dto/order/OrderMQMsgDTO.java
New file
@@ -0,0 +1,48 @@
package com.yeshi.fanli.dto.order;
/**
 * 红包MQ消息
 *
 * @author Administrator
 *
 */
public class OrderMQMsgDTO {
    private String orderId;
    private Integer type;
    private Long uid;
    public OrderMQMsgDTO(String orderId, Integer type, Long uid) {
        this.orderId = orderId;
        this.type = type;
        this.uid = uid;
    }
    public OrderMQMsgDTO() {
    }
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Long getUid() {
        return uid;
    }
    public void setUid(Long uid) {
        this.uid = uid;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
@@ -145,7 +145,7 @@
    @Transactional
    @Override
    public void addHongBao(List<CommonOrder> commonOrderList, int type) throws HongBaoException {
    public int addHongBao(List<CommonOrder> commonOrderList, int type) throws HongBaoException {
        Set<Integer> stateSet = new HashSet<>();// 订单状态Set
        if (commonOrderList != null && commonOrderList.size() > 0) {
            int orderType = commonOrderList.get(0).getSourceType();
@@ -153,6 +153,7 @@
            Map<Integer, HongBaoOrder> notificationMap = new HashMap<>();
            int goodsCount = 0;
            boolean hasAdd = false;
            boolean hasUpdate = false;
            for (CommonOrder commonOrder : commonOrderList) {
                stateSet.add(commonOrder.getState());
                goodsCount += commonOrder.getCount();
@@ -163,7 +164,9 @@
                    saveHongBao(commonOrder, type, notificationMap);
                    hasAdd = true;
                } else {
                    updateHongBao(hongBaoOrder, commonOrder, type, notificationMap);
                    boolean update = updateHongBao(hongBaoOrder, commonOrder, type, notificationMap);
                    if (update)
                        hasUpdate = true;
                }
            }
            /**
@@ -242,8 +245,17 @@
                    }
                }
            }
        }
            int resultCode = 0;
            if (hasAdd && hasUpdate)
                return 12;
            else if (hasAdd)
                return 1;
            else if (hasUpdate)
                return 2;
            return resultCode;
        }
        return 0;
    }
    private int getOrderState(Set<Integer> states) {
@@ -261,7 +273,7 @@
    }
    @Transactional
    private void updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type,
    private boolean updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type,
            Map<Integer, HongBaoOrder> notificationMap) throws HongBaoException {
        System.out.println(commonOrder.getOrderNo());
        // 锁行
@@ -270,7 +282,7 @@
            throw new HongBaoException(10, "红包对象不存在");
        // 已经失效,已经领取,新老状态一致的红包不做处理
        if (oldHongBao.getState() == HongBaoV2.STATE_SHIXIAO || oldHongBao.getState() == HongBaoV2.STATE_YILINGQU)
            return;
            return false;
        if (type == HongBaoV2.TYPE_ZIGOU) {// 获取自购的返利比例
            BigDecimal fanliRate = hongBaoManageService.getFanLiRate(commonOrder.getCreateTime().getTime());
@@ -317,7 +329,7 @@
            // 新老红包状态一致不处理
            if (oldHongBao.getState().intValue() == hongBao.getState())
                return;
                return false;
            if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) {
                if (mianDan) {
@@ -411,7 +423,7 @@
                        BigDecimal firstRate = hongBaoManageService
                                .getFirstInviteRate(boss.getRank() == null ? 0 : boss.getRank());
                        if (firstRate.compareTo(new BigDecimal(0)) <= 0)
                            return;
                            return true;
                        HongBaoV2 firstHongbao = new HongBaoV2();
                        firstHongbao.setUserInfo(boss);
                        firstHongbao.setUrank(boss.getRank());
@@ -459,7 +471,7 @@
                            BigDecimal secondRate = hongBaoManageService
                                    .getSecondInviteRate(boss.getRank() == null ? 0 : boss.getRank());
                            if (secondRate.compareTo(new BigDecimal(0)) <= 0)
                                return;
                                return true;
                            HongBaoV2 secondHongbao = new HongBaoV2();
                            secondHongbao.setUserInfo(boss);
                            secondHongbao.setUrank(boss.getRank());
@@ -622,6 +634,8 @@
                }
        } else
            throw new HongBaoException(2, "type错误");
        return true;
    }
    @Transactional
@@ -642,7 +656,6 @@
                    CommonOrderGoods goods = commonOrderGoodsMapper
                            .selectByPrimaryKey(commonOrder.getCommonOrderGoods().getId());
                    if (goods != null) {
                        try {
                            if (userSystemCouponService.updateCouponRecordUsed(commonOrder.getUserInfo().getId(),
                                    commonOrder.getOrderNo(), payMent, Long.parseLong(goods.getGoodsId())))
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -18,6 +18,10 @@
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.NumberUtil;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter;
import com.aliyun.openservices.ons.api.transaction.TransactionProducer;
import com.aliyun.openservices.ons.api.transaction.TransactionStatus;
import com.google.gson.Gson;
import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
@@ -27,6 +31,7 @@
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
import com.yeshi.fanli.dto.HongBao;
import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO;
import com.yeshi.fanli.dto.order.OrderMQMsgDTO;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
@@ -139,6 +144,9 @@
    @Resource
    private PDDOrderService pddOrderService;
    @Resource(name = "orderTransactionProducer")
    private TransactionProducer orderTransactionProducer;
    /**
     * 是否是分享订单
@@ -986,8 +994,7 @@
            List<CommonOrderAddResultDTO> commonOrderList = null;
            try {
                commonOrderList = commonOrderService.addTaoBaoOrder(orderList, uid);
                hongBaoV2Service.addHongBao(convertCommonOrder(commonOrderList), HongBaoV2.TYPE_ZIGOU);
                addHongBaoWithMQ(commonOrderList, orderId, uid, Constant.SOURCE_TYPE_TAOBAO, HongBaoV2.TYPE_ZIGOU);
                if (isCommonOrderAllAdd(commonOrderList)) {
                    Order order = new Order();
                    order.setOrderId(orderId);
@@ -1046,7 +1053,7 @@
            // 用第一个子订单锁定用户
            try {
                List<CommonOrderAddResultDTO> commonOrders = commonOrderService.addTaoBaoOrder(orderList, uid);
                hongBaoV2Service.addHongBao(convertCommonOrder(commonOrders), HongBaoV2.TYPE_SHARE_GOODS);
                addHongBaoWithMQ(commonOrders, orderId, uid, Constant.SOURCE_TYPE_TAOBAO, HongBaoV2.TYPE_SHARE_GOODS);
                if (isCommonOrderAllAdd(commonOrders)) {
                    Order order = new Order();
                    order.setOrderId(orderId);
@@ -1059,8 +1066,6 @@
                }
            } catch (CommonOrderException e) {
                e.printStackTrace();
            } catch (HongBaoException e1) {
                e1.printStackTrace();
            }
        }
    }
@@ -1165,11 +1170,13 @@
        try {
            List<CommonOrderAddResultDTO> commonOrderList = commonOrderService.addJDOrder(jdOrder, uid);
            hongBaoV2Service.addHongBao(convertCommonOrder(commonOrderList), HongBaoV2.TYPE_ZIGOU);
            addHongBaoWithMQ(commonOrderList, jdOrder.getOrderId() + "", uid, Constant.SOURCE_TYPE_JD,
                    HongBaoV2.TYPE_ZIGOU);
            if (isCommonOrderAllAdd(commonOrderList)) {
                Order order = new Order();
                order.setOrderId(jdOrder.getOrderId() + "");
                order.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
                order.setOrderType(Constant.SOURCE_TYPE_JD);
                order.setUserInfo(new UserInfo(uid));
                try {
                    PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
@@ -1177,12 +1184,6 @@
                }
            }
        } catch (CommonOrderException e) {
            try {
                LogHelper.errorDetailInfo(e, "addJDOrder或addHongBao出错", "订单号:" + jdOrder.getOrderId());
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        } catch (HongBaoException e) {
            try {
                LogHelper.errorDetailInfo(e, "addJDOrder或addHongBao出错", "订单号:" + jdOrder.getOrderId());
            } catch (Exception e1) {
@@ -1201,11 +1202,12 @@
    private void processShareJDOrder(JDOrder jdOrder, Long uid) {
        try {
            List<CommonOrderAddResultDTO> commonOrderList = commonOrderService.addJDOrder(jdOrder, uid);
            hongBaoV2Service.addHongBao(convertCommonOrder(commonOrderList), HongBaoV2.TYPE_SHARE_GOODS);
            addHongBaoWithMQ(commonOrderList, jdOrder.getOrderId() + "", uid, Constant.SOURCE_TYPE_JD,
                    HongBaoV2.TYPE_SHARE_GOODS);
            if (isCommonOrderAllAdd(commonOrderList)) {
                Order order = new Order();
                order.setOrderId(jdOrder.getOrderId() + "");
                order.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
                order.setOrderType(Constant.SOURCE_TYPE_JD);
                order.setUserInfo(new UserInfo(uid));
                try {
                    PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
@@ -1213,12 +1215,6 @@
                }
            }
        } catch (CommonOrderException e) {
            try {
                LogHelper.errorDetailInfo(e, "addJDOrder或addHongBao出错", "订单号:" + jdOrder.getOrderId());
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        } catch (HongBaoException e) {
            try {
                LogHelper.errorDetailInfo(e, "addJDOrder或addHongBao出错", "订单号:" + jdOrder.getOrderId());
            } catch (Exception e1) {
@@ -1315,11 +1311,12 @@
            List<PDDOrder> pddOrderList = new ArrayList<>();
            pddOrderList.add(pddOrder);
            List<CommonOrderAddResultDTO> commonOrderList = commonOrderService.addPDDOrder(pddOrderList, uid);
            hongBaoV2Service.addHongBao(convertCommonOrder(commonOrderList), HongBaoV2.TYPE_ZIGOU);
            addHongBaoWithMQ(commonOrderList, pddOrder.getOrderSn(), uid, Constant.SOURCE_TYPE_PDD,
                    HongBaoV2.TYPE_ZIGOU);
            if (isCommonOrderAllAdd(commonOrderList)) {
                Order order = new Order();
                order.setOrderId(pddOrder.getOrderSn());
                order.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
                order.setOrderType(Constant.SOURCE_TYPE_PDD);
                order.setUserInfo(new UserInfo(uid));
                try {
                    PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
@@ -1327,12 +1324,6 @@
                }
            }
        } catch (CommonOrderException e) {
            try {
                LogHelper.errorDetailInfo(e, "addPDDOrder或addHongBao出错", "订单号:" + pddOrder.getOrderSn());
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        } catch (HongBaoException e) {
            try {
                LogHelper.errorDetailInfo(e, "addPDDOrder或addHongBao出错", "订单号:" + pddOrder.getOrderSn());
            } catch (Exception e1) {
@@ -1353,11 +1344,12 @@
            List<PDDOrder> pddOrderList = new ArrayList<>();
            pddOrderList.add(pddOrder);
            List<CommonOrderAddResultDTO> commonOrderList = commonOrderService.addPDDOrder(pddOrderList, uid);
            hongBaoV2Service.addHongBao(convertCommonOrder(commonOrderList), HongBaoV2.TYPE_SHARE_GOODS);
            addHongBaoWithMQ(commonOrderList, pddOrder.getOrderSn(), uid, Constant.SOURCE_TYPE_PDD,
                    HongBaoV2.TYPE_SHARE_GOODS);
            if (isCommonOrderAllAdd(commonOrderList)) {
                Order order = new Order();
                order.setOrderId(pddOrder.getOrderSn());
                order.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
                order.setOrderType(Constant.SOURCE_TYPE_PDD);
                order.setUserInfo(new UserInfo(uid));
                try {
                    PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
@@ -1365,12 +1357,6 @@
                }
            }
        } catch (CommonOrderException e) {
            try {
                LogHelper.errorDetailInfo(e, "addJDOrder或addHongBao出错", "订单号:" + pddOrder.getOrderId());
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        } catch (HongBaoException e) {
            try {
                LogHelper.errorDetailInfo(e, "addJDOrder或addHongBao出错", "订单号:" + pddOrder.getOrderId());
            } catch (Exception e1) {
@@ -1560,4 +1546,31 @@
        // 返利到账
    }
    private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid,
            int sourceType, int hongBaoType) {
        final List<CommonOrder> coList = convertCommonOrder(commonOrderList);
        OrderMQMsgDTO mqMsg = new OrderMQMsgDTO(orderId, sourceType, uid);
        Message msg = new Message("TOPIC_ORDER", String.format("orderhongbao-%s-%s", sourceType, hongBaoType),
                new Gson().toJson(mqMsg).getBytes());
        orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
            @Override
            public TransactionStatus execute(Message arg0, Object arg1) {
                int resultCode = 0;
                try {
                    resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
                } catch (HongBaoException e) {
                    try {
                        LogHelper.errorDetailInfo(e, "addJDOrder或addHongBao出错", "订单号:" + orderId);
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }
                if (resultCode != 0)
                    return TransactionStatus.CommitTransaction;
                else
                    return TransactionStatus.RollbackTransaction;
            }
        }, null);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/order/HongBaoV2Service.java
@@ -25,14 +25,12 @@
    /**
     * 添加红包
     *
     * @param commonOrder
     *            订单对象
     * @param type
     *            类型
     * @param commonOrder   订单对象
     * @param type  类型
     * @return 0-未添加也未更新   1-只添加  2-只更新 12-有添加也有更新
     * @throws HongBaoException
     */
    public void addHongBao(List<CommonOrder> commonOrder, int type) throws HongBaoException;
    public int addHongBao(List<CommonOrder> commonOrder, int type) throws HongBaoException;
    /**
     * 奖金列表(1.4.9之前的版本)
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQLocalTransactionChecker.java
File was deleted
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/RocketMQMessageListener.java
File was deleted
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/order/InviteOrderSubsidyMessageListener.java
New file
@@ -0,0 +1,30 @@
package com.yeshi.fanli.util.rocketmq.consumer.order;
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;
/**
 * 邀请订单补贴消息消费
 *
 * @author Administrator
 *
 */
@Component
public class InviteOrderSubsidyMessageListener implements MessageListener {
    public InviteOrderSubsidyMessageListener() {
    }
    @Override
    public Action consume(Message message, ConsumeContext context) {
        if (message.getTag().startsWith("")) {
        }
        return Action.CommitMessage;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/order/RocketMQLocalOrderTransactionChecker.java
New file
@@ -0,0 +1,22 @@
package com.yeshi.fanli.util.rocketmq.order;
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;
@Component
public class RocketMQLocalOrderTransactionChecker implements LocalTransactionChecker {
    public RocketMQLocalOrderTransactionChecker() {
    }
    @Override
    public TransactionStatus check(Message msg) {
        if (msg.getTag().startsWith("orderhongbao-")) {// 订单加入红包标识
            return TransactionStatus.CommitTransaction;
        }
        return TransactionStatus.Unknow;
    }
}
fanli/src/main/resource/rocket/consumer.xml
@@ -2,15 +2,15 @@
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="msgListener" class="com.yeshi.fanli.util.rocketmq.RocketMQMessageListener"></bean> <!--Listener 配置 -->
    <bean id="msgListener" class="com.yeshi.fanli.util.rocketmq.consumer.order.InviteOrderSubsidyMessageListener"></bean> <!--Listener 配置 -->
    <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean -->
    <bean id="consumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean"
    <bean id="orderTransactionConsumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean"
        init-method="start" destroy-method="shutdown">
        <property name="properties"> <!--消费者配置信息 -->
            <props>
                <prop key="AccessKey">LTAI4FwmTxVCuzTaoZtDiV8z</prop>
                <prop key="SecretKey">ixWg90QbYFKP6ae5xpAo2P1qwIyll5</prop>
                <prop key="GROUP_ID">GID_DEMO</prop>
                <prop key="GROUP_ID">GID_ORDER</prop>
                <prop key="NAMESRV_ADDR">http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80
                </prop>
                <!--将消费者线程数固定为 50 个 <prop key="ConsumeThreadNums">50</prop> -->
@@ -21,18 +21,9 @@
                <entry value-ref="msgListener">
                    <key>
                        <bean class="com.aliyun.openservices.ons.api.bean.Subscription">
                            <property name="topic" value="TopicTestMQ" />
                            <property name="topic" value=TOPIC_ORDER />
                            <property name="expression" value="*" /><!--expression 即 
                                Tag,可以设置成具体的 Tag,如 taga||tagb||tagc,也可设置成 *。 * 仅代表订阅所有 Tag,不支持通配 -->
                        </bean>
                    </key>
                </entry>
                <!--更多的订阅添加 entry 节点即可,如下所示 -->
                <entry value-ref="msgListener">
                    <key>
                        <bean class="com.aliyun.openservices.ons.api.bean.Subscription">
                            <property name="topic" value="TopicTestMQ-Other" /> <!--订阅另外一个 Topic -->
                            <property name="expression" value="taga||tagb" /> <!-- 订阅多个 Tag -->
                        </bean>
                    </key>
                </entry>
fanli/src/main/resource/rocket/transactionProducer.xml
@@ -3,19 +3,19 @@
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 事务消息生产 -->
    <bean id="localTransactionChecker" class="com.yeshi.fanli.util.rocketmq.RocketMQLocalTransactionChecker"></bean>
    <bean id="transactionProducer"
    <bean id="localOrderTransactionChecker" class="com.yeshi.fanli.util.rocketmq.order.RocketMQLocalOrderTransactionChecker"></bean>
    <bean id="orderTransactionProducer"
        class="com.aliyun.openservices.ons.api.bean.TransactionProducerBean"
        init-method="start" destroy-method="shutdown">
        <property name="properties"> <!--事务消息生产者配置信息 -->
            <props>
                <prop key="AccessKey">LTAI4FwmTxVCuzTaoZtDiV8z</prop>
                <prop key="SecretKey">ixWg90QbYFKP6ae5xpAo2P1qwIyll5</prop>
                <prop key="GROUP_ID">GID_DEMO</prop>
                <prop key="GROUP_ID">GID_ORDER</prop>
                <prop key="NAMESRV_ADDR">http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80
                </prop>
            </props>
        </property>
        <property name="localTransactionChecker" ref="localTransactionChecker"></property>
        <property name="localTransactionChecker" ref="localOrderTransactionChecker"></property>
    </bean>
</beans>
pom.xml
@@ -531,13 +531,20 @@
            <artifactId>thumbnailator</artifactId>
            <version>0.4.8</version>
        </dependency>
        <!-- RocketMQ -->
        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>ons-client</artifactId>
            <version>1.8.0.Final</version>
        </dependency>
        <!-- 分步式任务 -->
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.1.0</version>
        </dependency>
    </dependencies>