|  | @@ -195,6 +195,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  			throw new BizException("开课时间不能小于当前时间");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		if(vipGroupApplyBaseInfoDto.getRegistrationStartTime().after(vipGroupApplyBaseInfoDto.getPaymentExpireDate())){
 | 
	
		
			
				|  |  | +		    throw new BizException("报名开始时间必须在报名截至时间之前");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if(vipGroupApplyBaseInfoDto.getPaymentExpireDate().after(firstCourseSchedule.getStartClassTime())
 | 
	
		
			
				|  |  | +            ||DateUtil.isSameDay(vipGroupApplyBaseInfoDto.getPaymentExpireDate(),firstCourseSchedule.getEndClassTime())){
 | 
	
		
			
				|  |  | +		    throw new BizException("创建失败,报名截止时间必须在开课时间前一天");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		//判断课程安排是否超出范围
 | 
	
		
			
				|  |  |  		if(Objects.nonNull(vipGroupActivity.getCoursesEndTime())||Objects.nonNull(vipGroupActivity.getCoursesStartTime())){
 | 
	
		
			
				|  |  |  			if(latestCourseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
 | 
	
	
		
			
				|  | @@ -251,13 +260,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  //			throw new BizException("教师总课酬不能高于课程总价60%");
 | 
	
		
			
				|  |  |  //		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		//如果默认课酬与实际课酬不匹配则需要审批
 | 
	
		
			
				|  |  |  		if(costInfo.get("offlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())<0||
 | 
	
		
			
				|  |  |  			costInfo.get("onlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())<0
 | 
	
		
			
				|  |  |  			&&StringUtils.isBlank(studentIds)){
 | 
	
		
			
				|  |  |  			vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
 | 
	
		
			
				|  |  | -		}else{
 | 
	
		
			
				|  |  | -			vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
 | 
	
	
		
			
				|  | @@ -266,19 +275,38 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		}else{
 | 
	
		
			
				|  |  |  			vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.APPLYING);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -//        Teacher teacher = teacherService.get(sysUser.getId());
 | 
	
		
			
				|  |  | -//		if(teacher.getOrganId().indexOf(",")!=-1){
 | 
	
		
			
				|  |  | -//		    throw new BizException("教师部门异常");
 | 
	
		
			
				|  |  | -//        }
 | 
	
		
			
				|  |  | +        Teacher teacher = teacherService.get(vipGroupApplyBaseInfoDto.getUserId());
 | 
	
		
			
				|  |  | +		if(Objects.isNull(teacher)){
 | 
	
		
			
				|  |  | +		    throw new BizException("教师不存在");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +		if(Objects.isNull(teacher.getTeacherOrganId())){
 | 
	
		
			
				|  |  | +		    throw new BizException("教师部门异常");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  //        vipGroupApplyBaseInfoDto.setOrganId(Integer.parseInt(teacher.getOrganId()));
 | 
	
		
			
				|  |  |  		//开课时间为排课的第一节课的开始时间
 | 
	
		
			
				|  |  |  		vipGroupApplyBaseInfoDto.setCourseStartDate(firstCourseSchedule.getStartClassTime());
 | 
	
		
			
				|  |  |  		//课程结束时间为排课的最后一节课的结束时间
 | 
	
		
			
				|  |  |  		vipGroupApplyBaseInfoDto.setCoursesExpireDate(latestCourseSchedule.getEndClassTime());
 | 
	
		
			
				|  |  | -		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		//获取vip课类型信息
 | 
	
		
			
				|  |  | -		VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupCategoryId().intValue());
 | 
	
		
			
				|  |  | +        //获取vip课类型信息
 | 
	
		
			
				|  |  | +        VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupCategoryId().intValue());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroup.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), teacher.getTeacherOrganId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if(Objects.isNull(vipGroupDefaultClassesUnitPrice)){
 | 
	
		
			
				|  |  | +            vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
 | 
	
		
			
				|  |  | +        }else{
 | 
	
		
			
				|  |  | +            if(Objects.nonNull(vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice())
 | 
	
		
			
				|  |  | +                    &&vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice().compareTo(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice())!=0){
 | 
	
		
			
				|  |  | +                vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(Objects.nonNull(vipGroupApplyBaseInfoDto.getOnlineClassesUnitPrice())
 | 
	
		
			
				|  |  | +                    &&vipGroupApplyBaseInfoDto.getOnlineClassesUnitPrice().compareTo(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice())!=0){
 | 
	
		
			
				|  |  | +                vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		//创建班级信息
 | 
	
		
			
				|  |  |  		ClassGroup classGroup=new ClassGroup();
 | 
	
	
		
			
				|  | @@ -347,7 +375,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 | 
	
		
			
				|  |  |  		Map<String,Long> memo = new HashMap<>(1);
 | 
	
		
			
				|  |  |  		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
 | 
	
		
			
				|  |  | -		Teacher teacher = teacherDao.get(vipGroup.getVipGroupApplyBaseInfo().getUserId());
 | 
	
		
			
				|  |  |  //		SysUser sysUser = sysUserFeignService.queryUserById(vipGroup.getVipGroupApplyBaseInfo().getUserId());
 | 
	
		
			
				|  |  |  		if(Objects.isNull(teacher)){
 | 
	
		
			
				|  |  |  			throw new BizException("该用户不存在");
 | 
	
	
		
			
				|  | @@ -1634,7 +1661,59 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		return studentRecoverInfoDto;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    @Override
 | 
	
		
			
				|  |  | +//    @Override
 | 
	
		
			
				|  |  | +//	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +//	public Map<String, BigDecimal> getStudentSurplusCourseFee(Long vipGroupId, Integer studentId) {
 | 
	
		
			
				|  |  | +//		if(Objects.isNull(vipGroupId)||Objects.isNull(studentId)){
 | 
	
		
			
				|  |  | +//			throw new BizException("请指定课程和学生");
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
 | 
	
		
			
				|  |  | +//		if(Objects.isNull(vipGroup)){
 | 
	
		
			
				|  |  | +//			throw new BizException("未找到指定vip课");
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		if(vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
 | 
	
		
			
				|  |  | +//			throw new BizException("不能对已停止的课程进行退课操作");
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		Date now = new Date();
 | 
	
		
			
				|  |  | +//        BigDecimal bigDecimal;
 | 
	
		
			
				|  |  | +//        List<StudentCourseInfoDto> userCourseInfos = courseScheduleDao.findUserCourseInfos(GroupType.VIP, vipGroupId.toString(), studentId, null);
 | 
	
		
			
				|  |  | +//		if(CollectionUtils.isEmpty(userCourseInfos)&&vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
 | 
	
		
			
				|  |  | +//            StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId, studentId, DealStatusEnum.SUCCESS.getCode());
 | 
	
		
			
				|  |  | +//            if(Objects.isNull(studentPaymentOrder)){
 | 
	
		
			
				|  |  | +//                bigDecimal=new BigDecimal(0);
 | 
	
		
			
				|  |  | +//            }else{
 | 
	
		
			
				|  |  | +//                bigDecimal=studentPaymentOrder.getActualAmount();
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +//        }else if(!CollectionUtils.isEmpty(userCourseInfos)){
 | 
	
		
			
				|  |  | +//            BigDecimal historyPrice=new BigDecimal(0);
 | 
	
		
			
				|  |  | +//            BigDecimal allPrice=new BigDecimal(0);
 | 
	
		
			
				|  |  | +//            for (StudentCourseInfoDto userCourseInfo : userCourseInfos) {
 | 
	
		
			
				|  |  | +//                allPrice=allPrice.add(userCourseInfo.getExpectPrice());
 | 
	
		
			
				|  |  | +//                if(now.after(userCourseInfo.getStartClassTime())){
 | 
	
		
			
				|  |  | +//                    historyPrice=historyPrice.add(userCourseInfo.getTeachMode().equals(TeachModeEnum.ONLINE)?vipGroup.getOnlineClassesUnitPrice():vipGroup.getOfflineClassesUnitPrice());
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +//            bigDecimal=allPrice.subtract(historyPrice);
 | 
	
		
			
				|  |  | +//            if(bigDecimal.longValue()<0){
 | 
	
		
			
				|  |  | +//                bigDecimal=new BigDecimal(0);
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +//        }else{
 | 
	
		
			
				|  |  | +//		    bigDecimal=new BigDecimal(0);
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//        Map<String,BigDecimal> result=new HashMap<>();
 | 
	
		
			
				|  |  | +//		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
 | 
	
		
			
				|  |  | +//		if(Objects.isNull(classGroup)){
 | 
	
		
			
				|  |  | +//			throw new BizException("未找到对应班级");
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		if(Objects.isNull(bigDecimal)){
 | 
	
		
			
				|  |  | +//			bigDecimal = new BigDecimal(0);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//		bigDecimal = bigDecimal.multiply(new BigDecimal(0.8)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +//		result.put("suplusCourseFee", bigDecimal);
 | 
	
		
			
				|  |  | +//		return result;
 | 
	
		
			
				|  |  | +//	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  |  	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |  	public Map<String, BigDecimal> getStudentSurplusCourseFee(Long vipGroupId, Integer studentId) {
 | 
	
		
			
				|  |  |  		if(Objects.isNull(vipGroupId)||Objects.isNull(studentId)){
 | 
	
	
		
			
				|  | @@ -1647,37 +1726,26 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		if(vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
 | 
	
		
			
				|  |  |  			throw new BizException("不能对已停止的课程进行退课操作");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		Date now = new Date();
 | 
	
		
			
				|  |  | -        BigDecimal bigDecimal;
 | 
	
		
			
				|  |  | -        List<StudentCourseInfoDto> userCourseInfos = courseScheduleDao.findUserCourseInfos(GroupType.VIP, vipGroupId.toString(), studentId, null);
 | 
	
		
			
				|  |  | -		if(CollectionUtils.isEmpty(userCourseInfos)&&vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
 | 
	
		
			
				|  |  | -            StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId, studentId, DealStatusEnum.SUCCESS.getCode());
 | 
	
		
			
				|  |  | -            if(Objects.isNull(studentPaymentOrder)){
 | 
	
		
			
				|  |  | -                bigDecimal=new BigDecimal(0);
 | 
	
		
			
				|  |  | -            }else{
 | 
	
		
			
				|  |  | -                bigDecimal=studentPaymentOrder.getActualAmount();
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }else if(!CollectionUtils.isEmpty(userCourseInfos)){
 | 
	
		
			
				|  |  | -            BigDecimal historyPrice=new BigDecimal(0);
 | 
	
		
			
				|  |  | -            BigDecimal allPrice=new BigDecimal(0);
 | 
	
		
			
				|  |  | -            for (StudentCourseInfoDto userCourseInfo : userCourseInfos) {
 | 
	
		
			
				|  |  | -                allPrice=allPrice.add(userCourseInfo.getExpectPrice());
 | 
	
		
			
				|  |  | -                if(now.after(userCourseInfo.getStartClassTime())){
 | 
	
		
			
				|  |  | -                    historyPrice=historyPrice.add(userCourseInfo.getTeachMode().equals(TeachModeEnum.ONLINE)?vipGroup.getOnlineClassesUnitPrice():vipGroup.getOfflineClassesUnitPrice());
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            bigDecimal=allPrice.subtract(historyPrice);
 | 
	
		
			
				|  |  | -            if(bigDecimal.longValue()<0){
 | 
	
		
			
				|  |  | -                bigDecimal=new BigDecimal(0);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }else{
 | 
	
		
			
				|  |  | -		    bigDecimal=new BigDecimal(0);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        Map<String,BigDecimal> result=new HashMap<>();
 | 
	
		
			
				|  |  | +		Map<String,BigDecimal> result=new HashMap<>();
 | 
	
		
			
				|  |  | +		if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
 | 
	
		
			
				|  |  | +			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId, studentId, DealStatusEnum.SUCCESS.getCode());
 | 
	
		
			
				|  |  | +			if(Objects.isNull(studentPaymentOrder)){
 | 
	
		
			
				|  |  | +				BigDecimal surplusCourseFee = studentPaymentOrderDao.sumSurplusCourseFee(vipGroupId.toString(), studentId);
 | 
	
		
			
				|  |  | +				if(Objects.isNull(surplusCourseFee)){
 | 
	
		
			
				|  |  | +					result.put("suplusCourseFee",new BigDecimal(0));
 | 
	
		
			
				|  |  | +				}else{
 | 
	
		
			
				|  |  | +					result.put("suplusCourseFee",surplusCourseFee);
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}else{
 | 
	
		
			
				|  |  | +				result.put("suplusCourseFee",studentPaymentOrder.getActualAmount());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			return result;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
 | 
	
		
			
				|  |  |  		if(Objects.isNull(classGroup)){
 | 
	
		
			
				|  |  |  			throw new BizException("未找到对应班级");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +		BigDecimal bigDecimal = courseScheduleStudentPaymentDao.countSurplusCourseFee(classGroup.getId(), studentId);
 | 
	
		
			
				|  |  |  		if(Objects.isNull(bigDecimal)){
 | 
	
		
			
				|  |  |  			bigDecimal = new BigDecimal(0);
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -2456,8 +2524,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  			noCreateSuccessVipGroup.setStatus(VipGroupStatusEnum.CANCEL);
 | 
	
		
			
				|  |  |  			List<StudentPaymentOrder> studentPaymentOrders = studentPaymentOrderDao.queryByDealStatus(noCreateSuccessVipGroup.getId().toString(),
 | 
	
		
			
				|  |  |  					OrderTypeEnum.SMALL_CLASS_TO_BUY, DealStatusEnum.SUCCESS);
 | 
	
		
			
				|  |  | -			//推送消息
 | 
	
		
			
				|  |  | -			stopVipPush(noCreateSuccessVipGroup.getId(),noCreateSuccessVipGroup.getName());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			for (StudentPaymentOrder studentPaymentOrder:studentPaymentOrders){
 | 
	
		
			
				|  |  |  				//生成账户资金明细
 | 
	
	
		
			
				|  | @@ -2477,7 +2543,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		if(!CollectionUtils.isEmpty(userCashAccountDetails)){
 | 
	
		
			
				|  |  |  			sysUserCashAccountDetailDao.batchInsert(userCashAccountDetails);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		vipGroupDao.batchUpdate(noCreateSuccessVipGroups);
 | 
	
		
			
				|  |  | +		if(noCreateSuccessVipGroups != null && noCreateSuccessVipGroups.size() > 0){
 | 
	
		
			
				|  |  | +			vipGroupDao.batchUpdate(noCreateSuccessVipGroups);
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			for (VipGroup noCreateSuccessVipGroup : noCreateSuccessVipGroups) {
 | 
	
		
			
				|  |  | +				//推送消息
 | 
	
		
			
				|  |  | +				stopVipPush(noCreateSuccessVipGroup.getId(),noCreateSuccessVipGroup.getName());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
	
		
			
				|  | @@ -2496,47 +2569,35 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		if (!CollectionUtils.isEmpty(normalVipGroupList)){
 | 
	
		
			
				|  |  |              Date now = new Date();
 | 
	
		
			
				|  |  |              List<VipGroup> needUpdateVipGroups = new ArrayList<>();
 | 
	
		
			
				|  |  | -            for (VipGroup vipGroup : normalVipGroupList) {
 | 
	
		
			
				|  |  | -                try {
 | 
	
		
			
				|  |  | -                	if(Objects.isNull(vipGroup.getRegistrationStartTime())){
 | 
	
		
			
				|  |  | -                		continue;
 | 
	
		
			
				|  |  | +			for (VipGroup vipGroup : normalVipGroupList) {
 | 
	
		
			
				|  |  | +				try {
 | 
	
		
			
				|  |  | +					if (Objects.isNull(vipGroup.getRegistrationStartTime())) {
 | 
	
		
			
				|  |  | +						continue;
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | -                	if(vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)){
 | 
	
		
			
				|  |  | -                		continue;
 | 
	
		
			
				|  |  | +					if (vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE) || vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)
 | 
	
		
			
				|  |  | +							|| vipGroup.getStatus().equals(VipGroupStatusEnum.FINISHED) || vipGroup.getStatus().equals(VipGroupStatusEnum.PROGRESS)) {
 | 
	
		
			
				|  |  | +						continue;
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | -                	if(vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
 | 
	
		
			
				|  |  | -                		continue;
 | 
	
		
			
				|  |  | +					if (now.before(vipGroup.getRegistrationStartTime())) {
 | 
	
		
			
				|  |  | +						vipGroup.setStatus(VipGroupStatusEnum.NOT_START);
 | 
	
		
			
				|  |  | +					} else if (vipGroup.getRegistrationStartTime().before(now) && vipGroup.getPaymentExpireDate().after(now)) {
 | 
	
		
			
				|  |  | +						vipGroup.setStatus(VipGroupStatusEnum.APPLYING);
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | -                    if(now.before(vipGroup.getRegistrationStartTime())){
 | 
	
		
			
				|  |  | -                        if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
 | 
	
		
			
				|  |  | -							vipGroup.setStatus(VipGroupStatusEnum.NOT_START);
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    if(vipGroup.getRegistrationStartTime().before(now)&&vipGroup.getPaymentExpireDate().after(now)){
 | 
	
		
			
				|  |  | -                        if(vipGroup.getStatus().equals(VipGroupStatusEnum.NOT_START)){
 | 
	
		
			
				|  |  | -							vipGroup.setStatus(VipGroupStatusEnum.APPLYING);
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    if(vipGroup.getPaymentExpireDate().before(now)&&vipGroup.getCourseStartDate().after(now)){
 | 
	
		
			
				|  |  | -						if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)) {
 | 
	
		
			
				|  |  | -							vipGroup.setStatus(VipGroupStatusEnum.APPLYING_END);
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    if(vipGroup.getCourseStartDate().before(now)&&vipGroup.getCoursesExpireDate().after(now)){
 | 
	
		
			
				|  |  | -						if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING_END)){
 | 
	
		
			
				|  |  | -							vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    VipGroup vipGroup1 = new VipGroup();
 | 
	
		
			
				|  |  | -                    vipGroup1.setId(vipGroup.getId());
 | 
	
		
			
				|  |  | -                    vipGroup1.setStatus(vipGroup.getStatus());
 | 
	
		
			
				|  |  | -                    vipGroup1.setUpdateTime(now);
 | 
	
		
			
				|  |  | -                    vipGroup1.setTotalPrice(vipGroup.getTotalPrice());
 | 
	
		
			
				|  |  | -                    needUpdateVipGroups.add(vipGroup1);
 | 
	
		
			
				|  |  | -                } catch (Exception e) {
 | 
	
		
			
				|  |  | -                    e.printStackTrace();
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +					if (vipGroup.getPaymentExpireDate().before(now) && vipGroup.getCourseStartDate().after(now)) {
 | 
	
		
			
				|  |  | +						vipGroup.setStatus(VipGroupStatusEnum.APPLYING_END);
 | 
	
		
			
				|  |  | +					} else if (vipGroup.getCourseStartDate().before(now) && vipGroup.getCoursesExpireDate().after(now)) {
 | 
	
		
			
				|  |  | +						vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					VipGroup vipGroup1 = new VipGroup();
 | 
	
		
			
				|  |  | +					vipGroup1.setId(vipGroup.getId());
 | 
	
		
			
				|  |  | +					vipGroup1.setStatus(vipGroup.getStatus());
 | 
	
		
			
				|  |  | +					vipGroup1.setUpdateTime(now);
 | 
	
		
			
				|  |  | +					vipGroup1.setTotalPrice(vipGroup.getTotalPrice());
 | 
	
		
			
				|  |  | +					needUpdateVipGroups.add(vipGroup1);
 | 
	
		
			
				|  |  | +				} catch (Exception e) {
 | 
	
		
			
				|  |  | +					e.printStackTrace();
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |              vipGroupDao.batchUpdate(needUpdateVipGroups);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  	}
 |