|
@@ -14,7 +14,9 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Component
|
|
@Component
|
|
@@ -26,6 +28,8 @@ public class SubscribeTask {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private SubscribeRepo subscribeRepo;
|
|
private SubscribeRepo subscribeRepo;
|
|
|
|
|
|
|
|
|
|
+ private Map<Long, LocalDateTime> collectionMap = new HashMap<>();
|
|
|
|
|
+
|
|
|
@Scheduled(cron = "0/5 * * * * ?")
|
|
@Scheduled(cron = "0/5 * * * * ?")
|
|
|
public void subscriberTask() {
|
|
public void subscriberTask() {
|
|
|
LocalDateTime startTime = LocalDateTime.now();
|
|
LocalDateTime startTime = LocalDateTime.now();
|
|
@@ -52,6 +56,13 @@ public class SubscribeTask {
|
|
|
.findAllByEndTimeLessThanEqualAndPublishTimeGreaterThan(startTime, endTime);
|
|
.findAllByEndTimeLessThanEqualAndPublishTimeGreaterThan(startTime, endTime);
|
|
|
if (!Collections.isEmpty(collectionList)) {
|
|
if (!Collections.isEmpty(collectionList)) {
|
|
|
for (Collection collection : collectionList) {
|
|
for (Collection collection : collectionList) {
|
|
|
|
|
+ if (collectionMap.containsKey(collection.getId())) {
|
|
|
|
|
+ if (startTime.isAfter(collectionMap.get(collection.getId()))) {
|
|
|
|
|
+ collectionMap.remove(collection.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ collectionMap.put(collection.getId(), collection.getPublishTime());
|
|
|
List<Subscribe> subscribeList = subscribeRepo.findAllByCollectionId(collection.getId());
|
|
List<Subscribe> subscribeList = subscribeRepo.findAllByCollectionId(collection.getId());
|
|
|
if (subscribeList.size() < collection.getStock()) {
|
|
if (subscribeList.size() < collection.getStock()) {
|
|
|
for (Subscribe subscribe : subscribeList) {
|
|
for (Subscribe subscribe : subscribeList) {
|