wangjinhao_branch
wangjinhao 10 months ago
parent 3d62bf54e6
commit 432dce5108

@ -0,0 +1,91 @@
/*
* Copyright (c) 2018-2999 广 All rights reserved.
*
* https://www.mall4j.com/
*
*
*
*
*/
package com.yami.shop.admin.task; // 定义类所在的包
import cn.hutool.core.collection.CollectionUtil; // 引入Hutool工具类库中的CollectionUtil工具类
import cn.hutool.core.date.DateUtil; // 引入Hutool工具类库中的DateUtil工具类
import com.xxl.job.core.handler.annotation.XxlJob; // 引入XXL-Job的注解
import com.yami.shop.bean.enums.OrderStatus; // 引入订单状态枚举类
import com.yami.shop.bean.model.Order; // 引入订单模型类
import com.yami.shop.bean.model.OrderItem; // 引入订单项模型类
import com.yami.shop.service.OrderService; // 引入订单服务类
import com.yami.shop.service.ProductService; // 引入商品服务类
import com.yami.shop.service.SkuService; // 引入SKU服务类
import org.slf4j.Logger; // 引入SLF4J的Logger类
import org.slf4j.LoggerFactory; // 引入SLF4J的LoggerFactory类
import org.springframework.beans.factory.annotation.Autowired; // 引入Spring的@Autowired注解
import org.springframework.stereotype.Component; // 引入Spring的@Component注解
import java.util.Date; // 引入Java的Date类
import java.util.List; // 引入Java的List接口
/**
* OrderTask
* xxl-jobjava
* @ FrozenWatermelon
* @ com.yami.shop.admin.config.XxlJobConfig
*/
@Component("orderTask") // 标注这是一个Spring组件并且以orderTask为组件名称
public class OrderTask {
private static final Logger logger = LoggerFactory.getLogger(OrderTask.class); // 日志记录器
@Autowired
private OrderService orderService; // 自动注入订单服务类
@Autowired
private ProductService productService; // 自动注入商品服务类
@Autowired
private SkuService skuService; // 自动注入SKU服务类
/**
*
*/
@XxlJob("cancelOrder")
public void cancelOrder() {
Date now = new Date();
logger.info("取消超时未支付订单。。。");
// 获取30分钟之前未支付的订单
List<Order> orders = orderService.listOrderAndOrderItems(OrderStatus.UNPAY.value(), DateUtil.offsetMinute(now, -30));
if (CollectionUtil.isEmpty(orders)) {
return;
}
orderService.cancelOrders(orders);
for (Order order : orders) {
List<OrderItem> orderItems = order.getOrderItems();
for (OrderItem orderItem : orderItems) {
productService.removeProductCacheByProdId(orderItem.getProdId());
skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
}
}
}
/**
*
*/
@XxlJob("confirmOrder")
public void confirmOrder() {
Date now = new Date();
logger.info("系统自动确认收货订单。。。");
// 获取15天之前未支付的订单
List<Order> orders = orderService.listOrderAndOrderItems(OrderStatus.CONSIGNMENT.value(), DateUtil.offsetDay(now, -15));
if (CollectionUtil.isEmpty(orders)) {
return;
}
orderService.confirmOrder(orders);
for (Order order : orders) {
List<OrderItem> orderItems = order.getOrderItems();
for (OrderItem orderItem : orderItems) {
productService.removeProductCacheByProdId(orderItem.getProdId());
skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
}
}
}
}
Loading…
Cancel
Save