yonge 3 tahun lalu
induk
melakukan
c6fd08bc81

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

@@ -338,8 +338,8 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 			BigDecimal orderTotalAmount = BigDecimal.ZERO;
 			
 			boolean isCalculatedOfAccessories = false;
-			boolean isBuyMusical = false;
-			boolean isBuyAccessories = false;
+			boolean isChangeMusical = false;
+			boolean isChangeAccessories = false;
 			
 			for(StudentPaymentOrderDetail spod : orderDetailList) {
 				
@@ -361,14 +361,14 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 						musicalId = subjectChange.getChangeMusical() + "";
 						spod.setPrice(subjectChange.getChangeMusicalPrice());
 						spod.setRemitFee(BigDecimal.ZERO);
+						isChangeMusical = true;
 		        	} else {
 						kitGroupPurchaseType = spod.getKitGroupPurchaseType();
 						musicalId = spod.getGoodsIdList();
 						//musicalAmount = musicalAmount.add(spod.getPrice());
 		        	}
-					isBuyMusical = true;
 				}else if(spod.getType() == OrderDetailTypeEnum.ACCESSORIES){
-					if(subjectChange != null && spod.getPaymentOrderId() <= subjectChange.getOriginalOrderId()) {
+					if(subjectChange != null && (subjectChange.getOriginalOrderId() != null && spod.getPaymentOrderId() <= subjectChange.getOriginalOrderId())) {
 						if(StringUtils.isBlank(subjectChange.getChangeAccessories()) || isCalculatedOfAccessories == true){
 							continue;
 						}
@@ -377,11 +377,11 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 						//accessoriesAmount = accessoriesAmount.add(subjectChange.getChangeAccessoriesPrice());
 						spod.setPrice(subjectChange.getChangeAccessoriesPrice());
 						spod.setRemitFee(BigDecimal.ZERO);
+						isChangeAccessories = true;
 		        	}else{
 						accessoriesId = accessoriesId.append(spod.getGoodsIdList()).append(",");
 						//accessoriesAmount = accessoriesAmount.add(spod.getPrice());
 		        	}
-					isBuyAccessories = true;
 				}
 				
 				amount = userOrderTypeMap.get(spod.getType());
@@ -409,15 +409,15 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());
 		        	}
 				}
-			}else if(isBuyAccessories == false || isBuyMusical == false){
+			}else if(isChangeAccessories == false || isChangeMusical == false){
 				if(subjectChange != null){
-					if(subjectChange.getChangeMusical() != null && isBuyMusical == false){
+					if(subjectChange.getChangeMusical() != null && isChangeMusical == 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) {
+					if(StringUtils.isNotBlank(subjectChange.getChangeAccessories()) && isChangeAccessories == false) {
 						accessoriesId = accessoriesId.append(subjectChange.getChangeAccessories()).append(",");
 						userOrderTypeMap.put(OrderDetailTypeEnum.ACCESSORIES, subjectChange.getChangeAccessoriesPrice());
 						orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -352,7 +352,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 			StudentPaymentOrderDetail spod = null;
 			while (iterator.hasNext()) {
 				spod = iterator.next();
-				if ((spod.getType() == OrderDetailTypeEnum.ACCESSORIES || spod.getType() == OrderDetailTypeEnum.MUSICAL) && spod.getPaymentOrderId() <= studentLastChange.getOriginalOrderId()) {
+				if ((spod.getType() == OrderDetailTypeEnum.ACCESSORIES || spod.getType() == OrderDetailTypeEnum.MUSICAL) && (studentLastChange.getOriginalOrderId() != null && spod.getPaymentOrderId() <= studentLastChange.getOriginalOrderId())) {
 					iterator.remove();
 				}
 			}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java

@@ -491,7 +491,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
                     subjectChange.setOriginalMusicalGoods(goodsDao.get(goodsId));
                     subjectChange.setOriginalMusicalPrice(detail.getPrice());
                 }
-            } else {
+            } else if (detail.getType().equals(OrderDetailTypeEnum.ACCESSORIES)){
                 if (StringUtils.isNotBlank(detail.getGoodsIdList())) {
                     accessoriesPrice = accessoriesPrice.add(detail.getPrice());
                     accessoriesIds = accessoriesIds.length() > 0 ? accessoriesIds + "," + detail.getGoodsIdList() : detail.getGoodsIdList();

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -987,7 +987,7 @@
 		(
 		SELECT * FROM subject_change WHERE id_ in
 		(SELECT max(sc.id_) id_ from subject_change sc WHERE sc.status_ = 2 GROUP BY music_group_id_,student_id_ ORDER BY id_ desc)
-		) a on spo.music_group_id_ = a.music_group_id_ and spo.user_id_ = a.student_id_
+		) a on spo.music_group_id_ = a.music_group_id_ and spo.id_ = a.original_order_id_
 		WHERE spo.music_group_id_ IN
         <foreach collection="musicGroupIds" item="musicGroupId" open="(" close=")" separator=",">
             #{musicGroupId}