Ver Fonte

fix GPT续费原规格

zoujiajian há 1 ano atrás
pai
commit
0fded7fb61

+ 11 - 18
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1109,35 +1109,28 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			corpInteractiveUserOrderRelationMapper.insert(corpInteractiveUserOrderRelation);
 		}
 		//GPT续费升级 目前升级套餐续费
-		if ((payRequest.getPackageId() != null || payRequest.getOriginalOrderId() != null) && orderDon.getGoodsId() == 18 && sku.getIsMirror()) {
+		if (orderDon.getGoodsId() == 18 && sku.getIsMirror()) {
 			try {
 				//记录续费升级订单 目前升级规格续费
 				ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
 						.eq(ChatgptUser::getRelationId, orderDon.getRelationId())
 						.last("limit 1"));
-				if (chatgptUser != null) {
+				if (chatgptUser != null && tripsSkuId.intValue() != renewSkuId.intValue()) {
 					//是续费升级的规格
-					if (payRequest.getOriginalOrderId() != null && chatgptUser.getRenewSkuId() != null && chatgptUser.getRenewSkuId().intValue() == orderDon.getSkuId()) {
-						OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
-								.eq(OrderDonRenewRecord::getOrderId, payRequest.getOriginalOrderId()));
+					//全部归纳到续费升级的关联订单
+					if (chatgptUser.getLimitNum() == sku.getGptLimitNum() && chatgptUser.getLimitTime() == sku.getGptLimitTime()) {
+						renewUpgradeIndependentPackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
+								.eq(RenewUpgradePackage::getSkuId, tripsSkuId)
+								.apply("JSON_CONTAINS(upgrade_sku_ids,'\"" + renewSkuId + "\"')")
+								.eq(RenewUpgradePackage::getStatus, 1)
+								.eq(RenewUpgradePackage::getDeleted, 1)
+								.last("limit 1"));
 						//无优惠折扣 但订单可使用优惠码
 						RenewUpgradePackage renewUpgradePackage = new RenewUpgradePackage();
-						renewUpgradePackage.setId(orderDonRenewRecord.getPackageId());
+						renewUpgradePackage.setId(renewUpgradeIndependentPackage.getId());
 						renewUpgradePackage.setDiscount(BigDecimal.ONE);
 						recordRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
 					}
-					if (payRequest.getPackageId() != null && chatgptUser.getPackageId() != null && chatgptUser.getPackageId().intValue() == payRequest.getPackageId().intValue()) {
-						UpgradeOrderDon upgradeOrderDon = upgradeOrderDonMapper.selectOne(Wrappers.lambdaQuery(UpgradeOrderDon.class)
-								.eq(UpgradeOrderDon::getRelationId, orderDon.getRelationId())
-								.eq(UpgradeOrderDon::getPackageId, payRequest.getPackageId())
-								.in(UpgradeOrderDon::getUserId, userIdList)
-								.eq(UpgradeOrderDon::getStatus, UpgradeOrderDon.Status.complete)
-								.orderByDesc(UpgradeOrderDon::getId)
-								.last("limit 1"));
-						if (upgradeOrderDon != null) {
-							recordUpgradeRenewOrderDon(orderDon, upgradeOrderDon.getPackageId(), groupsTrips);
-						}
-					}
 				}
 			} catch (Exception e) {
 				log.error("记录续费升级错误:{}", StringUtil.getErrorText(e));