xiongzhu hace 4 años
padre
commit
a73605727c

+ 11 - 0
src/main/java/com/izouma/nineth/service/OrderCancelService.java

@@ -2,15 +2,18 @@ package com.izouma.nineth.service;
 
 import com.izouma.nineth.config.GeneralProperties;
 import com.izouma.nineth.domain.Order;
+import com.izouma.nineth.domain.SysConfig;
 import com.izouma.nineth.enums.OrderStatus;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.OrderRepo;
+import com.izouma.nineth.repo.SysConfigRepo;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -22,6 +25,14 @@ public class OrderCancelService {
     private final GeneralProperties generalProperties;
     private final OrderRepo         orderRepo;
     private final OrderService      orderService;
+    private final SysConfigRepo     sysConfigRepo;
+    private       int               orderCancelTime = 210;
+
+    @PostConstruct
+    public void init() {
+        orderCancelTime = sysConfigRepo.findByName("order_cancel_interval")
+                .map(SysConfig::getValue).map(Integer::parseInt).orElse(210);
+    }
 
     @Scheduled(fixedRate = 30000)
     public void batchCancel() {

+ 8 - 0
src/main/java/com/izouma/nineth/service/SysConfigService.java

@@ -98,6 +98,14 @@ public class SysConfigService {
                     .value("FALSE")
                     .build());
         }
+        if (sysConfigRepo.findByName("order_cancel_interval").isEmpty()) {
+            sysConfigRepo.save(SysConfig.builder()
+                    .name("order_cancel_time")
+                    .desc("订单自动取消间隔(S)")
+                    .type(SysConfig.ValueType.BOOLEAN)
+                    .value("210")
+                    .build());
+        }
         SearchMode searchMode = SearchMode.valueOf(sysConfigRepo.findByName("default_search_mode").get().getValue());
         JpaUtils.setDefaultSearchMode(searchMode);
     }