Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

guomengjiao месяцев назад: 4
Родитель
Сommit
d8d374286e

+ 5 - 0
ruoyi-admin/src/main/resources/application.yml

@@ -400,3 +400,8 @@ task1h: 0 0 1 * * ?
 
 #每天0点 30秒
 task0h30: 0 30 0 * * ?
+
+online-order:
+  payExpireMinute: 30
+  endOrderDay: 7
+

+ 16 - 2
ruoyi-api/src/main/java/com/ruoyi/api/controller/line/ApiOnlineOrderController.java

@@ -1,6 +1,9 @@
 package com.ruoyi.api.controller.line;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.api.controller.common.AbstractApiController;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
@@ -18,6 +21,8 @@ import com.ruoyi.onlineorder.domain.bo.OnlineOrderBo;
 import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
 import com.ruoyi.onlineorder.domain.vo.PayOnlineOrderVo;
 import com.ruoyi.onlineorder.service.IOnlineOrderService;
+import com.ruoyi.rabbitmq.client.RabbitMqClient;
+import com.ruoyi.rabbitmq.constant.DelayedConstant;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -29,6 +34,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -45,7 +51,7 @@ import java.util.List;
 public class ApiOnlineOrderController extends AbstractApiController {
 
     private final IOnlineOrderService iOnlineOrderService;
-
+    private final RabbitMqClient rabbitMqClient;
     /**
      * 分页查询在线订单列表
      */
@@ -78,7 +84,15 @@ public class ApiOnlineOrderController extends AbstractApiController {
     @PostMapping("/create")
     public R<PayOnlineOrderVo> create(@Validated(AddGroup.class) @RequestBody CreateOnlineOrderBo bo) {
         bo.setUserId(getUserId(true));
-        return R.ok(iOnlineOrderService.createOrder(bo));
+        PayOnlineOrderVo order = iOnlineOrderService.createOrder(bo);
+        if (ObjectUtil.isNotNull(order)) {
+            int lazyTime = Long.valueOf(DateUtil.between(new Date(), order.getExpireTime(), DateUnit.MS)).intValue();
+            rabbitMqClient.send(DelayedConstant.OnLineOrderAutoCLoseDelayedConstant.ON_LINE_ORDER_AUTO_CLOSE_DELAYED_EXCHANGE,
+                DelayedConstant.OnLineOrderAutoCLoseDelayedConstant.ON_LINE_ORDER_AUTO_CLOSE_DELAYED_ROUTING,
+                String.valueOf(order.getOrderId()),
+                lazyTime);
+        }
+        return R.ok();
     }
 
 

+ 13 - 1
ruoyi-api/src/main/java/com/ruoyi/api/controller/pay/ApiNotifyController.java

@@ -1,5 +1,7 @@
 package com.ruoyi.api.controller.pay;
 
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.api.controller.common.AbstractApiController;
@@ -13,6 +15,8 @@ import com.ruoyi.newwxpay.service.NewWxPayService;
 import com.ruoyi.newwxpay.transfer.TransferNotification;
 import com.ruoyi.onlineorder.domain.OnlineOrder;
 import com.ruoyi.onlineorder.service.IOnlineOrderService;
+import com.ruoyi.rabbitmq.client.RabbitMqClient;
+import com.ruoyi.rabbitmq.constant.DelayedConstant;
 import com.ruoyi.shop.order.domain.ShopOrder;
 import com.ruoyi.shop.order.service.IShopOrderService;
 import com.ruoyi.shop.order.service.mqproduct.IShopOrderMqProductService;
@@ -28,6 +32,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
 
 
 @Api(value = "小程序回调通知控制器", tags = {"小程序回调通知控制器"})
@@ -43,7 +48,7 @@ public class ApiNotifyController extends AbstractApiController {
     private final IShopOrderMqProductService iShopOrderMqProductService;
     private final ISaleRightsOrderService saleRightsOrderService;
     private final ISendPrivateMessageMsgService sendPrivateMessageMsgService;
-
+    private final RabbitMqClient rabbitMqClient;
 
     /**
      * 支付回调地址
@@ -78,6 +83,13 @@ public class ApiNotifyController extends AbstractApiController {
                     if (onlineOrder == null) {
                         throw new ServicePayException("FAIL", "失败");
                     }
+                    if (ObjectUtil.isNotNull(onlineOrder)) {
+                        int lazyTime = Long.valueOf(DateUtil.between(new Date(), onlineOrder.getLastEndTime(), DateUnit.MS)).intValue();
+                        rabbitMqClient.send(DelayedConstant.OnLineOrderEndDelayedConstant.ON_LINE_ORDER_END_DELAYED_EXCHANGE,
+                            DelayedConstant.OnLineOrderEndDelayedConstant.ON_LINE_ORDER_END_DELAYED_ROUTING,
+                            String.valueOf(onlineOrder.getOrderId()),
+                            lazyTime);
+                    }
                 }
 
             }

+ 21 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/OnLineOrderProperties.java

@@ -0,0 +1,21 @@
+package com.ruoyi.onlineorder;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "online-order")
+public class OnLineOrderProperties {
+
+    /**
+     * 订单支付过期时间
+     */
+    private  Integer payExpireMinute;
+
+    /**
+     * 订单封单时间
+     */
+    private  Integer endOrderDay;
+}

+ 15 - 2
ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/OnlineOrder.java

@@ -121,7 +121,19 @@ public class OnlineOrder extends BaseTimeEntity {
      */
     private Date expireTime;
 
-    public void init() {
+
+    /**
+     * 订单封单时间
+     */
+    private Date lastEndTime;
+
+
+    /**
+     * 是否封单
+     */
+    private Boolean end;
+
+    public void init(Integer expireMinute) {
         this.orderStatus = OnlineOrderStatus.WAIT_PAY;
         this.payStatus = OnlinePayStatus.WAIT_PAY;
         this.refundStatus = OnlineOrderRefundStatus.UNREFUNDED;
@@ -130,7 +142,8 @@ public class OnlineOrder extends BaseTimeEntity {
         this.orderNo = buildOrderNo();
         this.sendPoint = BigDecimal.ZERO;
         this.subsidyAmount = BigDecimal.ZERO;
-        this.expireTime = DateUtil.offsetMinute(new Date(), 30);
+        this.expireTime = DateUtil.offsetMinute(new Date(), expireMinute);
+        this.end = false;
     }
 
     /**

+ 8 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/bo/OnlineOrderBo.java

@@ -173,4 +173,12 @@ public class OnlineOrderBo extends BaseTimeEntity {
     private Date expireTime;
 
 
+    @ApiModelProperty(value = "最后的封单时间")
+    private Date lastEndTime;
+
+
+    @ApiModelProperty(value = "是否封单")
+    private Boolean end;
+
+
 }

+ 7 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/vo/OnlineOrderVo.java

@@ -188,8 +188,15 @@ public class OnlineOrderVo extends BaseVo {
     @ApiModelProperty(value = "支付过期时间", required = true)
     private Date expireTime;
 
+    @ApiModelProperty(value = "最后的封单时间")
+    @ExcelProperty(value = "最后的封单时间",converter = ExcelDateTimeConvert.class)
+    private Date lastEndTime;
 
 
+    @ApiModelProperty(value = "是否封单")
+    @ExcelProperty(value = "是否封单")
+    @ExcelDictFormat(readConverterExp = "true=是,false=否")
+    private Boolean end;
 
 
 }

+ 13 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/IOnlineOrderService.java

@@ -114,4 +114,17 @@ public interface IOnlineOrderService {
      * @return 支付总额
      */
     BigDecimal payAmountTotal(Long userId, DateTime startTime, DateTime endTime);
+
+    /**
+     * 支付订单超时处理
+     *
+     * @param orderId 订单id
+     */
+    void payExpire(Long orderId);
+
+    /**
+     * 订单封单处理
+     * @param orderId 订单id
+     */
+    void endOrder(Long orderId);
 }

+ 47 - 25
ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/impl/OnlineOrderServiceImpl.java

@@ -4,37 +4,35 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.base.revenue.domain.vo.RevenueSharingConfigVo;
 import com.ruoyi.base.revenue.service.IRevenueSharingConfigService;
 import com.ruoyi.business.domain.Business;
-import com.ruoyi.business.domain.bo.BusinessBalanceRecordBo;
-import com.ruoyi.business.domain.vo.BusinessLogisticsConfigVo;
-import com.ruoyi.business.enums.BusinessBillType;
-import com.ruoyi.business.enums.BusinessSourceType;
-import com.ruoyi.business.exception.BusinessExceptionEnum;
 import com.ruoyi.business.service.IBusinessService;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.MathUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.domain.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.newwxpay.config.NewWxPayProperties;
 import com.ruoyi.newwxpay.pay.PayNotifyResult;
+import com.ruoyi.onlineorder.OnLineOrderProperties;
+import com.ruoyi.onlineorder.domain.OnlineOrder;
 import com.ruoyi.onlineorder.domain.bo.CreateOnlineOrderBo;
+import com.ruoyi.onlineorder.domain.bo.OnlineOrderBo;
+import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
 import com.ruoyi.onlineorder.domain.vo.PayOnlineOrderVo;
+import com.ruoyi.onlineorder.enums.OnlineOrderCancelType;
 import com.ruoyi.onlineorder.enums.OnlineOrderStatus;
 import com.ruoyi.onlineorder.enums.OnlinePayStatus;
+import com.ruoyi.onlineorder.exception.OnlineOrderExceptionEnum;
+import com.ruoyi.onlineorder.mapper.OnlineOrderMapper;
+import com.ruoyi.onlineorder.service.IOnlineOrderService;
 import com.ruoyi.shop.business.domain.bo.UserBusinessChangeIntegralBo;
 import com.ruoyi.shop.business.service.IUserBusinessRoleService;
-import com.ruoyi.shop.order.domain.ShopOrder;
-import com.ruoyi.shop.order.domain.ShopOrderDetail;
-import com.ruoyi.shop.order.enums.PaymentStatus;
-import com.ruoyi.shop.order.enums.ShippingMethod;
-import com.ruoyi.shop.order.enums.TransactionStatus;
 import com.ruoyi.subsidy.domain.SubsidyMode;
 import com.ruoyi.subsidy.service.ISubsidyModeService;
 import com.ruoyi.subsidy.service.ISubsidyQueueService;
@@ -46,20 +44,14 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
-import com.ruoyi.onlineorder.domain.bo.OnlineOrderBo;
-import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
-import com.ruoyi.onlineorder.domain.OnlineOrder;
-import com.ruoyi.onlineorder.mapper.OnlineOrderMapper;
-import com.ruoyi.onlineorder.service.IOnlineOrderService;
-import com.ruoyi.onlineorder.exception.OnlineOrderExceptionEnum;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Collection;
 
 /**
  * 在线订单Service业务层处理
@@ -89,7 +81,8 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
     @Resource
     private IRevenueSharingConfigService iRevenueSharingConfigService;
 
-
+    @Resource
+    private OnLineOrderProperties onLineOrderProperties;
     /**
      * 查询在线订单分页
      *
@@ -248,7 +241,7 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
         onlineOrder.setOrderAmount(bo.getOrderAmount());
         onlineOrder.setPayType(bo.getPayType());
         onlineOrder.setPayAmount(bo.getOrderAmount());
-        onlineOrder.init();
+        onlineOrder.init(onLineOrderProperties.getPayExpireMinute());
         this.baseMapper.insert(onlineOrder);
 
 
@@ -275,6 +268,34 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
         return this.baseMapper.payAmountTotal(userId, startTime, endTime);
     }
 
+    /**
+     * 支付超时取消订单
+     * @param orderId 订单ID
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void payExpire(Long orderId) {
+        OnlineOrder onlineOrder = loadById(orderId, true);
+        if (OnlinePayStatus.PAYED.equals(onlineOrder.getPayStatus())) {
+            return;
+        }
+        onlineOrder.setCancelType(OnlineOrderCancelType.PAY_TIMEOUT_CANCEL);
+        onlineOrder.setCancelTime(new Date());
+        onlineOrder.setCancelReason("支付超时取消");
+        this.baseMapper.updateById(onlineOrder);
+    }
+
+    @Override
+    public void endOrder(Long orderId) {
+        OnlineOrder onlineOrder = loadById(orderId, true);
+        if(onlineOrder.getEnd())
+        {
+            return ;
+        }
+        onlineOrder.setEnd(true);
+        this.baseMapper.updateById(onlineOrder);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public OnlineOrder orderPayCallback(PayNotifyResult notifyResult) {
@@ -317,6 +338,7 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
                 order.setPayStatus(OnlinePayStatus.PAY_FAIL);
             }
             order.setTransactionId(transactionId);
+            order.setLastEndTime(DateUtil.offsetDay(DateUtil.endOfDay(new Date()), onLineOrderProperties.getEndOrderDay()));
             this.baseMapper.updateById(order);
             if (!OnlinePayStatus.PAYED.equals(order.getPayStatus())) {
                 return null;

+ 51 - 0
ruoyi-message/src/main/java/com/ruoyi/listener/SubsidyNotifyReceiver.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.rabbitmq.client.Channel;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.onlineorder.service.IOnlineOrderService;
 import com.ruoyi.rabbitmq.annotation.RabbitComponent;
 import com.ruoyi.rabbitmq.client.RabbitMqClient;
 import com.ruoyi.rabbitmq.constant.DelayedConstant;
@@ -38,9 +39,14 @@ public class SubsidyNotifyReceiver extends BaseRabbiMqHandler<BaseMap> {
     @Resource
     private ISubsidySharedPoolService subsidySharedPoolService;
 
+    @Lazy
+    @Resource
+    private IOnlineOrderService onlineOrderService;
+
     @Lazy
     @Resource
     private  RabbitMqClient rabbitMqClient;
+
     /**
      * 补贴均摊到期结算 完成
      */
@@ -71,4 +77,49 @@ public class SubsidyNotifyReceiver extends BaseRabbiMqHandler<BaseMap> {
             }
         });
     }
+
+    /**
+     * 在线订单过期未支付 完成
+     */
+    @RabbitListener(queues = DelayedConstant.OnLineOrderAutoCLoseDelayedConstant.ON_LINE_ORDER_AUTO_CLOSE_DELAYED_QUEUE)
+    public void onLineOrderAutoClose(Message message, Channel channel) {
+        super.onMessage(message, channel, new MqListener<BaseMap>() {
+            @Override
+            public void handler(Message message) {
+                // 业务处理
+                String result = new String(message.getBody());
+                Long orderId = Long.valueOf(result);
+                log.info("MQ 在线订单过期未支付,orderId :{}", orderId);
+                try {
+                    onlineOrderService.payExpire(orderId);
+                } catch (ServiceException ex) {
+                    log.info("MQ 在线订单过期未支付,orderId:{}", orderId, ex);
+                }
+            }
+        });
+    }
+
+    /**
+     * 在线订单完成后的封单
+     */
+    @RabbitListener(queues = DelayedConstant.OnLineOrderEndDelayedConstant.ON_LINE_ORDER_END_DELAYED_QUEUE)
+    public void onLineOrderEnd(Message message, Channel channel) {
+        super.onMessage(message, channel, new MqListener<BaseMap>() {
+            @Override
+            public void handler(Message message) {
+                // 业务处理
+                String result = new String(message.getBody());
+                Long orderId = Long.valueOf(result);
+                log.info("MQ 在线订单完成后的封单,orderId :{}", orderId);
+                try {
+                    onlineOrderService.endOrder(orderId);
+                } catch (ServiceException ex) {
+                    log.info("MQ 在线订单完成后的封单,orderId:{}", orderId, ex);
+                }
+            }
+        });
+    }
+
+
+
 }

+ 92 - 7
ruoyi-rabbitmq/src/main/java/com/ruoyi/rabbitmq/config/RabbitMqDelayedConfig.java

@@ -12,6 +12,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 import static com.ruoyi.rabbitmq.constant.DelayedConstant.CustomTestDelayedConstant.*;
+import static com.ruoyi.rabbitmq.constant.DelayedConstant.OnLineOrderAutoCLoseDelayedConstant.*;
+import static com.ruoyi.rabbitmq.constant.DelayedConstant.OnLineOrderEndDelayedConstant.*;
 import static com.ruoyi.rabbitmq.constant.DelayedConstant.OrderAutoCLoseDelayedConstant.*;
 import static com.ruoyi.rabbitmq.constant.DelayedConstant.OrderAutoReceivingDelayedConstant.*;
 import static com.ruoyi.rabbitmq.constant.DelayedConstant.OrderAutoStockUpDelayedConstant.*;
@@ -64,7 +66,90 @@ public class RabbitMqDelayedConfig {
 
     //endregion
 
+    //region 在线订单未支付自动关闭
 
+    /**
+     * 在线订单未支付自动关闭MQ队列
+     *
+     * @return
+     */
+    @Bean
+    public Queue onLineOrderAutoCLoseDelayedQueue() {
+        return new Queue(ON_LINE_ORDER_AUTO_CLOSE_DELAYED_QUEUE);
+    }
+
+    /**
+     * 定义一个在线订单未支付自动关闭延迟交换机
+     *
+     * @return
+     */
+    @Bean
+    public CustomExchange onLineOrderAutoCLoseDelayExchange() {
+        Map<String, Object> args = new HashMap<String, Object>();
+        args.put("x-delayed-type", "direct");
+        // 表⽰是否最多只允许⼀个消费者消费,如果有多个消费者同时绑定,则只会激活第⼀个,
+        // 除⾮第⼀个消费者被取消或者死亡,才会⾃动转到下⼀个消费者。
+        args.put("x-single-active-consumer", true);
+        return new CustomExchange(ON_LINE_ORDER_AUTO_CLOSE_DELAYED_EXCHANGE, "x-delayed-message", true, false, args);
+    }
+
+    /**
+     * 绑定队列到这个延迟交换机上
+     *
+     * @param queue
+     * @param customExchange
+     * @return
+     */
+    @Bean
+    public Binding onLineOrderAutoCLoseDelayBinding(@Qualifier("onLineOrderAutoCLoseDelayedQueue") Queue queue,
+                                                       @Qualifier("onLineOrderAutoCLoseDelayExchange") CustomExchange customExchange) {
+        return BindingBuilder.bind(queue).to(customExchange).with(ON_LINE_ORDER_AUTO_CLOSE_DELAYED_ROUTING).noargs();
+    }
+
+    //endregion
+
+
+    //region 在线订单完成后的封单
+
+    /**
+     * 在线订单完成后的封单MQ队列
+     *
+     * @return
+     */
+    @Bean
+    public Queue onLineOrderEndDelayedQueue() {
+        return new Queue(ON_LINE_ORDER_END_DELAYED_QUEUE);
+    }
+
+    /**
+     * 定义一个在线订单完成后的封单延迟交换机
+     *
+     * @return
+     */
+    @Bean
+    public CustomExchange onLineOrderEndDelayExchange() {
+        Map<String, Object> args = new HashMap<String, Object>();
+        args.put("x-delayed-type", "direct");
+        // 表⽰是否最多只允许⼀个消费者消费,如果有多个消费者同时绑定,则只会激活第⼀个,
+        // 除⾮第⼀个消费者被取消或者死亡,才会⾃动转到下⼀个消费者。
+        args.put("x-single-active-consumer", true);
+        return new CustomExchange(ON_LINE_ORDER_END_DELAYED_EXCHANGE, "x-delayed-message", true, false, args);
+    }
+
+    /**
+     * 绑定队列到这个延迟交换机上
+     *
+     * @param queue
+     * @param customExchange
+     * @return
+     */
+    @Bean
+    public Binding onLineOrderEndDelayBinding(@Qualifier("onLineOrderEndDelayedQueue") Queue queue,
+                                                    @Qualifier("onLineOrderEndDelayExchange") CustomExchange customExchange) {
+        return BindingBuilder.bind(queue).to(customExchange).with(ON_LINE_ORDER_END_DELAYED_ROUTING).noargs();
+    }
+
+    //endregion
 
     //region 补贴均摊到期结算
 
@@ -108,7 +193,7 @@ public class RabbitMqDelayedConfig {
 
     //endregion
 
-    //region 订单未支付自动关闭 延时队列MQ
+    //region 商城订单未支付自动关闭 延时队列MQ
     @Bean
     public Queue orderAutoCloseDelayedQueue() {
         return new Queue(ORDER_AUTO_CLOSE_DELAYED_QUEUE);
@@ -132,7 +217,7 @@ public class RabbitMqDelayedConfig {
     //endregion
 
 
-    //region 自提订单自动备货 延时队列MQ
+    //region 商城自提订单自动备货 延时队列MQ
     @Bean
     public Queue orderAutoStockUpDelayedQueue() {
         return new Queue(ORDER_AUTO_STOCK_UP_DELAYED_QUEUE);
@@ -156,7 +241,7 @@ public class RabbitMqDelayedConfig {
     //endregion
 
 
-    //region 订单自动收货 延时队列MQ Receiving
+    //region 商城订单自动收货 延时队列MQ Receiving
     @Bean
     public Queue orderAutoReceivingDelayedQueue() {
         return new Queue(ORDER_AUTO_RECEIVING_DELAYED_QUEUE);
@@ -179,7 +264,7 @@ public class RabbitMqDelayedConfig {
     }
     //endregion
 
-    //region 订单完成后的封单 延时队列MQ
+    //region 商城订单完成后的封单 延时队列MQ
     @Bean
     public Queue orderEndDelayedQueue() {
         return new Queue(ORDER_END_DELAYED_QUEUE);
@@ -203,7 +288,7 @@ public class RabbitMqDelayedConfig {
     //endregion
 
 
-    //region 会员申请维权发送自动同意 延时队列MQ
+    //region 商城会员申请维权发送自动同意 延时队列MQ
     @Bean
     public Queue rightAutoAgreeDelayedQueue() {
         return new Queue(RIGHTS_AUTO_AGREE_DELAYED_QUEUE);
@@ -226,7 +311,7 @@ public class RabbitMqDelayedConfig {
     }
     //endregion
 
-    //region 商家同意之后,买家过期没有填写物流单,需要自动取消的维权单 延时队列MQ
+    //region 商城商家同意之后,买家过期没有填写物流单,需要自动取消的维权单 延时队列MQ
     @Bean
     public Queue rightsAutoCancelDelayedQueue() {
         return new Queue(RIGHTS_AUTO_CANCEL_DELAYED_QUEUE);
@@ -249,7 +334,7 @@ public class RabbitMqDelayedConfig {
     }
     //endregion
 
-    //region 需要自动收货的维权单 延时队列MQ
+    //region 商城需要自动收货的维权单 延时队列MQ
     @Bean
     public Queue rightsAutoReceiptDelayedQueue() {
         return new Queue(RIGHTS_AUTO_RECEIPT_DELAYED_QUEUE);

+ 20 - 2
ruoyi-rabbitmq/src/main/java/com/ruoyi/rabbitmq/constant/DelayedConstant.java

@@ -16,6 +16,24 @@ public class DelayedConstant {
     }
 
 
+    /**
+     * 在线订单未支付自动关闭
+     */
+    public interface OnLineOrderAutoCLoseDelayedConstant {
+        String ON_LINE_ORDER_AUTO_CLOSE_DELAYED_EXCHANGE = PREFIX+"online_order_auto_close_delayed_exchange";
+        String ON_LINE_ORDER_AUTO_CLOSE_DELAYED_QUEUE = PREFIX+"online_order_auto_close_delayed_queue";
+        String ON_LINE_ORDER_AUTO_CLOSE_DELAYED_ROUTING = PREFIX+"online_order_auto_close_delayed_routing";
+    }
+
+    /**
+     * 在线订单完成后的封单
+     */
+    public interface OnLineOrderEndDelayedConstant {
+        String ON_LINE_ORDER_END_DELAYED_EXCHANGE = PREFIX+"online_order_end_delayed_exchange";
+        String ON_LINE_ORDER_END_DELAYED_QUEUE = PREFIX+"online_order_end_delayed_queue";
+        String ON_LINE_ORDER_END_DELAYED_ROUTING = PREFIX+"online_order_end_delayed_routing";
+    }
+
     /**
      * 补贴均摊到期结算
      */
@@ -28,7 +46,7 @@ public class DelayedConstant {
 
 
     /**
-     * 订单未支付自动关闭
+     * 商城订单未支付自动关闭
      */
     public interface OrderAutoCLoseDelayedConstant {
         String ORDER_AUTO_CLOSE_DELAYED_EXCHANGE = PREFIX+"order_auto_close_delayed_exchange";
@@ -56,7 +74,7 @@ public class DelayedConstant {
 
 
     /**
-     * 订单完成后的封单
+     * 商城订单完成后的封单
      */
     public interface OrderEndDelayedConstant {
         String ORDER_END_DELAYED_EXCHANGE = PREFIX+"order_end_delayed_exchange";