Преглед изворни кода

Merge branch 'master' of http://git.izouma.com/wangqifan/lasuo_back

wangqifan пре 3 година
родитељ
комит
44025a64b9

+ 4 - 4
src/main/java/com/izouma/nineth/repo/CollectionRepo.java

@@ -148,13 +148,13 @@ public interface CollectionRepo extends JpaRepository<Collection, Long>, JpaSpec
     Integer getVipQuota(Long id);
 
 
-    List<Collection> findAllByStartTimeGreaterThanAndStartTimeGreaterThanEqual(LocalDateTime startTime,LocalDateTime endTime);
+    List<Collection> findAllByStartTimeGreaterThanAndStartTimeLessThanEqual(LocalDateTime startTime,LocalDateTime endTime);
 
-    List<Collection> findAllByEndTimeGreaterThanAndEndTimeGreaterThanEqual(LocalDateTime startTime, LocalDateTime endTime);
+    List<Collection> findAllByEndTimeGreaterThanAndEndTimeLessThanEqual(LocalDateTime startTime, LocalDateTime endTime);
 
-    List<Collection> findAllByPublishTimeGreaterThanAndPublishTimeGreaterThanEqual(LocalDateTime endTime, LocalDateTime publishTime);
+    List<Collection> findAllByPublishTimeGreaterThanAndPublishTimeLessThanEqual(LocalDateTime endTime, LocalDateTime publishTime);
 
-    List<Collection> findAllByPurchaseTimeGreaterThanAndPurchaseTimeGreaterThanEqual(LocalDateTime publishTime, LocalDateTime purchaseTime);
+    List<Collection> findAllByPurchaseTimeGreaterThanAndPurchaseTimeLessThanEqual(LocalDateTime publishTime, LocalDateTime purchaseTime);
 
 
     //筛选

+ 4 - 0
src/main/java/com/izouma/nineth/repo/FollowRepo.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.repo;
 
 import com.izouma.nineth.domain.Follow;
+import com.izouma.nineth.domain.Subscribe;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -18,4 +19,7 @@ public interface FollowRepo extends JpaRepository<Follow, Long>, JpaSpecificatio
     List<Follow> findByUserIdAndFollowUserId(Long userId, Long to);
 
     List<Follow> findByUserId(Long userId);
+
+    Follow findFirstByFollowUserIdAndUserId(Long followUserId , Long userId);
+
 }

+ 4 - 0
src/main/java/com/izouma/nineth/repo/UserRepo.java

@@ -3,6 +3,7 @@ package com.izouma.nineth.repo;
 import com.izouma.nineth.domain.User;
 import com.izouma.nineth.enums.AuthStatus;
 import com.izouma.nineth.security.Authority;
+import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -51,12 +52,15 @@ public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExe
     @Modifying
     @Query(value = "update user set follows = (select count(*) from follow " +
             "where follow.user_id = ?1) where user.id = ?1", nativeQuery = true)
+    @CacheEvict(value = {"myUserInfo","user"} ,allEntries = true)
     void updateFollows(Long userId);
 
+
     @Transactional
     @Modifying
     @Query(value = "update user set followers = (select count(*) from follow " +
             "where follow.follow_user_id = ?1) where user.id = ?1", nativeQuery = true)
+    @CacheEvict(value = {"myUserInfo","user"} ,allEntries = true)
     void updateFollowers(Long userId);
 
     @Transactional

+ 12 - 6
src/main/java/com/izouma/nineth/service/CollectionService.java

@@ -70,6 +70,7 @@ public class CollectionService {
     private TokenHistoryRepo              tokenHistoryRepo;
     private PointRecordRepo               pointRecordRepo;
     private SubscribeRepo                 subscribeRepo;
+    private FollowRepo                    followRepo;
 
     private final Map<Long, ScheduledFuture<?>> tasks = new HashMap<>();
 
@@ -81,7 +82,7 @@ public class CollectionService {
         List<Collection> collections = collectionRepo
                 .findByScheduleSaleTrueAndOnShelfFalseAndStartTimeBeforeAndDelFalse(LocalDateTime.now());
         for (Collection collection : collections) {
-            onShelfTask(collection);
+//            onShelfTask(collection);
         }
     }
 
@@ -132,7 +133,8 @@ public class CollectionService {
         record.setStock(record.getTotal());
         record.setSale(0);
         record.setVipQuota(record.getTotalQuota());
-        if (record.isScheduleSale()) {
+        record.setSubscribeStatus(SubscribeStatus.NOT_STARTED);
+        if (record.isHasSubscribe()) {
             if (record.getStartTime() == null) {
                 throw new BusinessException("请填写定时发布时间");
             }
@@ -143,7 +145,7 @@ public class CollectionService {
             }
         }
         record = collectionRepo.save(record);
-        onShelfTask(record);
+//        onShelfTask(record);
         redisTemplate.opsForValue().set(RedisKeys.COLLECTION_STOCK + record.getId(), record.getStock());
         redisTemplate.opsForValue().set(RedisKeys.COLLECTION_SALE + record.getId(), record.getSale());
         return record;
@@ -151,7 +153,7 @@ public class CollectionService {
 
     public Collection update(Collection record) {
         collectionRepo.update(record.getId(), record.isOnShelf(), record.isSalable(),
-                record.getStartTime(), record.isScheduleSale(), record.getSort(),
+                record.getStartTime(), record.isHasSubscribe(), record.getSort(),
                 record.getDetail(), JSON.toJSONString(record.getPrivileges()),
                 JSON.toJSONString(record.getProperties()), JSON.toJSONString(record.getModel3d()),
                 record.getMaxCount(), record.getCountId(), record.isScanCode(), record.isNoSoldOut(),
@@ -163,7 +165,7 @@ public class CollectionService {
                         .getEndTime(), record.getPublishTime(), record.getPurchaseTime());
 
         record = collectionRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
-        onShelfTask(record);
+//        onShelfTask(record);
         return record;
     }
 
@@ -174,7 +176,7 @@ public class CollectionService {
                 return;
             }
         }
-        if (record.isScheduleSale()) {
+        if (record.isHasSubscribe()) {
             if (record.getStartTime().minusSeconds(2).isAfter(LocalDateTime.now())) {
                 Date date = Date.from(record.getStartTime().atZone(ZoneId.systemDefault()).toInstant());
                 ScheduledFuture<?> future = taskScheduler.schedule(() -> {
@@ -218,6 +220,10 @@ public class CollectionService {
                         collectionDTO.setPurchaseQualifications(true);
                     }
                 }
+                Follow follow = followRepo.findFirstByFollowUserIdAndUserId(collection.getMinterId(), user.getId());
+                if (!ObjectUtil.isEmpty(follow)) {
+                    collectionDTO.setFollow(true);
+                }
             }
         }
         return collectionDTO;

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

@@ -1,39 +1,39 @@
-package com.izouma.nineth.service.scheduledTask;
-
-import cn.hutool.core.util.ObjectUtil;
-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();
-    private Date time;
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+//package com.izouma.nineth.service.scheduledTask;
+//
+//import cn.hutool.core.util.ObjectUtil;
+//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();
+//    private Date time;
+//    @Override
+//    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
 //        taskRegistrar.addTriggerTask(() -> {
 //            b:
 //            if (Collections.isEmpty(collections)){
@@ -62,5 +62,5 @@ public class AnnouncingTask extends ScheduleConfig {
 //            }
 //            return time;
 //        });
-    }
-}
+//    }
+//}

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

@@ -1,38 +1,38 @@
-package com.izouma.nineth.service.scheduledTask;
-
-import cn.hutool.core.util.ObjectUtil;
-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();
-    private Date time;
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+//package com.izouma.nineth.service.scheduledTask;
+//
+//import cn.hutool.core.util.ObjectUtil;
+//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();
+//    private Date time;
+//    @Override
+//    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
 //        taskRegistrar.addTriggerTask(() -> {
 //            b:
 //            if (Collections.isEmpty(collections)){
@@ -61,5 +61,5 @@ public class OnSaleTask extends ScheduleConfig {
 //            }
 //            return time;
 //        });
-    }
-}
+//    }
+//}

+ 40 - 40
src/main/java/com/izouma/nineth/service/scheduledTask/OngoingTask.java

@@ -1,39 +1,39 @@
-package com.izouma.nineth.service.scheduledTask;
-
-import cn.hutool.core.util.ObjectUtil;
-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.LocalDate;
-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 OngoingTask extends ScheduleConfig {
-
-    @Autowired
-    private CollectionRepo collectionRepo;
-
-
-    private List<Collection> collections = new ArrayList();
-    private Date time;
-
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+//package com.izouma.nineth.service.scheduledTask;
+//
+//import cn.hutool.core.util.ObjectUtil;
+//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.LocalDate;
+//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 OngoingTask extends ScheduleConfig {
+//
+//    @Autowired
+//    private CollectionRepo collectionRepo;
+//
+//
+//    private List<Collection> collections = new ArrayList();
+//    private Date time;
+//
+//    @Override
+//    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
 //        taskRegistrar.addTriggerTask(() -> {
 //            b:if (Collections.isEmpty(collections)) {
 //                return;
@@ -54,9 +54,9 @@ public class OngoingTask extends ScheduleConfig {
 ////                LocalDateTime startTime = LocalDateTime.now().minusMinutes(1);
 //                LocalDateTime startTime = LocalDateTime.now();
 //                //获取四分钟以后的时间
-//                LocalDateTime endTime = startTime.plusMinutes(4);
+//                LocalDateTime endTime = startTime.plusMinutes(6);
 //                //根据开始时间和结束时间去数据库把这两个时间段中 符合的预约发布时间中获取藏品
-//                List<Collection> collectionList = collectionRepo.findAllByStartTimeGreaterThanEqual(startTime);
+//                List<Collection> collectionList = collectionRepo.findAllByStartTimeGreaterThanAndStartTimeLessThanEqual(startTime, endTime);
 //                //判断获取的藏品列表是否为空
 //                if (Collections.isEmpty(collectionList)) {
 ////                    return new CronTrigger("0 0/10 * * * ?").nextExecutionTime(triggerContext);
@@ -71,5 +71,5 @@ public class OngoingTask extends ScheduleConfig {
 //            //取第一个藏品的预约发布时间的前10秒做下次定时任务的时间  换成五秒  两秒
 //            return time;
 //        });
-    }
-}
+//    }
+//}

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

@@ -1,18 +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));
-    }
-}
+//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));
+//    }
+//}

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

@@ -1,39 +1,39 @@
-package com.izouma.nineth.service.scheduledTask;
-
-import cn.hutool.core.util.ObjectUtil;
-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();
-    private Date time;
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+//package com.izouma.nineth.service.scheduledTask;
+//
+//import cn.hutool.core.util.ObjectUtil;
+//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();
+//    private Date time;
+//    @Override
+//    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
 //        taskRegistrar.addTriggerTask(() -> {
 //            b:
 //            if (Collections.isEmpty(collections)){
@@ -62,5 +62,5 @@ public class SubscribeEenIngTask extends ScheduleConfig {
 //            }
 //            return time;
 //        });
-    }
-}
+//    }
+//}

+ 13 - 29
src/main/java/com/izouma/nineth/service/scheduledTask/SubscribeTask.java

@@ -1,18 +1,14 @@
 package com.izouma.nineth.service.scheduledTask;
 
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.util.RandomUtil;
-import com.alipay.api.domain.Person;
 import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.Subscribe;
 import com.izouma.nineth.enums.SubscribeStatus;
-import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.CollectionRepo;
 import com.izouma.nineth.repo.SubscribeRepo;
 import io.jsonwebtoken.lang.Collections;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -32,34 +28,26 @@ public class SubscribeTask {
 
     @Scheduled(cron = "0/5 * * * * ?")
     public void subscriberTask() {
-        //首先获取当前时间
         LocalDateTime startTime = LocalDateTime.now();
-        //获取5秒钟以后的时间
-        LocalDateTime endTime = startTime.plusSeconds(5);
-        //根据开始时间和结束时间去数据库把这两个时间段中 符合的预约发布时间中获取藏品
+        LocalDateTime endTime = startTime.plusSeconds(6);
         List<Collection> ongoingList = collectionRepo
-                .findAllByStartTimeGreaterThanAndStartTimeGreaterThanEqual(startTime, endTime);
-        //预约发布时间判断
+                .findAllByStartTimeGreaterThanAndStartTimeLessThanEqual(startTime, endTime);
         if (!Collections.isEmpty(ongoingList)) {
             for (Collection collection : ongoingList) {
-                if (collection.getStartTime().isAfter(startTime) && collection.getStartTime().isAfter(endTime)) {
-                    int i = collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.ONGOING);
-                    System.out.println("影响的行数为: " + i);
+                if (collection.getStartTime().isAfter(startTime)) {
+                    collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.ONGOING);
                 }
             }
         }
-        //预约结束时间判断
         List<Collection> subscribeEndingList = collectionRepo
-                .findAllByEndTimeGreaterThanAndEndTimeGreaterThanEqual(startTime, endTime);
+                .findAllByEndTimeGreaterThanAndEndTimeLessThanEqual(startTime, endTime);
         if (!Collections.isEmpty(subscribeEndingList)) {
             for (Collection collection : subscribeEndingList) {
-                if (collection.getEndTime().isAfter(startTime) && collection.getEndTime().isAfter(endTime)) {
-                    int i = collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.SUBSCRIBE_ENDING);
-                    System.out.println("影响的行数为: " + i);
+                if (collection.getEndTime().isAfter(startTime)) {
+                    collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.SUBSCRIBE_ENDING);
                 }
             }
         }
-        //进行购买资格筛选
         List<Collection> collectionList = collectionRepo
                 .findAllByEndTimeLessThanEqualAndPublishTimeGreaterThan(startTime, endTime);
         if (!Collections.isEmpty(collectionList)) {
@@ -81,25 +69,21 @@ public class SubscribeTask {
                 }
             }
         }
-        //购买资格公布时间
         List<Collection> announcingList = collectionRepo
-                .findAllByPublishTimeGreaterThanAndPublishTimeGreaterThanEqual(startTime, endTime);
+                .findAllByPublishTimeGreaterThanAndPublishTimeLessThanEqual(startTime, endTime);
         if (!Collections.isEmpty(announcingList)) {
             for (Collection collection : announcingList) {
-                if (collection.getPublishTime().isAfter(startTime) && collection.getPublishTime().isAfter(endTime)) {
-                    int i = collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.ANNOUNCING);
-                    System.out.println("影响的行数为: " + i);
+                if (collection.getPublishTime().isAfter(startTime)) {
+                    collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.ANNOUNCING);
                 }
             }
         }
-        //购买时间
         List<Collection> onSaleList = collectionRepo
-                .findAllByPurchaseTimeGreaterThanAndPurchaseTimeGreaterThanEqual(startTime, endTime);
+                .findAllByPurchaseTimeGreaterThanAndPurchaseTimeLessThanEqual(startTime, endTime);
         if (!Collections.isEmpty(onSaleList)) {
             for (Collection collection : onSaleList) {
-                if (collection.getPurchaseTime().isAfter(startTime) && collection.getPurchaseTime().isAfter(endTime)) {
-                    int i = collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.ON_SALE);
-                    System.out.println("影响的行数为: " + i);
+                if (collection.getPurchaseTime().isAfter(startTime)) {
+                    collectionRepo.updateSubscribeStatus(collection.getId(), SubscribeStatus.ON_SALE);
                 }
             }
         }

+ 39 - 39
src/main/vue/src/views/CollectionEdit.vue

@@ -181,14 +181,14 @@
                     </el-form-item>
 
                     <div class="inline-wrapper">
-                        <el-form-item prop="startTime" label="定时预约发布">
-                            <el-radio v-model="formData.scheduleSale" :label="true">是</el-radio>
-                            <el-radio v-model="formData.scheduleSale" :label="false">否</el-radio>
+                        <el-form-item prop="startTime" label="是否开启预约">
+                            <el-radio v-model="formData.hasSubscribe" :label="true">是</el-radio>
+                            <el-radio v-model="formData.hasSubscribe" :label="false">否</el-radio>
                         </el-form-item>
                         <el-form-item
                             prop="startTime"
                             label="预约开始时间"
-                            v-if="formData.scheduleSale"
+                            v-if="formData.hasSubscribe"
                             style="margin-left: 22px"
                         >
                             <el-date-picker
@@ -201,7 +201,7 @@
                         <el-form-item
                             prop="endTime"
                             label="预约结束时间"
-                            v-if="formData.scheduleSale"
+                            v-if="formData.hasSubscribe"
                             style="margin-left: 22px"
                         >
                             <el-date-picker
@@ -213,21 +213,21 @@
                         </el-form-item>
                         <el-form-item
                             prop="publishTime"
-                            label="购买资格公布时间"
-                            v-if="formData.scheduleSale"
+                            label="资格公布时间"
+                            v-if="formData.hasSubscribe"
                             style="margin-left: 22px"
                         >
                             <el-date-picker
                                 v-model="formData.publishTime"
                                 type="datetime"
                                 value-format="yyyy-MM-dd HH:mm:ss"
-                                placeholder="购买资格公布时间"
+                                placeholder="资格公布时间"
                             ></el-date-picker>
                         </el-form-item>
                         <el-form-item
                             prop="purchaseTime"
                             label="购买时间"
-                            v-if="formData.scheduleSale"
+                            v-if="formData.hasSubscribe"
                             style="margin-left: 22px"
                         >
                             <el-date-picker
@@ -243,7 +243,7 @@
                         prop="salable"
                         label="可售"
                         v-if="
-                            formData.onShelf === true || (formData.scanCode === true && formData.scheduleSale === false)
+                            formData.onShelf === true || (formData.scanCode === true && formData.hasSubscribe === false)
                         "
                     >
                         <el-radio v-model="formData.salable" :label="true">是</el-radio>
@@ -283,32 +283,32 @@
                     </el-form-item>
                     <el-form-item prop="couponPayment" label="支付方式">
                         <el-radio-group v-model="formData.couponPayment">
-                            <el-radio :label="true">兑换券</el-radio>
+<!--                            <el-radio :label="true">兑换券</el-radio>-->
                             <el-radio :label="false">支付宝/微信</el-radio>
                         </el-radio-group>
                     </el-form-item>
-                    <div class="inline-wrapper">
-                        <el-form-item prop="assignment" label="拉新任务指标">
-                            <el-input-number
-                                type="number"
-                                :min="0"
-                                :step="1"
-                                :max="5"
-                                v-model="formData.assignment"
-                            ></el-input-number>
-                            <div class="tip">0表示无拉新任务限制</div>
-                        </el-form-item>
-                        <el-form-item prop="totalQuota" label="白名单额度" v-if="formData.assignment > 0">
-                            <el-input-number
-                                type="number"
-                                :min="0"
-                                :step="1"
-                                v-model="formData.totalQuota"
-                                :disabled="!editQuota"
-                            ></el-input-number>
-                            <div class="tip">多少人拉新可获得积分</div>
-                        </el-form-item>
-                    </div>
+<!--                    <div class="inline-wrapper">-->
+<!--                        <el-form-item prop="assignment" label="拉新任务指标">-->
+<!--                            <el-input-number-->
+<!--                                type="number"-->
+<!--                                :min="0"-->
+<!--                                :step="1"-->
+<!--                                :max="5"-->
+<!--                                v-model="formData.assignment"-->
+<!--                            ></el-input-number>-->
+<!--                            <div class="tip">0表示无拉新任务限制</div>-->
+<!--                        </el-form-item>-->
+<!--                        <el-form-item prop="totalQuota" label="白名单额度" v-if="formData.assignment > 0">-->
+<!--                            <el-input-number-->
+<!--                                type="number"-->
+<!--                                :min="0"-->
+<!--                                :step="1"-->
+<!--                                v-model="formData.totalQuota"-->
+<!--                                :disabled="!editQuota"-->
+<!--                            ></el-input-number>-->
+<!--                            <div class="tip">多少人拉新可获得积分</div>-->
+<!--                        </el-form-item>-->
+<!--                    </div>-->
                     <el-form-item label="藏品类别">
                         <el-input v-model="formData.collectionCategory" style="width: 200px"></el-input>
                     </el-form-item>
@@ -464,7 +464,7 @@ export default {
                 type: 'DEFAULT',
                 source: 'OFFICIAL',
                 pic: [],
-                scheduleSale: true,
+                hasSubscribe: true,
                 sort: 0,
                 privileges: [],
                 maxCount: 0,
@@ -605,7 +605,7 @@ export default {
                 startTime: [
                     {
                         validator: (rule, value, callback) => {
-                            if (this.formData.scheduleSale) {
+                            if (this.formData.hasSubscribe) {
                                 if (!value) {
                                     callback(new Error('请填写预约发布时间'));
                                 } else if (isBefore(parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()), new Date())) {
@@ -623,7 +623,7 @@ export default {
                 endTime: [
                     {
                         validator: (rule, value, callback) => {
-                            if (this.formData.scheduleSale) {
+                            if (this.formData.hasSubscribe) {
                                 if (!value) {
                                     callback(new Error('请填写预约结束时间'));
                                 } else if (isBefore(parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()), new Date())) {
@@ -641,7 +641,7 @@ export default {
                 publishTime: [
                     {
                         validator: (rule, value, callback) => {
-                            if (this.formData.scheduleSale) {
+                            if (this.formData.hasSubscribe) {
                                 if (!value) {
                                     callback(new Error('请填写资格公布时间'));
                                 } else if (isBefore(parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()), new Date())) {
@@ -659,7 +659,7 @@ export default {
                 purchaseTime: [
                     {
                         validator: (rule, value, callback) => {
-                            if (this.formData.scheduleSale) {
+                            if (this.formData.hasSubscribe) {
                                 if (!value) {
                                     callback(new Error('请填写购买时间'));
                                 } else if (isBefore(parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()), new Date())) {
@@ -682,7 +682,7 @@ export default {
                                     callback(new Error('请填写销售时间'));
                                 } else if (isBefore(parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()), new Date())) {
                                     callback(new Error('销售时间不能小于当前时间'));
-                                } else if (this.formData.scheduleSale) {
+                                } else if (this.formData.hasSubscribe) {
                                     if (
                                         isBefore(
                                             parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()),