Browse Source

update cancel order

master
朱天祥 1 year ago
parent
commit
78a1fadfca
3 changed files with 10 additions and 2 deletions
  1. +5
    -1
      src/main/java/cn/edu/ecnu/stu/bookstore/listener/ExpiredOrderListener.java
  2. +1
    -1
      src/main/java/cn/edu/ecnu/stu/bookstore/service/impl/BuyerService.java
  3. +4
    -0
      src/main/java/cn/edu/ecnu/stu/bookstore/service/impl/OrderService.java

+ 5
- 1
src/main/java/cn/edu/ecnu/stu/bookstore/listener/ExpiredOrderListener.java View File

@ -3,6 +3,7 @@ package cn.edu.ecnu.stu.bookstore.listener;
import cn.edu.ecnu.stu.bookstore.config.RabbitMqConfig;
import cn.edu.ecnu.stu.bookstore.mapper.OrderMapper;
import cn.edu.ecnu.stu.bookstore.pojo.OrderStatus;
import cn.edu.ecnu.stu.bookstore.service.impl.OrderService;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
@ -15,12 +16,15 @@ public class ExpiredOrderListener {
@Autowired
private OrderMapper orderMapper;
@Autowired
private OrderService orderService;
@RabbitListener(queues = RabbitMqConfig.EXPIRED_ORDER_QUEUE)
public void processExpiredOrder(String msg, Channel channel, Message message) {
System.out.println(msg + "过期");
OrderStatus status = OrderStatus.getByValue(orderMapper.selectStatus(msg));
if(OrderStatus.WAIT_PAYMENT.equals(status)) {
orderMapper.updateOrderStatus(msg, OrderStatus.CANCEL);
orderService.cancel(msg);
}
}
}

+ 1
- 1
src/main/java/cn/edu/ecnu/stu/bookstore/service/impl/BuyerService.java View File

@ -94,7 +94,7 @@ public class BuyerService {
}
rabbitTemplate.convertAndSend(RabbitMqConfig.EXPIRED_ORDER_EXCHANGE, RabbitMqConfig.EXPIRED_ORDER_ROUTING_KEY,
orderId, message -> {
message.getMessageProperties().setDelay(10000);
message.getMessageProperties().setDelay(RabbitMqConfig.ORDER_EXPIRE_TIME);
return message;
});
}

+ 4
- 0
src/main/java/cn/edu/ecnu/stu/bookstore/service/impl/OrderService.java View File

@ -39,6 +39,10 @@ public class OrderService {
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if(orderMapper.checkOrder(orderId, user.getId()) != 1)
throw new AppException(Constants.CLIENT_ERROR, Constants.AUTHORITY_ERROR);
cancel(orderId);
}
public void cancel(String orderId) {
Order order = orderMapper.selectById(orderId);
List<OrderBookDO> books = orderMapper.getBookListByOrder(orderId);
orderService.updateOrderAndStockLevel(order, books);

Loading…
Cancel
Save