|
|
@@ -1,13 +1,18 @@
|
|
|
package com.dataeasy.server.service.manager.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
+import java.util.Set;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import com.dataeasy.server.atomic.entity.SubscriptionUserConfig;
|
|
|
import com.dataeasy.server.atomic.entity.SubscriptionUserLog;
|
|
|
@@ -16,7 +21,10 @@ import com.dataeasy.server.common.utils.Assert;
|
|
|
import com.dataeasy.server.constant.CacheNameConstant;
|
|
|
import com.dataeasy.server.constant.PaidOptionEnum;
|
|
|
import com.dataeasy.server.constant.PushOptionEnum;
|
|
|
+import com.dataeasy.server.pojo.order.SubscriptionOrderVO;
|
|
|
+import com.dataeasy.server.pojo.subscription.SubscriptionSourceQuery;
|
|
|
import com.dataeasy.server.pojo.subscription.SubscriptionUserConfigQuery;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.cache.CacheManager;
|
|
|
@@ -253,4 +261,47 @@ public class OrderManagerImpl implements IOrderManager {
|
|
|
cacheManager.getCache(CacheNameConstant.SUBSCRIPTION_USER_CONFIG_LIST).evict(subscriptionOrder.getUserId());
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SubscriptionOrderVO> queryOrder() {
|
|
|
+ List<SubscriptionOrder> subscriptionOrders = subscriptionOrderService.getByUserId(UserUtils.getCurrentUserId());
|
|
|
+ if (CollectionUtils.isEmpty(subscriptionOrders)) {
|
|
|
+ return List.of();
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<Long> subscriptionSourceIds = subscriptionOrders.stream().map(SubscriptionOrder::getSubscriptionSourceId).collect(Collectors.toSet());
|
|
|
+ SubscriptionSourceQuery subscriptionSourceQuery = new SubscriptionSourceQuery();
|
|
|
+ subscriptionSourceQuery.setIdList(subscriptionSourceIds);
|
|
|
+ List<SubscriptionSource> subscriptionSourceList = subscriptionSourceService.getByCondition(subscriptionSourceQuery);
|
|
|
+ Map<Long, SubscriptionSource> subscriptionSourceMap = subscriptionSourceList.stream().collect(Collectors.toMap(SubscriptionSource::getId, Function.identity(), (key1, key2) -> key1));
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.YYYY_MM_DD_HH_MM_SS_PATTERN);
|
|
|
+ return subscriptionOrders.stream().map(subscriptionOrder -> {
|
|
|
+ SubscriptionOrderVO subscriptionOrderVO = new SubscriptionOrderVO();
|
|
|
+ BeanUtils.copyProperties(subscriptionOrder, subscriptionOrderVO);
|
|
|
+
|
|
|
+ // 构造产品名称
|
|
|
+ SubscriptionSource subscriptionSource = subscriptionSourceMap.get(subscriptionOrder.getSubscriptionSourceId());
|
|
|
+ if (Objects.nonNull(subscriptionSource)) {
|
|
|
+ String product = String.format("%s-%s天", subscriptionSource.getTitle(), subscriptionOrder.getSubscriptionDuration());
|
|
|
+ subscriptionOrderVO.setProduct(product);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(subscriptionOrder.getCloseTime())) {
|
|
|
+ String closeTime = DateUtils.YYYY_MM_DD_HH_MM_SS_FORMATTER.format(subscriptionOrder.getCloseTime());
|
|
|
+ subscriptionOrderVO.setCloseTime(closeTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(subscriptionOrder.getCreationTime())) {
|
|
|
+ String creationTime = sdf.format(subscriptionOrder.getCreationTime());
|
|
|
+ subscriptionOrderVO.setCreationTime(creationTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(subscriptionOrder.getPaymentStatus())) {
|
|
|
+ subscriptionOrderVO.setPaymentStatus(subscriptionOrder.getPaymentStatus().getName());
|
|
|
+ }
|
|
|
+
|
|
|
+ return subscriptionOrderVO;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|