|  | @@ -1588,37 +1588,36 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  			List<Integer> activeIds = rewardsRulesDtos.stream().map(e -> e.getActiveId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  			List<CourseScheduleRewardsRules> rewardsRules = courseScheduleRewardsRulesService.findByIds(activeIds);
 | 
	
		
			
				|  |  |  			Map<Integer, List<CourseScheduleRewardsRules>> integerListMap = rewardsRules.stream().collect(Collectors.groupingBy(CourseScheduleRewardsRules::getId));
 | 
	
		
			
				|  |  | +			String currentMonth = DateUtil.format(new Date(),DateUtil.ISO_YEAR_MONTH_FORMAT);
 | 
	
		
			
				|  |  |  			rewardsRulesDtos.forEach(e->{
 | 
	
		
			
				|  |  | -				CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
 | 
	
		
			
				|  |  | -				String rewardsRulesJson = rewardsRule.getRewardsRulesJson();
 | 
	
		
			
				|  |  | -				List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRulesJson, RewardsRulesJsonDto.class);
 | 
	
		
			
				|  |  | -				BigDecimal money = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -				//STAIR 阶梯, PER 累计, TOTAL
 | 
	
		
			
				|  |  | -				switch (rewardsRule.getRewardMode()){
 | 
	
		
			
				|  |  | -					case STAIR:
 | 
	
		
			
				|  |  | -						rulesJsonDtos.forEach(rule->{
 | 
	
		
			
				|  |  | -							if(e.getTimes() >= rule.getMin()){
 | 
	
		
			
				|  |  | -								money.add(rule.getMoney());
 | 
	
		
			
				|  |  | +				//当前用户是否已经发放过上月奖励
 | 
	
		
			
				|  |  | +				Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth,e.getTeacherId());
 | 
	
		
			
				|  |  | +				if(num == null || num == 0) {
 | 
	
		
			
				|  |  | +					CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
 | 
	
		
			
				|  |  | +					List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRule.getRewardsRulesJson(), RewardsRulesJsonDto.class);
 | 
	
		
			
				|  |  | +					BigDecimal money = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +					//STAIR 阶梯, PER 累计, TOTAL
 | 
	
		
			
				|  |  | +					switch (rewardsRule.getRewardMode()) {
 | 
	
		
			
				|  |  | +						case STAIR:
 | 
	
		
			
				|  |  | +							for (RewardsRulesJsonDto rule : rulesJsonDtos) {
 | 
	
		
			
				|  |  | +								if (e.getTimes() >= rule.getMin()) {
 | 
	
		
			
				|  |  | +									money = money.add(rule.getMoney());
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  | -						});
 | 
	
		
			
				|  |  | -						break;
 | 
	
		
			
				|  |  | -					case PER:
 | 
	
		
			
				|  |  | -						int count = 0;
 | 
	
		
			
				|  |  | -						for (RewardsRulesJsonDto rule:rulesJsonDtos) {
 | 
	
		
			
				|  |  | -							if(e.getTimes() >= rule.getMin()){
 | 
	
		
			
				|  |  | -								count++;
 | 
	
		
			
				|  |  | -								rule.getMoney().multiply(new BigDecimal(count));
 | 
	
		
			
				|  |  | +							break;
 | 
	
		
			
				|  |  | +						case PER:
 | 
	
		
			
				|  |  | +							int count = 0;
 | 
	
		
			
				|  |  | +							for (RewardsRulesJsonDto rule : rulesJsonDtos) {
 | 
	
		
			
				|  |  | +								if (e.getTimes() >= rule.getMin()) {
 | 
	
		
			
				|  |  | +									count++;
 | 
	
		
			
				|  |  | +									money = rule.getMoney().multiply(new BigDecimal(count));
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -						break;
 | 
	
		
			
				|  |  | -					case TOTAL:
 | 
	
		
			
				|  |  | -						break;
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -				if (money.doubleValue() > 0) {
 | 
	
		
			
				|  |  | -					//当前用户是否已经发放过上月奖励
 | 
	
		
			
				|  |  | -					String currentMonth = DateUtil.format(new Date(),DateUtil.ISO_YEAR_MONTH_FORMAT);
 | 
	
		
			
				|  |  | -					Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth);
 | 
	
		
			
				|  |  | -					if(num == null || num == 0){
 | 
	
		
			
				|  |  | +							break;
 | 
	
		
			
				|  |  | +						case TOTAL:
 | 
	
		
			
				|  |  | +							break;
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					if (money.doubleValue() > 0) {
 | 
	
		
			
				|  |  |  						sysUserCashAccountDetailService.addCashAccountDetail(e.getTeacherId(), money, "", SysUserCashAccountDetailService.ORGAN,
 | 
	
		
			
				|  |  |  								PlatformCashAccountDetailTypeEnum.REWARDS, null, DealStatusEnum.SUCCESS, "分部奖励");
 | 
	
		
			
				|  |  |  					}
 |