|  | @@ -727,6 +727,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  | +	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |  	public void updateVipGroupStudentNumAndStatus(Long vipGroupId, Integer num, boolean updateVipStatus) {
 | 
	
		
			
				|  |  |  		VipGroup vipGroup = vipGroupDao.getLockVipGroup(vipGroupId);
 | 
	
		
			
				|  |  |  		if(Objects.isNull(vipGroup)){
 | 
	
	
		
			
				|  | @@ -777,7 +778,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  			throw new BizException("课程信息错误");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		ClassGroup classGroup = classGroupDao.get(vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | +		ClassGroup classGroup = vipGroupClassGroupMapperDao.findClassGroupByVipGroup(vipGroupBuyParams.getVipGroupId());
 | 
	
		
			
				|  |  |  		if(Objects.isNull(classGroup)){
 | 
	
		
			
				|  |  |  			throw new BizException("课程信息错误");
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -786,19 +787,17 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  				user.getId(),
 | 
	
		
			
				|  |  |  				DealStatusEnum.ING.getCode());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if(classGroup.getStudentNum()>=classGroup.getExpectStudentNum()&&Objects.nonNull(byStudentVipGroup)){
 | 
	
		
			
				|  |  | -            throw new BizException("该课程人数已达上限");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		if(Objects.nonNull(byStudentVipGroup)){
 | 
	
		
			
				|  |  |  			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
 | 
	
		
			
				|  |  |  			studentPaymentOrderDao.update(byStudentVipGroup);
 | 
	
		
			
				|  |  |  		}else{
 | 
	
		
			
				|  |  | +			if(classGroup.getStudentNum()>=classGroup.getExpectStudentNum()){
 | 
	
		
			
				|  |  | +				throw new BizException("该课程人数已达上限");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  			//更新班级人数,如果订单支付失败则减少
 | 
	
		
			
				|  |  | -			updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
 | 
	
		
			
				|  |  | +			this.updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -//		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
 | 
	
		
			
				|  |  |  		StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setUserId(user.getId());
 | 
	
		
			
				|  |  |  		String orderNo=StringUtils.join(new String[]{user.getId().toString(),String.valueOf(System.currentTimeMillis())});
 | 
	
	
		
			
				|  | @@ -807,11 +806,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setType(OrderTypeEnum.SMALL_CLASS_TO_BUY);
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setExpectAmount(vipGroup.getTotalPrice());
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
 | 
	
		
			
				|  |  | -//		if(vipGroupActivity.getType()==VipGroupActivityTypeEnum.DISCOUNT){
 | 
	
		
			
				|  |  | -//			studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount().multiply(new BigDecimal(vipGroupActivity.getAttribute1())));
 | 
	
		
			
				|  |  | -//		}else{
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount());
 | 
	
		
			
				|  |  | -//		}
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -826,12 +821,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
 | 
	
		
			
				|  |  |  		studentPaymentOrderDao.insert(studentPaymentOrder);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -//		StudentVipGroupPayment studentVipGroupPayment=new StudentVipGroupPayment();
 | 
	
		
			
				|  |  | -//		studentVipGroupPayment.setUserId(user.getId());
 | 
	
		
			
				|  |  | -//		studentVipGroupPayment.setVipGroupId(vipGroup.getId());
 | 
	
		
			
				|  |  | -//		studentVipGroupPayment.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
 | 
	
		
			
				|  |  | -//		studentVipGroupPayment.setStudentPaymentOrderId(studentPaymentOrder.getId());
 | 
	
		
			
				|  |  | -//		studentVipGroupPaymentDao.insert(studentVipGroupPayment);
 | 
	
		
			
				|  |  |  		return payMap;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	}
 |