Browse Source

feat:老师列表

Joburgess 4 years ago
parent
commit
d8ba94fd5c

+ 36 - 33
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -543,18 +543,6 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			Set<Integer> organIds = rows.stream().map(e -> e.getTeacherOrganId()).collect(Collectors.toSet());
 			Map<Integer,String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMapList(organIds));
 
-			LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
-			LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
-			List<TeacherExercisesServiceDto> teacherExercisesServiceSituations = studentExtracurricularExercisesSituationDao.findTeacherExercisesServiceSituations(monDayDate.toString(), new ArrayList<>(teachers));
-			Map<Integer, TeacherExercisesServiceDto> teacherServiceMap = new HashMap<>();
-			if(!CollectionUtils.isEmpty(teacherExercisesServiceSituations)){
-				teacherServiceMap = teacherExercisesServiceSituations.stream().collect(Collectors.toMap(TeacherExercisesServiceDto::getTeacherId, t -> t));
-			}
-
-			Map<Integer,String> operatingStudentsNum = MapUtil.convertMybatisMap(studentDao.getTeacherOperatingStudentsNum(teacherIds));
-			Map<Integer,String> practiceStudentsNum = MapUtil.convertMybatisMap(studentDao.getBuyNums(teacherIds, GroupType.PRACTICE));
-			Map<Integer,String> vipStudentsNum = MapUtil.convertMybatisMap(studentDao.getBuyNums(teacherIds, GroupType.VIP));
-			Map<Integer,String> practiceAndVipStudentsNum = MapUtil.convertMybatisMap(studentDao.getPracticeAndVipNums(teacherIds));
 
 			for (Teacher e : rows) {
 				e.setSubjectName(subjectDao.findBySubIds(e.getSubjectId()));
@@ -566,26 +554,6 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				e.setVipNum(num == null?0:num);
 				Integer demoNum = demoNumMap.get(e.getId());
 				e.setDemoNum(demoNum == null?0:demoNum);
-
-				TeacherExercisesServiceDto teacherService = teacherServiceMap.get(e.getId());
-				if(Objects.nonNull(teacherService)){
-					BigDecimal serviceIndex = new BigDecimal(teacherService.getActualExercisesNum()).multiply(new BigDecimal(100)).divide(new BigDecimal(teacherService.getExpectExercisesNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
-					e.setServiceIndex(serviceIndex);
-				}else{
-					e.setServiceIndex(BigDecimal.ZERO);
-				}
-				//运营指标
-				String studentNum = operatingStudentsNum.get(e.getId());
-				if(studentNum != null){
-					String practiceNum = practiceStudentsNum.get(e.getId()) ==null ? "0" : practiceStudentsNum.get(e.getId());
-					String vipNum = vipStudentsNum.get(e.getId()) ==null ? "0" : vipStudentsNum.get(e.getId());
-					String practiceAndVipNum = practiceAndVipStudentsNum.get(e.getId()) ==null ? "0" : practiceAndVipStudentsNum.get(e.getId());
-					int allNum = Integer.parseInt(practiceNum) + Integer.parseInt(vipNum) - Integer.parseInt(practiceAndVipNum);
-					BigDecimal operatingIndex = new BigDecimal(allNum).multiply(new BigDecimal(100)).divide(new BigDecimal(studentNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
-					e.setOperatingIndex(operatingIndex);
-				}else {
-					e.setOperatingIndex(BigDecimal.ZERO);
-				}
 			}
 		}
 		return pageInfo;
@@ -595,6 +563,19 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	public Teacher getDetail(Integer id) {
 		Teacher teacher = teacherDao.get(id);
 		if(teacher != null){
+			LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
+			LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
+			List<TeacherExercisesServiceDto> teacherExercisesServiceSituations = studentExtracurricularExercisesSituationDao.findTeacherExercisesServiceSituations(monDayDate.toString(), Arrays.asList(id));
+			Map<Integer, TeacherExercisesServiceDto> teacherServiceMap = new HashMap<>();
+			if(!CollectionUtils.isEmpty(teacherExercisesServiceSituations)){
+				teacherServiceMap = teacherExercisesServiceSituations.stream().collect(Collectors.toMap(TeacherExercisesServiceDto::getTeacherId, t -> t));
+			}
+
+			Map<Integer,String> operatingStudentsNum = MapUtil.convertMybatisMap(studentDao.getTeacherOperatingStudentsNum(id.toString()));
+			Map<Integer,String> practiceStudentsNum = MapUtil.convertMybatisMap(studentDao.getBuyNums(id.toString(), GroupType.PRACTICE));
+			Map<Integer,String> vipStudentsNum = MapUtil.convertMybatisMap(studentDao.getBuyNums(id.toString(), GroupType.VIP));
+			Map<Integer,String> practiceAndVipStudentsNum = MapUtil.convertMybatisMap(studentDao.getPracticeAndVipNums(id.toString()));
+
 			//获取老师教学点列表
 			List<School> teacherSchools = schoolDao.findByUserId(id);
 			teacher.setTeacherSchools(teacherSchools);
@@ -605,12 +586,34 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				teacher.setFlowOrganRange(StringUtils.join(organNames,","));
 			}
 			if(teacher.getTeacherOrganId() != null){
-				teacher.setOrganName(organizationDao.get(teacher.getTeacherOrganId()).getName());
+				Organization organization = organizationDao.get(teacher.getTeacherOrganId());
+				teacher.setOrganName(Objects.nonNull(organization)?organization.getName():null);
 			}
 			//专业技能
 			if(StringUtils.isNotEmpty(teacher.getSubjectId())){
 				teacher.setSubjectName(subjectDao.findBySubIds(teacher.getSubjectId()));
 			}
+
+			//服务指标
+			TeacherExercisesServiceDto teacherService = teacherServiceMap.get(id);
+			if(Objects.nonNull(teacherService)){
+				BigDecimal serviceIndex = new BigDecimal(teacherService.getActualExercisesNum()).multiply(new BigDecimal(100)).divide(new BigDecimal(teacherService.getExpectExercisesNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
+				teacher.setServiceIndex(serviceIndex);
+			}else{
+				teacher.setServiceIndex(BigDecimal.ZERO);
+			}
+			//运营指标
+			String studentNum = operatingStudentsNum.get(id);
+			if(studentNum != null){
+				String practiceNum = practiceStudentsNum.get(id) ==null ? "0" : practiceStudentsNum.get(id);
+				String vipNum = vipStudentsNum.get(id) ==null ? "0" : vipStudentsNum.get(id);
+				String practiceAndVipNum = practiceAndVipStudentsNum.get(id) ==null ? "0" : practiceAndVipStudentsNum.get(id);
+				int allNum = Integer.parseInt(practiceNum) + Integer.parseInt(vipNum) - Integer.parseInt(practiceAndVipNum);
+				BigDecimal operatingIndex = new BigDecimal(allNum).multiply(new BigDecimal(100)).divide(new BigDecimal(studentNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
+				teacher.setOperatingIndex(operatingIndex);
+			}else {
+				teacher.setOperatingIndex(BigDecimal.ZERO);
+			}
 		}
 		return teacher;
 	}