This commit is contained in:
wangjinlei
2023-12-12 15:31:23 +08:00
parent c3453e3aa5
commit fa036179b1
4 changed files with 24 additions and 3 deletions

View File

@@ -1,13 +1,20 @@
package com.peanut.modules.mq.Consumer;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.config.Constants;
import com.peanut.config.DelayQueueConfig;
import com.peanut.modules.book.dao.BuyOrderProductDao;
import com.peanut.modules.book.dao.ShopProductDao;
import com.peanut.modules.book.entity.BuyOrder;
import com.peanut.modules.book.entity.BuyOrderProduct;
import com.peanut.modules.book.entity.ShopProduct;
import com.peanut.modules.book.service.BuyOrderService;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description: 消息超时取消死信队列消费者
* @Author: Cauchy
@@ -18,6 +25,10 @@ public class OrderCancelConsumer {
@Autowired
BuyOrderService buyOrderService;
@Autowired
BuyOrderProductDao buyOrderProductDao;
@Autowired
ShopProductDao shopProductDao;
@RabbitListener(queues = DelayQueueConfig.ORDER_CANCEL_DEAD_LETTER_QUEUE)
public void orderConsumer(String orderId) {
@@ -27,6 +38,16 @@ public class OrderCancelConsumer {
}
if(Constants.ORDER_STATUS_TO_BE_PAID.equals(buyOrder.getOrderStatus())){
buyOrder.setOrderStatus(Constants.ORDER_STATUS_OUT_OF_TIME);
//回滚库存
LambdaQueryWrapper<BuyOrderProduct> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BuyOrderProduct::getOrderId,buyOrder.getOrderId());
List<BuyOrderProduct> buyOrderProducts = buyOrderProductDao.selectList(wrapper);
for (BuyOrderProduct b : buyOrderProducts){
ShopProduct shopProduct = shopProductDao.selectById(b.getProductId());
shopProduct.setProductStock(shopProduct.getProductStock()+b.getQuantity());
shopProductDao.updateById(shopProduct);
}
}
buyOrderService.updateById(buyOrder);
}