|  | @@ -2180,29 +2180,41 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                      studentLastChange = subjectChangeDao.getStudentLastChange(userId, musicGroupId);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  
 | 
	
		
			
				|  |  | -				if (studentLastChange != null && minPaymentOrderId <= studentLastChange.getOriginalOrderId()) {
 | 
	
		
			
				|  |  | -					if (isRefundInstrumentFee) {
 | 
	
		
			
				|  |  | -						amount = amount.add(studentLastChange.getChangeMusicalPrice());
 | 
	
		
			
				|  |  | -					}
 | 
	
		
			
				|  |  | +    			if (studentLastChange != null && minPaymentOrderId <= studentLastChange.getOriginalOrderId()) {
 | 
	
		
			
				|  |  | +    				if (isRefundInstrumentFee) {
 | 
	
		
			
				|  |  | +    					amount = amount.add(studentLastChange.getChangeMusicalPrice());
 | 
	
		
			
				|  |  | +    					
 | 
	
		
			
				|  |  | +    					StudentInstrument studentMaintenance = studentInstrumentDao.getByOrderId(studentLastChange.getOrderId().longValue());
 | 
	
		
			
				|  |  | +    		            if (studentMaintenance != null) {
 | 
	
		
			
				|  |  | +    		                studentMaintenance.setDelFlag(1);
 | 
	
		
			
				|  |  | +    		                studentInstrumentDao.update(studentMaintenance);
 | 
	
		
			
				|  |  | +    		            }
 | 
	
		
			
				|  |  | +    				}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -					if (isRefundTeachingAssistantsFee) {
 | 
	
		
			
				|  |  | -						amount = amount.add(studentLastChange.getChangeAccessoriesPrice());
 | 
	
		
			
				|  |  | -					}
 | 
	
		
			
				|  |  | -				} else {
 | 
	
		
			
				|  |  | -					for (StudentPaymentOrderDetail detail : orderDetailList) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -						// 退乐器费用
 | 
	
		
			
				|  |  | -						if (isRefundInstrumentFee && detail.getType() == OrderDetailTypeEnum.MUSICAL) {
 | 
	
		
			
				|  |  | -							amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -						// 退教辅费用
 | 
	
		
			
				|  |  | -						if (isRefundTeachingAssistantsFee
 | 
	
		
			
				|  |  | -								&& (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING)) {
 | 
	
		
			
				|  |  | -							amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -					}
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | +    				if (isRefundTeachingAssistantsFee) {
 | 
	
		
			
				|  |  | +    					amount = amount.add(studentLastChange.getChangeAccessoriesPrice());
 | 
	
		
			
				|  |  | +    				}
 | 
	
		
			
				|  |  | +    			} else {
 | 
	
		
			
				|  |  | +    				for (StudentPaymentOrderDetail detail : orderDetailList) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    					// 退乐器费用
 | 
	
		
			
				|  |  | +    					if (isRefundInstrumentFee && detail.getType() == OrderDetailTypeEnum.MUSICAL) {
 | 
	
		
			
				|  |  | +    						amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
 | 
	
		
			
				|  |  | +    						
 | 
	
		
			
				|  |  | +    						StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
 | 
	
		
			
				|  |  | +    			            if (studentMaintenance != null) {
 | 
	
		
			
				|  |  | +    			                studentMaintenance.setDelFlag(1);
 | 
	
		
			
				|  |  | +    			                studentInstrumentDao.update(studentMaintenance);
 | 
	
		
			
				|  |  | +    			            }
 | 
	
		
			
				|  |  | +    					}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    					// 退教辅费用
 | 
	
		
			
				|  |  | +    					if (isRefundTeachingAssistantsFee
 | 
	
		
			
				|  |  | +    							&& (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING)) {
 | 
	
		
			
				|  |  | +    						amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
 | 
	
		
			
				|  |  | +    					}
 | 
	
		
			
				|  |  | +    				}
 | 
	
		
			
				|  |  | +    			}
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              //退乐保费用
 | 
	
	
		
			
				|  | @@ -2215,7 +2227,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  amount = amount.add(maintenanceFee);
 | 
	
		
			
				|  |  |                  if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {
 | 
	
		
			
				|  |  | -                    studentMaintenance.setDelFlag(1);
 | 
	
		
			
				|  |  | +                    studentMaintenance.setStatus(0);
 | 
	
		
			
				|  |  | +                    studentMaintenance.setStartTime(null);
 | 
	
		
			
				|  |  | +                    studentMaintenance.setEndTime(null);
 | 
	
		
			
				|  |  |                      studentInstrumentDao.update(studentMaintenance);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -2509,6 +2523,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              amount = amount.add(maintenanceFee);
 | 
	
		
			
				|  |  |              if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {
 | 
	
		
			
				|  |  |                  studentMaintenance.setStatus(0);
 | 
	
		
			
				|  |  | +                studentMaintenance.setStartTime(null);
 | 
	
		
			
				|  |  | +                studentMaintenance.setEndTime(null);
 | 
	
		
			
				|  |  |                  studentInstrumentDao.update(studentMaintenance);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -3719,12 +3735,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |  		List<StudentInstrument> updateList = new ArrayList<StudentInstrument>();
 | 
	
		
			
				|  |  |  		
 | 
	
		
			
				|  |  |  		for (StudentInstrument si : studentInstrumentList) {
 | 
	
		
			
				|  |  | +			if (si.getDelFlag() == 1) {
 | 
	
		
			
				|  |  | +				continue;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  			if (si.getStatus() == 0 && si.getStartTime() == null) {
 | 
	
		
			
				|  |  |  				si.setStatus(1);
 | 
	
		
			
				|  |  |  				si.setStartTime(date);
 | 
	
		
			
				|  |  |  				si.setEndTime(DateUtil.addYears(date, 1));
 | 
	
		
			
				|  |  |  				si.setUpdateTime(date);
 | 
	
		
			
				|  |  | -				
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  				updateList.add(si);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 |