| 
					
				 | 
			
			
				@@ -1583,37 +1583,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, "分部奖励"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 |