|
@@ -5,9 +5,8 @@ import cn.kdan.cloud.pdf.office.api.payment.constant.SubscriptionConstant;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.dto.ChargebackOrderDTO;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.dto.CreatSubscriptionDTO;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.dto.CreatSubscriptionManualDTO;
|
|
|
-import cn.kdan.cloud.pdf.office.api.payment.vo.OrdersVO;
|
|
|
-import cn.kdan.cloud.pdf.office.api.payment.vo.SubscriptionSchemeVO;
|
|
|
-import cn.kdan.cloud.pdf.office.api.payment.vo.SubscriptionsVO;
|
|
|
+import cn.kdan.cloud.pdf.office.api.payment.vo.*;
|
|
|
+import cn.kdan.cloud.pdf.office.api.product.enums.PlatformEnum;
|
|
|
import cn.kdan.cloud.pdf.office.api.product.feign.ProductApi;
|
|
|
import cn.kdan.cloud.pdf.office.api.product.vo.ProductVO;
|
|
|
import cn.kdan.cloud.pdf.office.common.utils.MyDateUtils;
|
|
@@ -30,6 +29,7 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -84,8 +84,13 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public SubscriptionsVO getSubscriptions(String userId, String appId) {
|
|
|
- return this.baseMapper.selectNewestSubscription(userId, appId);
|
|
|
+ public SubscriptionsVO getSubscriptions(String userId, PlatformEnum platform) {
|
|
|
+ return this.baseMapper.selectNewestSubscription(userId, platform.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SubscriptionsVO getSubscriptionsByProductId(String userId, String productId) {
|
|
|
+ return this.baseMapper.selectNewestSubscriptionByProductId(userId, productId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -122,25 +127,41 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public SubscriptionSchemeVO getSubscriptionSchemeInfo(String userId, String appId) {
|
|
|
+ public SubscriptionSchemeVO getSubscriptionSchemeInfo(String userId, PlatformEnum platformEnum) {
|
|
|
// 获取最新订阅信息
|
|
|
- SubscriptionsVO subscriptions = this.getSubscriptions(userId, appId);
|
|
|
+ SubscriptionsVO subscriptions = this.getSubscriptions(userId, platformEnum);
|
|
|
+ // 获取产品信息
|
|
|
+ ProductVO productVO = productApi.getProduct(subscriptions.getProductId()).getResult();
|
|
|
// 获取该订阅关联的所有订单
|
|
|
String orderId = subscriptions.getOrderId();
|
|
|
String thirdTradeNo = ordersService.getOrderById(orderId).getThirdTradeNo();
|
|
|
List<OrdersVO> ordersVOS = ordersService.getOrderByTradeNo(thirdTradeNo);
|
|
|
SubscriptionSchemeVO subscriptionSchemeVO = new SubscriptionSchemeVO();
|
|
|
- subscriptionSchemeVO.setSubscriptionsVO(subscriptions);
|
|
|
- subscriptionSchemeVO.setOrdersVOS(ordersVOS);
|
|
|
+ SubscriptionInfoVO build = SubscriptionInfoVO.builder()
|
|
|
+ .price(subscriptions.getPrice())
|
|
|
+ .endDate(MyDateUtils.dateToLocalDateTime(subscriptions.getEndDate()))
|
|
|
+ .paymentMethod(ordersVOS.get(0).getPayment())
|
|
|
+ .productName(productVO.getProductName())
|
|
|
+ .build();
|
|
|
+ List<OrderInfoVO> ordersInfo = new ArrayList<>();
|
|
|
+ ordersVOS.forEach(ordersVO -> {
|
|
|
+ ordersInfo.add(OrderInfoVO.builder()
|
|
|
+ .date(MyDateUtils.dateToLocalDateTime(ordersVO.getCreatedAt()))
|
|
|
+ .scheme(productVO.getForPeriod())
|
|
|
+ .price(ordersVO.getPrice())
|
|
|
+ .platform(productVO.getPlatform())
|
|
|
+ .status(ordersVO.getStatus())
|
|
|
+ .productName(productVO.getProductName())
|
|
|
+ .build());
|
|
|
+ });
|
|
|
+ subscriptionSchemeVO.setSubscriptionInfo(build);
|
|
|
+ subscriptionSchemeVO.setOrdersInfo(ordersInfo);
|
|
|
return subscriptionSchemeVO;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public SubscriptionsVO getSubscriptionBySubscriptionId(String subscriptionId) {
|
|
|
- Subscription subscription = this.baseMapper.selectById(subscriptionId);
|
|
|
- SubscriptionsVO subscriptionsVO = new SubscriptionsVO();
|
|
|
- BeanUtils.copyProperties(subscription,subscriptionsVO);
|
|
|
- return subscriptionsVO;
|
|
|
+ return this.baseMapper.selectBySubscriptionId(subscriptionId);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -169,7 +190,7 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
*/
|
|
|
private LocalDateTime getOriginalTime(CreatSubscriptionDTO subscriptionInfo, LocalDateTime now) {
|
|
|
// 通过用户id和产品id获取最新订阅信息
|
|
|
- SubscriptionsVO newestSubscriptions = getSubscriptions(subscriptionInfo.getUserId(), subscriptionInfo.getAppId());
|
|
|
+ SubscriptionsVO newestSubscriptions = getSubscriptionsByProductId(subscriptionInfo.getUserId(), subscriptionInfo.getProductId());
|
|
|
LocalDateTime originalTime;
|
|
|
// 没有订阅数据
|
|
|
if (ObjectUtils.isEmpty(newestSubscriptions)) {
|