|  | @@ -16,6 +16,7 @@ import java.util.Objects;
 | 
	
		
			
				|  |  |  import java.util.Set;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.page.*;
 | 
	
		
			
				|  |  |  import org.apache.commons.lang3.StringUtils;
 | 
	
	
		
			
				|  | @@ -30,20 +31,6 @@ import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  |  import com.ym.mec.auth.api.enums.YesOrNoEnum;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.ClassGroupDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.DemoGroupDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.ImGroupDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.ImUserFriendDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.MusicGroupDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.OrganizationDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.SchoolDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.StudentDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.SubjectDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.TeacherDao;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.CourseHomework;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.ImUserFriend;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.MusicGroup;
 | 
	
	
		
			
				|  | @@ -109,6 +96,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 | 
	
		
			
				|  |  |  	private ImUserFriendDao imUserFriendDao;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private RedisTemplate<String,String> redisTemplate;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private CloudTeacherDao cloudTeacherDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
	
		
			
				|  | @@ -781,4 +770,43 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 | 
	
		
			
				|  |  |  		pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  |  		return pageInfo;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public PageInfo<TeacherStudentDataDto> queryMemberStudentData(TeacherServeQueryInfo queryInfo) {
 | 
	
		
			
				|  |  | +		PageInfo<TeacherStudentDataDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 | 
	
		
			
				|  |  | +		Map<String, Object> params = new HashMap<String, Object>();
 | 
	
		
			
				|  |  | +		MapUtil.populateMap(params, queryInfo);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		List<TeacherStudentDataDto> dataList = new ArrayList<>();
 | 
	
		
			
				|  |  | +		int count = teacherDao.countMemberStudentData(params);
 | 
	
		
			
				|  |  | +		if (count > 0) {
 | 
	
		
			
				|  |  | +			pageInfo.setTotal(count);
 | 
	
		
			
				|  |  | +			params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  | +			dataList = teacherDao.queryMemberStudentData(params);
 | 
	
		
			
				|  |  | +			List<Integer> teacherIds = dataList.stream().map(TeacherStudentDataDto::getTeacherId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +			List<Map<Integer, Integer>> teachersMemberStudentNumMapList = cloudTeacherDao.getTeachersMemberStudentNum(teacherIds);
 | 
	
		
			
				|  |  | +			Map<Integer, Integer> teachersMemberStudentNumMap = new HashMap<>();
 | 
	
		
			
				|  |  | +			if(!CollectionUtils.isEmpty(teachersMemberStudentNumMapList)){
 | 
	
		
			
				|  |  | +				teachersMemberStudentNumMap = MapUtil.convertIntegerMap(teachersMemberStudentNumMapList);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			List<Map<Integer, Integer>> teacherExperienceMemberStudentNumMapList = studentDao.getTeacherExperienceMemberStudentNum(teacherIds);
 | 
	
		
			
				|  |  | +			Map<Integer, Integer> teacherExperienceMemberStudentNumMap = new HashMap<>();
 | 
	
		
			
				|  |  | +			if(!CollectionUtils.isEmpty(teacherExperienceMemberStudentNumMapList)){
 | 
	
		
			
				|  |  | +				teacherExperienceMemberStudentNumMap = MapUtil.convertIntegerMap(teacherExperienceMemberStudentNumMapList);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			for (TeacherStudentDataDto teacherStudentDataDto : dataList) {
 | 
	
		
			
				|  |  | +				if(teachersMemberStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())){
 | 
	
		
			
				|  |  | +					teacherStudentDataDto.setVipStudentNum(teachersMemberStudentNumMap.get(teacherStudentDataDto.getTeacherId().toString()));
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if(teacherExperienceMemberStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())){
 | 
	
		
			
				|  |  | +					teacherStudentDataDto.seteVipStudentNum(teacherExperienceMemberStudentNumMap.get(teacherStudentDataDto.getTeacherId().toString()));
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if(teacherStudentDataDto.getVipStudentNum()>0&&teacherStudentDataDto.getTotalStudentNum()>0){
 | 
	
		
			
				|  |  | +					teacherStudentDataDto.setVipStudentDuty(new BigDecimal(teacherStudentDataDto.getVipStudentNum()).divide(new BigDecimal(teacherStudentDataDto.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  | +		return pageInfo;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  }
 |