|
|
@@ -99,8 +99,53 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
|
|
|
OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
|
.eq(OrderDonRenewRecord::getOrderId, orderId)
|
|
|
.last("limit 1"));
|
|
|
+ if (orderDonRenewRecord == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
List<Long> userIdList = userBindRelationService.getRelationUserIdList(orderDon.getUserId(), null);
|
|
|
- if (orderDonRenewRecord != null) {
|
|
|
+ //Claude pro
|
|
|
+ if (orderDon.getGoodsId() == 75) {
|
|
|
+ ClaudeUser claudeUser = claudeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeUser.class)
|
|
|
+ .eq(ClaudeUser::getRelationId, orderDon.getRelationId())
|
|
|
+ .last("limit 1"));
|
|
|
+ Long presentRenewSkuId = claudeUser.getRenewSkuId();
|
|
|
+ if (presentRenewSkuId == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ GroupsRelation relation = groupsRelationMapper.selectById(orderDon.getRelationId());
|
|
|
+ GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
|
|
|
+ GoodsDonSku finalSku = skuMapper.selectById(groupsTrips.getSkuId());
|
|
|
+ //是否存在其他续费升级
|
|
|
+ OrderDon otherRenewOrderDon = orderDonRenewRecordMapper.getOtherRenewSku(orderDon.getId(), relation.getId(), userIdList);
|
|
|
+ GoodsDonSku otherRenewSku = null;
|
|
|
+ if (otherRenewOrderDon != null) {
|
|
|
+ otherRenewSku = skuMapper.selectById(otherRenewOrderDon.getSkuId());
|
|
|
+ }
|
|
|
+ Date renewExpiryTime = null;
|
|
|
+ claudeUser.setRenewSkuId(null);
|
|
|
+ claudeUser.setRenewOrderId(null);
|
|
|
+ //续费升级
|
|
|
+ if (otherRenewSku != null) {
|
|
|
+ finalSku = otherRenewSku;
|
|
|
+ log.info("claude pro 续费升级订单退款,relation_id:{}存在次级续费升级订单", orderDon.getUserId());
|
|
|
+ Date payTime = Optional.ofNullable(otherRenewOrderDon.getPayTime()).orElse(otherRenewOrderDon.getCreatedTime());
|
|
|
+ renewExpiryTime = DateUtil.offsetMonth(payTime, otherRenewSku.getMonths());
|
|
|
+ claudeUser.setRenewOrderId(otherRenewOrderDon.getId());
|
|
|
+ claudeUser.setRenewSkuId(otherRenewOrderDon.getSkuId());
|
|
|
+ }
|
|
|
+ //还原镜像user
|
|
|
+ claudeUser.setLimitTime(finalSku.getGptLimitTime());
|
|
|
+ claudeUser.setLimitNum(finalSku.getGptLimitNum());
|
|
|
+ claudeUser.setRenewExpiryTime(renewExpiryTime);
|
|
|
+ claudeUserMapper.updateById(claudeUser);
|
|
|
+ log.info("还原镜像claude user套餐成功");
|
|
|
+ //将续费有效置为过期
|
|
|
+ orderDonRenewRecord.setIsValid(true);
|
|
|
+ orderDonRenewRecordMapper.updateById(orderDonRenewRecord);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (orderDon.getGoodsId() == 18) {
|
|
|
ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
.eq(ChatgptUser::getRelationId, orderDon.getRelationId())
|
|
|
.last("limit 1"));
|
|
|
@@ -128,7 +173,7 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
|
|
|
}
|
|
|
//套餐升级
|
|
|
if (upgradeOrderDonSku != null) {
|
|
|
- log.info("续费升级订单退款,relation_id:{}存在套餐升级", orderDon.getUserId());
|
|
|
+ log.info("GPT续费升级订单退款,relation_id:{}存在套餐升级", orderDon.getUserId());
|
|
|
finalSku = upgradeOrderDonSku;
|
|
|
}
|
|
|
chatgptUser.setRenewSkuId(null);
|
|
|
@@ -136,11 +181,11 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
|
|
|
//续费升级
|
|
|
if (otherRenewSku != null) {
|
|
|
finalSku = otherRenewSku;
|
|
|
- log.info("续费升级订单退款,relation_id:{}存在次级续费升级订单", orderDon.getUserId());
|
|
|
+ log.info("GPT续费升级订单退款,relation_id:{}存在次级续费升级订单", orderDon.getUserId());
|
|
|
if (upgradeOrderDonSku != null) {
|
|
|
//套餐升级高于其他续费升级
|
|
|
if (upgradeOrderDonSku.getMonths() >= otherRenewSku.getMonths() && upgradeOrderDonSku.getGptLimitNum() >= otherRenewSku.getGptLimitNum() && upgradeOrderDonSku.getGptLimitTime() <= otherRenewSku.getGptLimitTime()) {
|
|
|
- log.info("续费升级订单退款,relation_id:{}存在更高级套餐升级", orderDon.getUserId());
|
|
|
+ log.info("GPT续费升级订单退款,relation_id:{}存在更高级套餐升级", orderDon.getUserId());
|
|
|
finalSku = upgradeOrderDonSku;
|
|
|
}
|
|
|
}
|
|
|
@@ -159,11 +204,11 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
|
|
|
//将续费有效置为过期
|
|
|
orderDonRenewRecord.setIsValid(true);
|
|
|
orderDonRenewRecordMapper.updateById(orderDonRenewRecord);
|
|
|
- }
|
|
|
|
|
|
- if (orderDonRenewRecord == null && orderDon.getOrderType() == 2) {
|
|
|
- //退款续费 套餐升级订单
|
|
|
- handleGptMirrorRenewOrderRefund(orderDon, sku);
|
|
|
+ if (orderDon.getOrderType() == 2) {
|
|
|
+ //退款续费 套餐升级订单
|
|
|
+ handleGptMirrorRenewOrderRefund(orderDon, sku);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|