yonge 3 سال پیش
والد
کامیت
e99599f67e
1فایلهای تغییر یافته به همراه34 افزوده شده و 16 حذف شده
  1. 34 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

+ 34 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -338,22 +338,8 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 			BigDecimal orderTotalAmount = BigDecimal.ZERO;
 			
 			boolean isCalculatedOfAccessories = false;
-			
-			if(orderDetailList.size() == 0) {
-				if(subjectChange != null){
-					if(subjectChange.getChangeMusical() != null){
-						kitGroupPurchaseType = subjectChange.getKitGroupPurchaseType();
-						musicalId = subjectChange.getChangeMusical() + "";
-						userOrderTypeMap.put(OrderDetailTypeEnum.MUSICAL, subjectChange.getChangeMusicalPrice());
-						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeMusicalPrice());
-					}
-					if(StringUtils.isNotBlank(subjectChange.getChangeAccessories())) {
-						accessoriesId = accessoriesId.append(subjectChange.getChangeAccessories());
-						userOrderTypeMap.put(OrderDetailTypeEnum.ACCESSORIES, subjectChange.getChangeAccessoriesPrice());
-						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());
-		        	}
-				}
-			}
+			boolean isBuyMusical = false;
+			boolean isBuyAccessories = false;
 			
 			for(StudentPaymentOrderDetail spod : orderDetailList) {
 				
@@ -380,6 +366,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 						musicalId = spod.getGoodsIdList();
 						//musicalAmount = musicalAmount.add(spod.getPrice());
 		        	}
+					isBuyMusical = true;
 				}else if(spod.getType() == OrderDetailTypeEnum.ACCESSORIES){
 					if(subjectChange != null && spod.getPaymentOrderId() <= subjectChange.getOriginalOrderId()) {
 						if(StringUtils.isBlank(subjectChange.getChangeAccessories()) || isCalculatedOfAccessories == true){
@@ -394,6 +381,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 						accessoriesId = accessoriesId.append(spod.getGoodsIdList()).append(",");
 						//accessoriesAmount = accessoriesAmount.add(spod.getPrice());
 		        	}
+					isBuyAccessories = true;
 				}
 				
 				amount = userOrderTypeMap.get(spod.getType());
@@ -406,6 +394,36 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 				
 				orderTotalAmount = orderTotalAmount.add(spod.getPrice().subtract(spod.getRemitFee()));
 			}
+			
+			if(orderDetailList.size() == 0) {
+				if(subjectChange != null){
+					if(subjectChange.getChangeMusical() != null){
+						kitGroupPurchaseType = subjectChange.getKitGroupPurchaseType();
+						musicalId = subjectChange.getChangeMusical() + "";
+						userOrderTypeMap.put(OrderDetailTypeEnum.MUSICAL, subjectChange.getChangeMusicalPrice());
+						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeMusicalPrice());
+					}
+					if(StringUtils.isNotBlank(subjectChange.getChangeAccessories())) {
+						accessoriesId = accessoriesId.append(subjectChange.getChangeAccessories()).append(",");
+						userOrderTypeMap.put(OrderDetailTypeEnum.ACCESSORIES, subjectChange.getChangeAccessoriesPrice());
+						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());
+		        	}
+				}
+			}else if(isBuyAccessories == false || isBuyMusical == false){
+				if(subjectChange != null){
+					if(subjectChange.getChangeMusical() != null && isBuyMusical == false){
+						kitGroupPurchaseType = subjectChange.getKitGroupPurchaseType();
+						musicalId = subjectChange.getChangeMusical() + "";
+						userOrderTypeMap.put(OrderDetailTypeEnum.MUSICAL, subjectChange.getChangeMusicalPrice());
+						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeMusicalPrice());
+					}
+					if(StringUtils.isNotBlank(subjectChange.getChangeAccessories()) && isBuyAccessories == false) {
+						accessoriesId = accessoriesId.append(subjectChange.getChangeAccessories()).append(",");
+						userOrderTypeMap.put(OrderDetailTypeEnum.ACCESSORIES, subjectChange.getChangeAccessoriesPrice());
+						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());
+		        	}
+				}
+			}
         	
         	dto.setAccessoriesAmount(userOrderTypeMap.get(OrderDetailTypeEnum.ACCESSORIES));
 			dto.setCourseAmount(userOrderTypeMap.get(OrderDetailTypeEnum.COURSE));