|  | @@ -1578,7 +1578,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		String firstDayOfMonth = DateUtil.format(DateUtil.getFirstDayOfMonth(months),DateUtil.ISO_EXPANDED_DATE_FORMAT);
 | 
	
		
			
				|  |  |  		String lastDayOfMonth =  DateUtil.format(DateUtil.getLastDayOfMonth(months),DateUtil.ISO_EXPANDED_DATE_FORMAT);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeachereClassTimesByMonth(firstDayOfMonth,lastDayOfMonth);
 | 
	
		
			
				|  |  | +		List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeacherClassTimesByMonth(firstDayOfMonth,lastDayOfMonth);
 | 
	
		
			
				|  |  |  		if(rewardsRulesDtos != null && rewardsRulesDtos.size() > 0){
 | 
	
		
			
				|  |  |  			List<Integer> activeIds = rewardsRulesDtos.stream().map(e -> e.getActiveId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  			List<CourseScheduleRewardsRules> rewardsRules = courseScheduleRewardsRulesService.findByIds(activeIds);
 | 
	
	
		
			
				|  | @@ -1592,20 +1592,30 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  					List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRule.getRewardsRulesJson(), RewardsRulesJsonDto.class);
 | 
	
		
			
				|  |  |  					BigDecimal money = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |  					//STAIR 阶梯, PER 累计, TOTAL
 | 
	
		
			
				|  |  | +					RewardsRulesJsonDto dto;
 | 
	
		
			
				|  |  | +					int times = e.getTimes();
 | 
	
		
			
				|  |  |  					switch (rewardsRule.getRewardMode()) {
 | 
	
		
			
				|  |  |  						case STAIR:
 | 
	
		
			
				|  |  | -							for (RewardsRulesJsonDto rule : rulesJsonDtos) {
 | 
	
		
			
				|  |  | -								if (e.getTimes() >= rule.getMin()) {
 | 
	
		
			
				|  |  | -									money = money.add(rule.getMoney());
 | 
	
		
			
				|  |  | +							for (int i = 0;i< rulesJsonDtos.size();i++){
 | 
	
		
			
				|  |  | +								dto = rulesJsonDtos.get(i);
 | 
	
		
			
				|  |  | +								if (e.getTimes() >= dto.getMin()) {
 | 
	
		
			
				|  |  | +									//最后一个梯度
 | 
	
		
			
				|  |  | +									if(rulesJsonDtos.size()-1 == i){
 | 
	
		
			
				|  |  | +										money = money.add(dto.getMoney().multiply(new BigDecimal(times)));
 | 
	
		
			
				|  |  | +									}else if(e.getTimes() >= dto.getMax()){
 | 
	
		
			
				|  |  | +										times = Math.abs(dto.getMax() - times);
 | 
	
		
			
				|  |  | +										money = money.add(dto.getMoney().multiply(new BigDecimal(dto.getMax()-dto.getMin()+1)));
 | 
	
		
			
				|  |  | +									}else {
 | 
	
		
			
				|  |  | +										money = money.add(dto.getMoney().multiply(new BigDecimal(times)));
 | 
	
		
			
				|  |  | +									}
 | 
	
		
			
				|  |  |  								}
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case PER:
 | 
	
		
			
				|  |  | -							int count = 0;
 | 
	
		
			
				|  |  | -							for (RewardsRulesJsonDto rule : rulesJsonDtos) {
 | 
	
		
			
				|  |  | -								if (e.getTimes() >= rule.getMin()) {
 | 
	
		
			
				|  |  | -									count++;
 | 
	
		
			
				|  |  | -									money = rule.getMoney().multiply(new BigDecimal(count));
 | 
	
		
			
				|  |  | +							for (int i = 0;i< rulesJsonDtos.size();i++){
 | 
	
		
			
				|  |  | +								dto = rulesJsonDtos.get(i);
 | 
	
		
			
				|  |  | +								if (e.getTimes() >= dto.getMin()) {
 | 
	
		
			
				|  |  | +									money = dto.getMoney().multiply(new BigDecimal(times));
 | 
	
		
			
				|  |  |  								}
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  |  							break;
 |