package com.xzx.gc.order.runner; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.OrderEnum; import com.xzx.gc.common.constant.RedisKeyConstant; import com.xzx.gc.common.constant.SysConfigConstant; import com.xzx.gc.common.utils.BusinessUtil; import com.xzx.gc.common.utils.RedisUtil; import com.xzx.gc.entity.ConfigInfo; import com.xzx.gc.entity.OrderInfo; import com.xzx.gc.order.service.ConfigService; import com.xzx.gc.order.service.OrderService; import com.xzx.gc.order.service.WeightItemPriceService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import java.util.List; /** */ @Component @Order(1) @Slf4j public class SystemInfoRunner implements CommandLineRunner { @Autowired private BusinessUtil businessUtil; @Autowired private RedisUtil redisUtil; @Autowired private OrderService orderService; @Autowired private ConfigService configService; @Autowired private WeightItemPriceService weightItemPriceService; @Override public void run(String... args) { log.debug(businessUtil.repeatService("订单服务启动完成")); //修复取消的订单的redis键 ConfigInfo configInfo = configService.findByCode(SysConfigConstant.ORDER_CANCEL_REDIS_SWITCH); if(Constants.OPEN_FLAG.equals(configInfo.getConfigValue())) { List byOrderStatus = orderService.findByOrderStatus(OrderEnum.取消.getValue()); for (OrderInfo orderStatus : byOrderStatus) { String orderId = orderStatus.getOrderId(); redisUtil.remove(RedisKeyConstant.ORDER_CANCEL + orderId); log.debug("删除无效的redis键:{}", RedisKeyConstant.ORDER_CANCEL + orderId); } configInfo.setConfigValue(Constants.CLOSE_FLAG); configService.update(configInfo); } //执行提成 configInfo = configService.findByCode(SysConfigConstant.SETTLE_MONEY_REDIS_SWITCH); if(Constants.OPEN_FLAG.equals(configInfo.getConfigValue())) { weightItemPriceService.updateSettleMoneyForRule(); configInfo.setConfigValue(Constants.CLOSE_FLAG); configService.update(configInfo); } } }