zoujiajian 1 年間 前
コミット
6644003bbf

+ 5 - 2
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -1535,7 +1535,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				throw BusinessRuntimeException.getInstance("不支持更换该类型车票");
 			}
 			//替换车票
-			TicketChangeDto changeDto = getTicketAndGenerateOrder(userId, skuId, netflixRelationView.getStartTime(), expiryTime);
+			TicketChangeDto changeDto = getTicketAndGenerateOrder(userId, skuId, null, null);
 			//替换记录
 			NetflixUserChangeOtherTicketRecord changeOtherTicketRecord = new NetflixUserChangeOtherTicketRecord();
 			changeOtherTicketRecord.setUserId(userId);
@@ -1590,6 +1590,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		}
 		List<GoodsCategorySkuView> goodsCategorySkuViews = beanSearcher.searchAll(GoodsCategorySkuView.class, MapUtils.builder()
 				.field(GoodsCategorySkuView::getSkuId, errorNetflixChangeOtherSkuTicketDto.getSkuIds()).op(Operator.InList)
+				.orderBy(GoodsCategorySkuView::getPrice)
 				.build());
 		return goodsCategorySkuViews;
 	}
@@ -1626,10 +1627,12 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		BigDecimal dayPrice = sku.getPrice().divide(BigDecimal.valueOf(sku.getMonths() * 30), RoundingMode.DOWN);
 		//需要退款金额
 		BigDecimal refundMoney = dayPrice.multiply(BigDecimal.valueOf(betweenDay));
+		refundInfoResp.setPrice(refundMoney);
 		if (refundMoney.compareTo(orderMoney) > 0) {
 			refundInfoResp.setIsRefund(false);
+			//超过价格
+			refundInfoResp.setPrice(orderMoney.add(Optional.ofNullable(orderDon.getBalance()).orElse(BigDecimal.ZERO)));
 		}
-		refundInfoResp.setPrice(refundMoney);
 		refundInfoResp.setRemainDays(betweenDay);
 		return refundInfoResp;
 	}