bug
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user