|
|
@@ -10,10 +10,7 @@ import com.izouma.nineth.converter.LongArrayConverter;
|
|
|
import com.izouma.nineth.domain.Collection;
|
|
|
import com.izouma.nineth.domain.*;
|
|
|
import com.izouma.nineth.dto.*;
|
|
|
-import com.izouma.nineth.enums.AuthStatus;
|
|
|
-import com.izouma.nineth.enums.CollectionSource;
|
|
|
-import com.izouma.nineth.enums.CollectionType;
|
|
|
-import com.izouma.nineth.enums.OrderStatus;
|
|
|
+import com.izouma.nineth.enums.*;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
import com.izouma.nineth.repo.*;
|
|
|
import com.izouma.nineth.utils.JpaUtils;
|
|
|
@@ -81,7 +78,8 @@ public class CollectionService {
|
|
|
if (Arrays.asList(env.getActiveProfiles()).contains("dev")) {
|
|
|
return;
|
|
|
}
|
|
|
- List<Collection> collections = collectionRepo.findByScheduleSaleTrueAndOnShelfFalseAndStartTimeBeforeAndDelFalse(LocalDateTime.now());
|
|
|
+ List<Collection> collections = collectionRepo
|
|
|
+ .findByScheduleSaleTrueAndOnShelfFalseAndStartTimeBeforeAndDelFalse(LocalDateTime.now());
|
|
|
for (Collection collection : collections) {
|
|
|
onShelfTask(collection);
|
|
|
}
|
|
|
@@ -159,8 +157,10 @@ public class CollectionService {
|
|
|
record.getMaxCount(), record.getCountId(), record.isScanCode(), record.isNoSoldOut(),
|
|
|
record.getAssignment(), record.isCouponPayment(), record.getShareBg(), record.getRegisterBg(),
|
|
|
record.getVipQuota(), record.getTimeDelay(), record.getSaleTime(), record.getHoldDays(),
|
|
|
- record.getOpenQuota(), record.getShowroomBg(), record.getMaxCollection(), record.getTotalQuota(),record.getCollectionCategory(),
|
|
|
- record.getCollectionWorks(),record.getIssuer(),record.getPurchaseInstructions(),record.getEndTime(),record.getPublishTime(),record.getPurchaseTime());
|
|
|
+ record.getOpenQuota(), record.getShowroomBg(), record.getMaxCollection(), record.getTotalQuota(), record
|
|
|
+ .getCollectionCategory(),
|
|
|
+ record.getCollectionWorks(), record.getIssuer(), record.getPurchaseInstructions(), record
|
|
|
+ .getEndTime(), record.getPublishTime(), record.getPurchaseTime());
|
|
|
|
|
|
record = collectionRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
|
|
|
onShelfTask(record);
|
|
|
@@ -205,13 +205,15 @@ public class CollectionService {
|
|
|
collectionDTO.setAppointment(appointmentRepo.findFirstByBlindBoxId(collection.getId()).isPresent());
|
|
|
}
|
|
|
if (showVip && collection.getAssignment() > 0 && user.getVipPurchase() > 0) {
|
|
|
- int purchase = orderRepo.countByUserIdAndCollectionIdAndVipTrueAndStatusIn(user.getId(), collection.getId(), Arrays.asList(OrderStatus.FINISH, OrderStatus.NOT_PAID, OrderStatus.PROCESSING));
|
|
|
+ int purchase = orderRepo
|
|
|
+ .countByUserIdAndCollectionIdAndVipTrueAndStatusIn(user.getId(), collection.getId(), Arrays
|
|
|
+ .asList(OrderStatus.FINISH, OrderStatus.NOT_PAID, OrderStatus.PROCESSING));
|
|
|
collectionDTO.setVipSurplus(user.getVipPurchase() - purchase);
|
|
|
}
|
|
|
- Subscribe subscribe = subscribeRepo.findAllByCollectionIdAndUserId(collection.getId(), user.getId());
|
|
|
- if (!ObjectUtil.isEmpty(subscribe)){
|
|
|
+ Subscribe subscribe = subscribeRepo.findFirstByCollectionIdAndUserId(collection.getId(), user.getId());
|
|
|
+ if (!ObjectUtil.isEmpty(subscribe)) {
|
|
|
collectionDTO.setSubscribed(true);
|
|
|
- if (subscribe.isPurchaseQualifications()){
|
|
|
+ if (subscribe.isPurchaseQualifications()) {
|
|
|
// collectionDTO.setPurchaseQualifications(subscribe.isPurchaseQualifications());
|
|
|
collectionDTO.setPurchaseQualifications(true);
|
|
|
}
|
|
|
@@ -540,14 +542,18 @@ public class CollectionService {
|
|
|
.map(PointDTO::getId)
|
|
|
.collect(Collectors.toList());
|
|
|
log.info(dft.format(time) + "前完成任务人数:{}", collect.size());
|
|
|
- log.info("sql: update user set vip_point = 1 where id in ({})", longArrayConverter.convertToDatabaseColumn(collect));
|
|
|
+ log.info("sql: update user set vip_point = 1 where id in ({})", longArrayConverter
|
|
|
+ .convertToDatabaseColumn(collect));
|
|
|
|
|
|
- List<PointDTO> collect1 = dtos.stream().filter(dto -> time.isAfter(dto.getCreatedAt())).collect(Collectors.toList());
|
|
|
+ List<PointDTO> collect1 = dtos.stream().filter(dto -> time.isAfter(dto.getCreatedAt()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
log.info(dft.format(time) + "后完成任务人数:{}", collect1.size());
|
|
|
|
|
|
- List<Long> collect2 = dtos.stream().filter(dto -> dto.getIdentitySum() > 0).map(PointDTO::getId).collect(Collectors.toList());
|
|
|
+ List<Long> collect2 = dtos.stream().filter(dto -> dto.getIdentitySum() > 0).map(PointDTO::getId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
log.info("邀请实名认证人量:{}", collect2.size());
|
|
|
- log.info("sql: update user set vip_point = 1 where id in ({})", longArrayConverter.convertToDatabaseColumn(collect2));
|
|
|
+ log.info("sql: update user set vip_point = 1 where id in ({})", longArrayConverter
|
|
|
+ .convertToDatabaseColumn(collect2));
|
|
|
|
|
|
//只留库存数量
|
|
|
// List<PointDTO> result = dtos.stream()
|
|
|
@@ -589,4 +595,28 @@ public class CollectionService {
|
|
|
|
|
|
return dtos;
|
|
|
}
|
|
|
+
|
|
|
+ @Cacheable(value = "subscribeCollectionList", key = "#pageQuery.hashCode()")
|
|
|
+ public PageWrapper<Collection> subscribeAll(PageQuery pageQuery) {
|
|
|
+ pageQuery.getQuery().put("del", false);
|
|
|
+ Specification<Collection> specification = JpaUtils.toSpecification(pageQuery, Collection.class);
|
|
|
+ PageRequest pageRequest = JpaUtils.toPageRequest(pageQuery);
|
|
|
+ if (pageRequest.getSort().stream().noneMatch(order -> order.getProperty().equals("purchaseTime"))) {
|
|
|
+ pageRequest = PageRequest.of(pageRequest.getPageNumber(), pageQuery.getSize(),
|
|
|
+ pageRequest.getSort().and(Sort.by("purchaseTime").ascending()));
|
|
|
+ }
|
|
|
+
|
|
|
+ specification = specification.and((Specification<Collection>) (root, criteriaQuery, criteriaBuilder) -> {
|
|
|
+ List<Predicate> and = new ArrayList<>();
|
|
|
+ List<SubscribeStatus> statuses = new ArrayList<>();
|
|
|
+ statuses.add(SubscribeStatus.NOT_STARTED);
|
|
|
+ statuses.add(SubscribeStatus.ONGOING);
|
|
|
+ and.add(root.get("subscribeStatus").in(statuses));
|
|
|
+ and.add(criteriaBuilder.equal(root.get("source"), CollectionSource.OFFICIAL));
|
|
|
+ return criteriaBuilder.and(and.toArray(new Predicate[0]));
|
|
|
+ });
|
|
|
+ Page<Collection> page = collectionRepo.findAll(specification, pageRequest);
|
|
|
+ return new PageWrapper<>(page.getContent(), page.getPageable().getPageNumber(),
|
|
|
+ page.getPageable().getPageSize(), page.getTotalElements());
|
|
|
+ }
|
|
|
}
|