ouyang 3 лет назад
Родитель
Сommit
9e4ffbc2f8

+ 62 - 0
src/main/java/com/izouma/nineth/service/scheduledTask/AnnouncingTask.java

@@ -0,0 +1,62 @@
+package com.izouma.nineth.service.scheduledTask;
+
+import com.izouma.nineth.domain.Collection;
+import com.izouma.nineth.enums.SubscribeStatus;
+import com.izouma.nineth.repo.CollectionRepo;
+import io.jsonwebtoken.lang.Collections;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+
+
+@Configuration
+@EnableScheduling
+public class AnnouncingTask extends ScheduleConfig {
+
+    @Autowired
+    private CollectionRepo collectionRepo;
+
+
+    private List<Collection> collections = new ArrayList();
+
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.addTriggerTask(() -> {
+            b:
+            if (Collections.isEmpty(collections)){
+                return;
+            }else {
+                for (Collection collection : collections) {
+                    if (collection.getPublishTime().isBefore(LocalDateTime.now()) && collection.getPublishTime().isBefore(LocalDateTime.now().minusSeconds(2))){
+                        collectionRepo.setState(collection.getId(), SubscribeStatus.ANNOUNCING.getDescription());
+                        collections.remove(0);
+                        break b;
+                    }
+                }
+            }
+        }, triggerContext -> {
+            if (Collections.isEmpty(collections)){
+                LocalDateTime startTime = LocalDateTime.now();
+                LocalDateTime endTime = startTime.plusMinutes(4);
+                List<Collection> collectionList = collectionRepo.findAllByEndTimeLessThanEqualAndPublishTimeGreaterThanEqual(startTime, endTime);
+                if (Collections.isEmpty(collectionList)) {
+                    return Date.from(endTime.minusSeconds(5).atZone(ZoneId.systemDefault()).toInstant());
+                }
+                collections = collectionList.stream().sorted(Comparator.comparing(Collection::getPublishTime)).collect(Collectors.toList());
+            }
+            return Date.from(collections.get(0).getPublishTime().minusSeconds(2).atZone(ZoneId.systemDefault()).toInstant());
+        });
+    }
+}

+ 0 - 60
src/main/java/com/izouma/nineth/service/scheduledTask/CloseSubscribedTask.java

@@ -1,60 +0,0 @@
-package com.izouma.nineth.service.scheduledTask;
-
-import com.izouma.nineth.domain.Collection;
-import com.izouma.nineth.repo.CollectionRepo;
-import io.jsonwebtoken.lang.Collections;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.SchedulingConfigurer;
-import org.springframework.scheduling.config.ScheduledTaskRegistrar;
-
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-
-
-@Configuration
-@EnableScheduling
-public class CloseSubscribedTask implements SchedulingConfigurer {
-
-    @Autowired
-    private CollectionRepo collectionRepo;
-
-
-    private List<Collection> collections = new ArrayList();
-
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
-//        taskRegistrar.addTriggerTask(() -> {
-//            b:
-//            if (Collections.isEmpty(collections)){
-//                return;
-//            }else {
-//                for (Collection collection : collections) {
-//                    if (collection.getEndTime().isBefore(LocalDateTime.now()) && collection.getEndTime().isBefore(LocalDateTime.now().minusSeconds(2))){
-//                        collectionRepo.setState(collection.getId(),"CLOSESUBSCRIBE");
-//                        collections.remove(0);
-//                        break b;
-//                    }
-//                }
-//            }
-//        }, triggerContext -> {
-//            if (Collections.isEmpty(collections)){
-//                LocalDateTime startTime = LocalDateTime.now();
-//                LocalDateTime endTime = startTime.plusMinutes(4);
-//                List<Collection> collectionList = collectionRepo.findAllByStartTimeLessThanEqualAndEndTimeGreaterThanEqual(startTime, endTime);
-//                if (Collections.isEmpty(collectionList)) {
-//                    return Date.from(endTime.minusSeconds(5).atZone(ZoneId.systemDefault()).toInstant());
-//                }
-//                collections = collectionList.stream().sorted(Comparator.comparing(Collection::getEndTime)).collect(Collectors.toList());
-//            }
-//            return Date.from(collections.get(0).getEndTime().minusSeconds(2).atZone(ZoneId.systemDefault()).toInstant());
-//        });
-    }
-}

+ 61 - 0
src/main/java/com/izouma/nineth/service/scheduledTask/OnSaleTask.java

@@ -0,0 +1,61 @@
+package com.izouma.nineth.service.scheduledTask;
+
+import com.izouma.nineth.domain.Collection;
+import com.izouma.nineth.enums.SubscribeStatus;
+import com.izouma.nineth.repo.CollectionRepo;
+import io.jsonwebtoken.lang.Collections;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+
+@Configuration
+@EnableScheduling
+public class OnSaleTask extends ScheduleConfig {
+
+    @Autowired
+    private CollectionRepo collectionRepo;
+
+
+    private List<Collection> collections = new ArrayList();
+
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.addTriggerTask(() -> {
+            b:
+            if (Collections.isEmpty(collections)){
+                return;
+            }else {
+                for (Collection collection : collections) {
+                    if (collection.getPurchaseTime().isBefore(LocalDateTime.now()) && collection.getPurchaseTime().isBefore(LocalDateTime.now().minusSeconds(2))){
+                        collectionRepo.setState(collection.getId(), SubscribeStatus.ON_SALE.getDescription());
+                        collections.remove(0);
+                        break b;
+                    }
+                }
+            }
+        }, triggerContext -> {
+            if (Collections.isEmpty(collections)){
+                LocalDateTime startTime = LocalDateTime.now();
+                LocalDateTime endTime = startTime.plusMinutes(4);
+                List<Collection> collectionList = collectionRepo.findAllByPublishTimeLessThanEqualAndPurchaseTimeGreaterThanEqual(startTime, endTime);
+                if (Collections.isEmpty(collectionList)) {
+                    return Date.from(endTime.minusSeconds(5).atZone(ZoneId.systemDefault()).toInstant());
+                }
+                collections = collectionList.stream().sorted(Comparator.comparing(Collection::getPurchaseTime)).collect(Collectors.toList());
+            }
+            return Date.from(collections.get(0).getPurchaseTime().minusSeconds(2).atZone(ZoneId.systemDefault()).toInstant());
+        });
+    }
+}

+ 3 - 2
src/main/java/com/izouma/nineth/service/scheduledTask/OpenSubscribedTask.java → src/main/java/com/izouma/nineth/service/scheduledTask/OngoingTask.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.service.scheduledTask;
 
 import com.izouma.nineth.domain.Collection;
+import com.izouma.nineth.enums.SubscribeStatus;
 import com.izouma.nineth.repo.CollectionRepo;
 import io.jsonwebtoken.lang.Collections;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,7 +22,7 @@ import java.util.stream.Collectors;
 
 @Configuration
 @EnableScheduling
-public class OpenSubscribedTask implements SchedulingConfigurer {
+public class OngoingTask extends ScheduleConfig {
 
     @Autowired
     private CollectionRepo collectionRepo;
@@ -38,7 +39,7 @@ public class OpenSubscribedTask implements SchedulingConfigurer {
             }else {
                 for (Collection collection : collections) {
                     if (collection.getStartTime().isBefore(LocalDateTime.now()) && collection.getStartTime().isBefore(LocalDateTime.now().minusSeconds(2))){
-                        collectionRepo.setState(collection.getId(),"OPENSUBSCRIBE");
+                        collectionRepo.setState(collection.getId(), SubscribeStatus.ONGOING.getDescription());
                         collections.remove(0);
                         break b;
                     }

+ 0 - 60
src/main/java/com/izouma/nineth/service/scheduledTask/PublishSubscribedTask.java

@@ -1,60 +0,0 @@
-package com.izouma.nineth.service.scheduledTask;
-
-import com.izouma.nineth.domain.Collection;
-import com.izouma.nineth.repo.CollectionRepo;
-import io.jsonwebtoken.lang.Collections;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.SchedulingConfigurer;
-import org.springframework.scheduling.config.ScheduledTaskRegistrar;
-
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-
-
-@Configuration
-@EnableScheduling
-public class PublishSubscribedTask implements SchedulingConfigurer {
-
-    @Autowired
-    private CollectionRepo collectionRepo;
-
-
-    private List<Collection> collections = new ArrayList();
-
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
-//        taskRegistrar.addTriggerTask(() -> {
-//            b:
-//            if (Collections.isEmpty(collections)){
-//                return;
-//            }else {
-//                for (Collection collection : collections) {
-//                    if (collection.getPublishTime().isBefore(LocalDateTime.now()) && collection.getPublishTime().isBefore(LocalDateTime.now().minusSeconds(2))){
-//                        collectionRepo.setState(collection.getId(),"PUBLISH");
-//                        collections.remove(0);
-//                        break b;
-//                    }
-//                }
-//            }
-//        }, triggerContext -> {
-//            if (Collections.isEmpty(collections)){
-//                LocalDateTime startTime = LocalDateTime.now();
-//                LocalDateTime endTime = startTime.plusMinutes(4);
-//                List<Collection> collectionList = collectionRepo.findAllByEndTimeLessThanEqualAndPublishTimeGreaterThanEqual(startTime, endTime);
-//                if (Collections.isEmpty(collectionList)) {
-//                    return Date.from(endTime.minusSeconds(5).atZone(ZoneId.systemDefault()).toInstant());
-//                }
-//                collections = collectionList.stream().sorted(Comparator.comparing(Collection::getPublishTime)).collect(Collectors.toList());
-//            }
-//            return Date.from(collections.get(0).getPublishTime().minusSeconds(2).atZone(ZoneId.systemDefault()).toInstant());
-//        });
-    }
-}

+ 0 - 60
src/main/java/com/izouma/nineth/service/scheduledTask/PurchaseSubscribedTask.java

@@ -1,60 +0,0 @@
-package com.izouma.nineth.service.scheduledTask;
-
-import com.izouma.nineth.domain.Collection;
-import com.izouma.nineth.repo.CollectionRepo;
-import io.jsonwebtoken.lang.Collections;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.SchedulingConfigurer;
-import org.springframework.scheduling.config.ScheduledTaskRegistrar;
-
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-
-
-@Configuration
-@EnableScheduling
-public class PurchaseSubscribedTask implements SchedulingConfigurer {
-
-    @Autowired
-    private CollectionRepo collectionRepo;
-
-
-    private List<Collection> collections = new ArrayList();
-
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
-//        taskRegistrar.addTriggerTask(() -> {
-//            b:
-//            if (Collections.isEmpty(collections)){
-//                return;
-//            }else {
-//                for (Collection collection : collections) {
-//                    if (collection.getPurchaseTime().isBefore(LocalDateTime.now()) && collection.getPurchaseTime().isBefore(LocalDateTime.now().minusSeconds(2))){
-//                        collectionRepo.setState(collection.getId(),"PURCHASE");
-//                        collections.remove(0);
-//                        break b;
-//                    }
-//                }
-//            }
-//        }, triggerContext -> {
-//            if (Collections.isEmpty(collections)){
-//                LocalDateTime startTime = LocalDateTime.now();
-//                LocalDateTime endTime = startTime.plusMinutes(4);
-//                List<Collection> collectionList = collectionRepo.findAllByPublishTimeLessThanEqualAndPurchaseTimeGreaterThanEqual(startTime, endTime);
-//                if (Collections.isEmpty(collectionList)) {
-//                    return Date.from(endTime.minusSeconds(5).atZone(ZoneId.systemDefault()).toInstant());
-//                }
-//                collections = collectionList.stream().sorted(Comparator.comparing(Collection::getPurchaseTime)).collect(Collectors.toList());
-//            }
-//            return Date.from(collections.get(0).getPurchaseTime().minusSeconds(2).atZone(ZoneId.systemDefault()).toInstant());
-//        });
-    }
-}

+ 18 - 0
src/main/java/com/izouma/nineth/service/scheduledTask/ScheduleConfig.java

@@ -0,0 +1,18 @@
+package com.izouma.nineth.service.scheduledTask;
+
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+import java.util.concurrent.Executors;
+
+@Configuration
+@EnableScheduling
+public class ScheduleConfig implements SchedulingConfigurer {
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.setScheduler(Executors.newScheduledThreadPool(5));
+    }
+}

+ 62 - 0
src/main/java/com/izouma/nineth/service/scheduledTask/SubscribeEenIngTask.java

@@ -0,0 +1,62 @@
+package com.izouma.nineth.service.scheduledTask;
+
+import com.izouma.nineth.config.SchedulingConfig;
+import com.izouma.nineth.domain.Collection;
+import com.izouma.nineth.enums.SubscribeStatus;
+import com.izouma.nineth.repo.CollectionRepo;
+import io.jsonwebtoken.lang.Collections;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+
+@Configuration
+@EnableScheduling
+public class SubscribeEenIngTask extends ScheduleConfig {
+
+    @Autowired
+    private CollectionRepo collectionRepo;
+
+
+    private List<Collection> collections = new ArrayList();
+
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.addTriggerTask(() -> {
+            b:
+            if (Collections.isEmpty(collections)){
+                return;
+            }else {
+                for (Collection collection : collections) {
+                    if (collection.getEndTime().isBefore(LocalDateTime.now()) && collection.getEndTime().isBefore(LocalDateTime.now().minusSeconds(2))){
+                        collectionRepo.setState(collection.getId(), SubscribeStatus.SUBSCRIBE_ENDING.getDescription());
+                        collections.remove(0);
+                        break b;
+                    }
+                }
+            }
+        }, triggerContext -> {
+            if (Collections.isEmpty(collections)){
+                LocalDateTime startTime = LocalDateTime.now();
+                LocalDateTime endTime = startTime.plusMinutes(4);
+                List<Collection> collectionList = collectionRepo.findAllByStartTimeLessThanEqualAndEndTimeGreaterThanEqual(startTime, endTime);
+                if (Collections.isEmpty(collectionList)) {
+                    return Date.from(endTime.minusSeconds(5).atZone(ZoneId.systemDefault()).toInstant());
+                }
+                collections = collectionList.stream().sorted(Comparator.comparing(Collection::getEndTime)).collect(Collectors.toList());
+            }
+            return Date.from(collections.get(0).getEndTime().minusSeconds(2).atZone(ZoneId.systemDefault()).toInstant());
+        });
+    }
+}