|
@@ -1,9 +1,7 @@
|
|
|
package com.cyksj.service.mange.impl;
|
|
package com.cyksj.service.mange.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
-import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
-import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
|
|
import com.cyksj.mapper.*;
|
|
import com.cyksj.mapper.*;
|
|
|
import com.cyksj.model.entity.*;
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.redis.RedisService;
|
|
import com.cyksj.redis.RedisService;
|
|
@@ -70,7 +68,6 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void handleRenewUpgradeOrders(OrderDon orderDon) {
|
|
public void handleRenewUpgradeOrders(OrderDon orderDon) {
|
|
|
- Long skuId = orderDon.getSkuId();
|
|
|
|
|
Long orderId = orderDon.getId();
|
|
Long orderId = orderDon.getId();
|
|
|
OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
|
.eq(OrderDonRenewRecord::getOrderId, orderId)
|
|
.eq(OrderDonRenewRecord::getOrderId, orderId)
|
|
@@ -83,62 +80,58 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
|
|
|
Long presentRenewSkuId = chatgptUser.getRenewSkuId();
|
|
Long presentRenewSkuId = chatgptUser.getRenewSkuId();
|
|
|
//存在不同升级套餐
|
|
//存在不同升级套餐
|
|
|
GoodsDonSku presentRenewSku = skuMapper.selectById(presentRenewSkuId);
|
|
GoodsDonSku presentRenewSku = skuMapper.selectById(presentRenewSkuId);
|
|
|
- if (!ObjectUtil.equal(presentRenewSkuId, skuId)) {
|
|
|
|
|
- throw BusinessRuntimeException.getInstance("请先退掉用户目前续费升级的{}规格", presentRenewSku.getSpecVal());
|
|
|
|
|
- } else {
|
|
|
|
|
- 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());
|
|
|
|
|
- }
|
|
|
|
|
- GoodsDonSku upgradeOrderDonSku = null;
|
|
|
|
|
- Date renewExpiryTime = null;
|
|
|
|
|
- //是否存在套餐升级包
|
|
|
|
|
- Long packageId = chatgptUser.getPackageId();
|
|
|
|
|
- if (packageId != null && packageId != 0) {
|
|
|
|
|
- UpgradeOrderDon upgradeOrderDon = upgradeOrderDonMapper.selectOne(Wrappers.lambdaQuery(UpgradeOrderDon.class)
|
|
|
|
|
- .eq(UpgradeOrderDon::getRelationId, chatgptUser.getRelationId())
|
|
|
|
|
- .in(UpgradeOrderDon::getUserId, userIdList)
|
|
|
|
|
- .eq(UpgradeOrderDon::getPackageId, chatgptUser.getPackageId())
|
|
|
|
|
- .orderByDesc(UpgradeOrderDon::getId)
|
|
|
|
|
- .last("limit 1"));
|
|
|
|
|
- Long upgradeOrderDonSkuId = upgradeOrderDon.getSkuId();
|
|
|
|
|
- upgradeOrderDonSku = skuMapper.selectById(upgradeOrderDonSkuId);
|
|
|
|
|
- }
|
|
|
|
|
- //套餐升级
|
|
|
|
|
|
|
+ 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());
|
|
|
|
|
+ }
|
|
|
|
|
+ GoodsDonSku upgradeOrderDonSku = null;
|
|
|
|
|
+ Date renewExpiryTime = null;
|
|
|
|
|
+ //是否存在套餐升级包
|
|
|
|
|
+ Long packageId = chatgptUser.getPackageId();
|
|
|
|
|
+ if (packageId != null && packageId != 0) {
|
|
|
|
|
+ UpgradeOrderDon upgradeOrderDon = upgradeOrderDonMapper.selectOne(Wrappers.lambdaQuery(UpgradeOrderDon.class)
|
|
|
|
|
+ .eq(UpgradeOrderDon::getRelationId, chatgptUser.getRelationId())
|
|
|
|
|
+ .in(UpgradeOrderDon::getUserId, userIdList)
|
|
|
|
|
+ .eq(UpgradeOrderDon::getPackageId, chatgptUser.getPackageId())
|
|
|
|
|
+ .orderByDesc(UpgradeOrderDon::getId)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ Long upgradeOrderDonSkuId = upgradeOrderDon.getSkuId();
|
|
|
|
|
+ upgradeOrderDonSku = skuMapper.selectById(upgradeOrderDonSkuId);
|
|
|
|
|
+ }
|
|
|
|
|
+ //套餐升级
|
|
|
|
|
+ if (upgradeOrderDonSku != null) {
|
|
|
|
|
+ log.info("续费升级订单退款,relation_id:{}存在套餐升级", orderDon.getUserId());
|
|
|
|
|
+ finalSku = upgradeOrderDonSku;
|
|
|
|
|
+ }
|
|
|
|
|
+ chatgptUser.setRenewSkuId(null);
|
|
|
|
|
+ chatgptUser.setRenewOrderId(null);
|
|
|
|
|
+ //续费升级
|
|
|
|
|
+ if (otherRenewSku != null) {
|
|
|
|
|
+ finalSku = otherRenewSku;
|
|
|
|
|
+ log.info("续费升级订单退款,relation_id:{}存在次级续费升级订单", orderDon.getUserId());
|
|
|
if (upgradeOrderDonSku != null) {
|
|
if (upgradeOrderDonSku != null) {
|
|
|
- log.info("续费升级订单退款,relation_id:{}存在套餐升级", orderDon.getUserId());
|
|
|
|
|
- finalSku = upgradeOrderDonSku;
|
|
|
|
|
- }
|
|
|
|
|
- chatgptUser.setRenewSkuId(null);
|
|
|
|
|
- chatgptUser.setRenewOrderId(null);
|
|
|
|
|
- //续费升级
|
|
|
|
|
- if (otherRenewSku != null) {
|
|
|
|
|
- finalSku = otherRenewSku;
|
|
|
|
|
- log.info("续费升级订单退款,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());
|
|
|
|
|
- finalSku = upgradeOrderDonSku;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ //套餐升级高于其他续费升级
|
|
|
|
|
+ if (upgradeOrderDonSku.getMonths() >= otherRenewSku.getMonths() && upgradeOrderDonSku.getGptLimitNum() >= otherRenewSku.getGptLimitNum() && upgradeOrderDonSku.getGptLimitTime() <= otherRenewSku.getGptLimitTime()) {
|
|
|
|
|
+ log.info("续费升级订单退款,relation_id:{}存在更高级套餐升级", orderDon.getUserId());
|
|
|
|
|
+ finalSku = upgradeOrderDonSku;
|
|
|
}
|
|
}
|
|
|
- Date payTime = Optional.ofNullable(otherRenewOrderDon.getPayTime()).orElse(otherRenewOrderDon.getCreatedTime());
|
|
|
|
|
- renewExpiryTime = DateUtil.offsetMonth(payTime, otherRenewSku.getMonths());
|
|
|
|
|
- chatgptUser.setRenewOrderId(otherRenewOrderDon.getId());
|
|
|
|
|
- chatgptUser.setRenewSkuId(otherRenewOrderDon.getSkuId());
|
|
|
|
|
}
|
|
}
|
|
|
- //还原镜像user
|
|
|
|
|
- chatgptUser.setLimitTime(finalSku.getGptLimitTime());
|
|
|
|
|
- chatgptUser.setLimitNum(finalSku.getGptLimitNum());
|
|
|
|
|
- chatgptUser.setRenewExpiryTime(renewExpiryTime);
|
|
|
|
|
- chatgptUserMapper.updateById(chatgptUser);
|
|
|
|
|
- log.info("还原镜像gptuser套餐成功");
|
|
|
|
|
|
|
+ Date payTime = Optional.ofNullable(otherRenewOrderDon.getPayTime()).orElse(otherRenewOrderDon.getCreatedTime());
|
|
|
|
|
+ renewExpiryTime = DateUtil.offsetMonth(payTime, otherRenewSku.getMonths());
|
|
|
|
|
+ chatgptUser.setRenewOrderId(otherRenewOrderDon.getId());
|
|
|
|
|
+ chatgptUser.setRenewSkuId(otherRenewOrderDon.getSkuId());
|
|
|
}
|
|
}
|
|
|
|
|
+ //还原镜像user
|
|
|
|
|
+ chatgptUser.setLimitTime(finalSku.getGptLimitTime());
|
|
|
|
|
+ chatgptUser.setLimitNum(finalSku.getGptLimitNum());
|
|
|
|
|
+ chatgptUser.setRenewExpiryTime(renewExpiryTime);
|
|
|
|
|
+ chatgptUserMapper.updateById(chatgptUser);
|
|
|
|
|
+ log.info("还原镜像gptuser套餐成功");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|