zoujiajian 1 yıl önce
ebeveyn
işleme
dc4bd81d1e

+ 8 - 5
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1032,20 +1032,19 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		//扣除使用优惠券、余额的订单金额
 		deductOrderMoney(orderDon, couponUser, payRequest.getBalance(), user, sku.getPrice(), goodsDon.getType(), payRequest.getGcCash(), payRequest.getGcpIds(), false, null);
 		//独立规格续费升级
+		RenewUpgradePackage renewUpgradeIndependentPackage = null;
 		if ((payRequest.getPackageId() != null || payRequest.getOriginalOrderId() != null) && sku.getNum() == 1) {
-			RenewUpgradePackage renewUpgradePackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
+			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"));
-			if (renewUpgradePackage == null) {
+			if (renewUpgradeIndependentPackage == null) {
 				throw BusinessRuntimeException.getInstance("续费规格不存在");
 			}
-			BigDecimal discount = renewUpgradePackage.getDiscount();
+			BigDecimal discount = renewUpgradeIndependentPackage.getDiscount();
 			orderDon.setMoney(sku.getPrice().multiply(discount));
-			//独立规格续费订单记录
-			recordIndependentRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
 		}
 		this.saveOrUpdate(orderDon);
 		if (orderDon.getStatus() == OrderDon.Status.noPayment) {
@@ -1109,6 +1108,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 		//记录订单ip关联
 		recordOrderDonLocationRelate(orderDon.getId(), payRequest.getIp());
+		if (renewUpgradeIndependentPackage != null) {
+			//独立规格续费订单记录
+			recordIndependentRenewOrderDon(orderDon, renewUpgradeIndependentPackage, groupsTrips);
+		}
 		//订单金额为0 且订单为已完成 更新虚物车票
 		if (orderDon.getMoney().compareTo(BigDecimal.ZERO) == 0) {
 			OrderDon updateOrder = orderDonMapper.selectById(orderDon.getId());