|
@@ -1,6 +1,5 @@
|
|
|
package cn.kdan.cloud.pdf.office.payment.service.impl;
|
|
|
|
|
|
-import cn.kdan.cloud.pdf.office.api.account.dto.UpdateUserForPaySuccessDTO;
|
|
|
import cn.kdan.cloud.pdf.office.api.account.feign.UserApi;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.constant.SubscriptionConstant;
|
|
|
import cn.kdan.cloud.pdf.office.api.payment.dto.ChargebackOrderDTO;
|
|
@@ -11,7 +10,6 @@ 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.product.feign.ProductApi;
|
|
|
import cn.kdan.cloud.pdf.office.api.product.vo.ProductVO;
|
|
|
-import cn.kdan.cloud.pdf.office.common.enums.status.UserStatusEnum;
|
|
|
import cn.kdan.cloud.pdf.office.common.utils.MyDateUtils;
|
|
|
import cn.kdan.cloud.pdf.office.common.vo.UserInfoVO;
|
|
|
import cn.kdan.cloud.pdf.office.payment.client.PaddleClient;
|
|
@@ -20,7 +18,6 @@ import cn.kdan.cloud.pdf.office.payment.mapper.SubscriptionsMapper;
|
|
|
import cn.kdan.cloud.pdf.office.payment.service.OrdersService;
|
|
|
import cn.kdan.cloud.pdf.office.payment.service.SubscriptionsService;
|
|
|
import cn.kdan.cloud.pdf.office.payment.utils.SubscriptionUtil;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -76,26 +73,19 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
subscription.setUserId(subscriptionInfo.getUserId());
|
|
|
subscription.setStartDate(MyDateUtils.localDateTimeToDate(now));
|
|
|
subscription.setEndDate(MyDateUtils.localDateTimeToDate(endTime));
|
|
|
- subscription.setThirdSubscriptionId(subscriptionInfo.getSubscriptionId());
|
|
|
+ subscription.setThirdSubscriptionId(subscriptionInfo.getThirdSubscriptionId());
|
|
|
subscription.setOrderId(subscriptionInfo.getOrderId());
|
|
|
+ subscription.setAppId(subscriptionInfo.getAppId());
|
|
|
this.baseMapper.insert(subscription);
|
|
|
String subscriptionId = subscription.getId();
|
|
|
// 发送消息
|
|
|
- SubscriptionUtil.subscriptionExpiredSendNews(rabbitTemplate,subscriptionId,endTime);
|
|
|
+ SubscriptionUtil.subscriptionExpiredSendNews(rabbitTemplate, subscriptionId, endTime);
|
|
|
return subscriptionId;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public SubscriptionsVO getSubscriptions(String userId, String productId) {
|
|
|
- SubscriptionsVO subscriptionsVO = new SubscriptionsVO();
|
|
|
- // 可优化查询字段 添加 <.select>
|
|
|
- BeanUtils.copyProperties(this.baseMapper.selectOne(new LambdaQueryWrapper<Subscription>()
|
|
|
- .eq(Subscription::getUserId, userId)
|
|
|
- .eq(Subscription::getProductId, productId)
|
|
|
- .eq(Subscription::getStatus, SubscriptionConstant.actived)
|
|
|
- .orderByDesc(Subscription::getEndDate)
|
|
|
- .last("LIMIT 1")), subscriptionsVO);
|
|
|
- return subscriptionsVO;
|
|
|
+ public SubscriptionsVO getSubscriptions(String userId, String appId) {
|
|
|
+ return this.baseMapper.selectNewestSubscription(userId, appId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -125,16 +115,16 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
// 更新paddle的订阅信息
|
|
|
paddleClient.cancelSubscription(thirdSubscriptionId);
|
|
|
// 修改订阅状态
|
|
|
- Subscription subscriptions = new Subscription();
|
|
|
- subscriptions.setId(chargebackOrderDTO.getSubscriptionId());
|
|
|
- subscriptions.setStatus(SubscriptionConstant.refunded);
|
|
|
- this.baseMapper.updateById(subscriptions);
|
|
|
+// Subscription subscriptions = new Subscription();
|
|
|
+// subscriptions.setId(chargebackOrderDTO.getSubscriptionId());
|
|
|
+// subscriptions.setStatus(SubscriptionConstant.refunded);
|
|
|
+// this.baseMapper.updateById(subscriptions);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public SubscriptionSchemeVO getSubscriptionSchemeInfo(String userId, String productId) {
|
|
|
+ public SubscriptionSchemeVO getSubscriptionSchemeInfo(String userId, String appId) {
|
|
|
// 获取最新订阅信息
|
|
|
- SubscriptionsVO subscriptions = this.getSubscriptions(userId, productId);
|
|
|
+ SubscriptionsVO subscriptions = this.getSubscriptions(userId, appId);
|
|
|
// 获取该订阅关联的所有订单
|
|
|
String orderId = subscriptions.getOrderId();
|
|
|
String thirdTradeNo = ordersService.getOrderById(orderId).getThirdTradeNo();
|
|
@@ -145,6 +135,14 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
return subscriptionSchemeVO;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public SubscriptionsVO getSubscriptionBySubscriptionId(String subscriptionId) {
|
|
|
+ Subscription subscription = this.baseMapper.selectById(subscriptionId);
|
|
|
+ SubscriptionsVO subscriptionsVO = new SubscriptionsVO();
|
|
|
+ BeanUtils.copyProperties(subscription,subscriptionsVO);
|
|
|
+ return subscriptionsVO;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 获取订阅结束时间
|
|
@@ -154,7 +152,7 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
* @return 结束时间
|
|
|
*/
|
|
|
private LocalDateTime getEndTime(CreatSubscriptionDTO subscriptionInfo, LocalDateTime originalTime) {
|
|
|
- if (!ObjectUtils.isEmpty(subscriptionInfo.getTermOfValidity())){
|
|
|
+ if (!ObjectUtils.isEmpty(subscriptionInfo.getTermOfValidity())) {
|
|
|
return MyDateUtils.TimeAddition(originalTime, subscriptionInfo.getTermOfValidity());
|
|
|
}
|
|
|
ProductVO product = productApi.getProduct(subscriptionInfo.getProductId()).getResult();
|
|
@@ -171,7 +169,7 @@ public class SubscriptionsServiceImpl extends ServiceImpl<SubscriptionsMapper, S
|
|
|
*/
|
|
|
private LocalDateTime getOriginalTime(CreatSubscriptionDTO subscriptionInfo, LocalDateTime now) {
|
|
|
// 通过用户id和产品id获取最新订阅信息
|
|
|
- SubscriptionsVO newestSubscriptions = getSubscriptions(subscriptionInfo.getUserId(), subscriptionInfo.getProductId());
|
|
|
+ SubscriptionsVO newestSubscriptions = getSubscriptions(subscriptionInfo.getUserId(), subscriptionInfo.getAppId());
|
|
|
LocalDateTime originalTime;
|
|
|
// 没有订阅数据
|
|
|
if (ObjectUtils.isEmpty(newestSubscriptions)) {
|