|
|
@@ -323,6 +323,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final OrderDonPosterRelateMapper orderDonPosterRelateMapper;
|
|
|
|
|
|
+ private final OrderDonUpgradeRenewRecordMapper orderDonUpgradeRenewRecordMapper;
|
|
|
+
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
@@ -1076,14 +1078,26 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
//记录订单ip关联
|
|
|
recordOrderDonLocationRelate(orderDon.getId(), payRequest.getIp());
|
|
|
//GPT续费升级 目前升级套餐续费
|
|
|
- if (payRequest.getPackageId() != null && payRequest.getPackageId() != 0 && orderDon.getGoodsId() == 18) {
|
|
|
+ if (payRequest.getPackageId() != null && payRequest.getPackageId() != 0 && orderDon.getGoodsId() == 18 && sku.getIsMirror()) {
|
|
|
//记录续费升级订单 目前升级规格续费
|
|
|
RenewUpgradePackage renewUpgradePackage = renewUpgradePackageMapper.selectById(payRequest.getPackageId());
|
|
|
- if (renewUpgradePackage != null) {
|
|
|
+ //是续费升级的规格
|
|
|
+ if (renewUpgradePackage != null && renewUpgradePackage.getSkuId().intValue() == orderDon.getSkuId().intValue()) {
|
|
|
//无优惠折扣 但订单可使用优惠码
|
|
|
renewUpgradePackage.setDiscount(BigDecimal.ONE);
|
|
|
recordRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
|
|
|
}
|
|
|
+ if (renewUpgradePackage == null) {
|
|
|
+ UpgradeOrderDon upgradeOrderDon = upgradeOrderDonMapper.selectOne(Wrappers.lambdaQuery(UpgradeOrderDon.class)
|
|
|
+ .eq(UpgradeOrderDon::getRelationId, orderDon.getRelationId())
|
|
|
+ .eq(UpgradeOrderDon::getPackageId, payRequest.getPackageId())
|
|
|
+ .in(UpgradeOrderDon::getUserId, userIdList)
|
|
|
+ .orderByDesc(UpgradeOrderDon::getId)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (upgradeOrderDon != null) {
|
|
|
+ recordUpgradeRenewOrderDon(orderDon, upgradeOrderDon.getPackageId(), groupsTrips);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return orderDon;
|
|
|
}
|
|
|
@@ -1543,6 +1557,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
} catch (Exception e) {
|
|
|
}
|
|
|
}
|
|
|
+ //gpt镜像续费订单
|
|
|
+ handleGptMirrorRenewOrder(order, sku);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -3845,6 +3861,18 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
orderDonRenewRecordMapper.insert(orderDonRenewRecord);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 记录套餐升级 续费订单
|
|
|
+ */
|
|
|
+ private void recordUpgradeRenewOrderDon(OrderDon orderDon, Long packageId, GroupsTrips groupsTrips) {
|
|
|
+ OrderDonUpgradeRenewRecord orderDonUpgradeRenewRecord = new OrderDonUpgradeRenewRecord();
|
|
|
+ orderDonUpgradeRenewRecord.setOrderId(orderDon.getId());
|
|
|
+ orderDonUpgradeRenewRecord.setUserId(orderDon.getUserId());
|
|
|
+ orderDonUpgradeRenewRecord.setPackageId(packageId);
|
|
|
+ orderDonUpgradeRenewRecord.setOriSkuId(groupsTrips.getSkuId());
|
|
|
+ orderDonUpgradeRenewRecordMapper.insert(orderDonUpgradeRenewRecord);
|
|
|
+ }
|
|
|
+
|
|
|
//镜像续费升级
|
|
|
private void handleMirrorRenew(GoodsDonSku sku, OrderDon order, GroupsTrips groupsTrips, Long relationId, Date newDate) {
|
|
|
if (sku.getIsMirror() && order.getOrderType() == 2) {
|
|
|
@@ -3884,4 +3912,45 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
orderDonPosterRelateMapper.insert(orderDonPosterRelate);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * gpt镜像续费订单
|
|
|
+ */
|
|
|
+ private void handleGptMirrorRenewOrder(OrderDon order, GoodsDonSku sku) {
|
|
|
+ //GPT镜像续费 升级后的规格
|
|
|
+ if (order.getGoodsId() == 18 && order.getOrderType() == 2 && sku.getIsMirror()) {
|
|
|
+ OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
|
+ .eq(OrderDonRenewRecord::getOrderId, order.getId())
|
|
|
+ .last("limit 1"));
|
|
|
+ OrderDonUpgradeRenewRecord orderDonUpgradeRenewRecord = null;
|
|
|
+ if (orderDonRenewRecord == null) {
|
|
|
+ orderDonUpgradeRenewRecord = orderDonUpgradeRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonUpgradeRenewRecord.class)
|
|
|
+ .eq(OrderDonUpgradeRenewRecord::getOrderId, order.getId())
|
|
|
+ .last("limit 1"));
|
|
|
+ }
|
|
|
+ if (orderDonRenewRecord == null && orderDonUpgradeRenewRecord == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
+ .eq(ChatgptUser::getRelationId, order.getRelationId())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (chatgptUser == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (orderDonRenewRecord != null) {
|
|
|
+ Date renewExpiryTime = chatgptUser.getRenewExpiryTime();
|
|
|
+ renewExpiryTime = DateUtil.offsetMonth(renewExpiryTime, sku.getMonths());
|
|
|
+ log.info("GPT镜像续费,user续费升级过期时间:{} ---> {}", chatgptUser.getRenewExpiryTime(), renewExpiryTime);
|
|
|
+ chatgptUser.setRenewExpiryTime(renewExpiryTime);
|
|
|
+ }
|
|
|
+ if (orderDonUpgradeRenewRecord != null) {
|
|
|
+ Date clearPackageTime = chatgptUser.getClearPackageTime();
|
|
|
+ clearPackageTime = DateUtil.offsetMonth(clearPackageTime, sku.getMonths());
|
|
|
+ log.info("GPT镜像套餐升级,user套餐升级过期时间:{} ---> {}", chatgptUser.getRenewExpiryTime(), clearPackageTime);
|
|
|
+ chatgptUser.setClearPackageTime(clearPackageTime);
|
|
|
+ }
|
|
|
+ chatgptUserMapper.updateById(chatgptUser);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|