package cc.mrbird.febs.mall.quartz; import cc.mrbird.febs.common.enumerates.OrderStatusEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.mall.entity.MallGoods; import cc.mrbird.febs.mall.entity.MallGoodsSku; import cc.mrbird.febs.mall.entity.MallOrderInfo; import cc.mrbird.febs.mall.entity.MallOrderItem; import cc.mrbird.febs.mall.mapper.*; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; /** * @author wzy * @date 2021-09-25 **/ @Slf4j @Component @ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true") public class OrderOvertimeJob { @Autowired private MallOrderInfoMapper orderInfoMapper; @Autowired private MallMemberMapper mallMemberMapper; @Autowired private MallOrderItemMapper mallOrderItemMapper; @Autowired private MallGoodsMapper mallGoodsMapper; @Autowired private MallGoodsSkuMapper mallGoodsSkuMapper; // @Scheduled(cron = "0 0/5 * * * ? ") // public void overtimeJob() { // log.info("订单超时任务执行"); // List orderList = orderInfoMapper.selectOrderInfoUpTime(OrderStatusEnum.WAIT_PAY.getValue()); // if (CollUtil.isNotEmpty(orderList)) { // for (MallOrderInfo orderInfo : orderList) { // //更新订单状态 // orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); // orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY); // orderInfoMapper.updateById(orderInfo); // // List mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); // if(CollUtil.isNotEmpty(mallOrderItemList)){ // for(MallOrderItem mallOrderItem : mallOrderItemList){ // MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId()); // if (sku == null) { // throw new FebsException("购买商品或sku不存在"); // } // //// if (sku.getStock() < mallOrderItem.getCnt()) { //// throw new FebsException(sku.getSkuName() + "库存不足"); //// } // // MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); // Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt()); // if(1 != goodsResult){ // throw new FebsException(mallGoods.getGoodsName() + "库存不足"); // } // // Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); // if(1 != skuResult){ // throw new FebsException(sku.getSkuName() + "库存不足"); // } // } // } // } // } // // } // @Scheduled(cron = "0/5 * * * * ? ") // public void wakeup() { // log.info("本地保持唤醒状态"); // Long id = 5L; // mallMemberMapper.selectById(id); // } }