|
@@ -34,6 +34,8 @@ import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.timevale.tgtext.text.pdf.df.*;
|
|
|
+
|
|
|
@Service
|
|
|
public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
|
|
|
|
|
@@ -73,6 +75,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
|
|
|
@Autowired
|
|
|
private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
|
|
|
+ @Autowired
|
|
|
+ private StudentRegistrationService studentRegistrationService;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Integer, ClassGroup> getDAO() {
|
|
@@ -135,7 +139,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
classGroupStudentList.add(classGroupStudentMapper);
|
|
|
StudentRegistration studentRegistration = new StudentRegistration();
|
|
|
- studentRegistration.setClassGroupId(classGroup.getId().toString());
|
|
|
+ studentRegistration.setClassGroupId(classGroup.getId());
|
|
|
studentRegistration.setUserId(Integer.getInteger(userId));
|
|
|
studentRegistration.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
studentRegistrationDao.updateByUserIdAndMusicGroupId(studentRegistration);
|
|
@@ -335,8 +339,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId, String type,Integer classGroupId) {
|
|
|
- List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId, type,classGroupId);
|
|
|
+ public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId, String type, Integer classGroupId) {
|
|
|
+ List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId, type, classGroupId);
|
|
|
|
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
|
|
|
|
|
@@ -353,9 +357,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type,Integer classGroupId) throws Exception {
|
|
|
+ public List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type, Integer classGroupId) throws Exception {
|
|
|
//乐团班级及班级老师
|
|
|
- List<ClassGroupTeachersDto> classGroupAndTeachers = getClassGroupAndTeachers(musicGroupId, "NORMAL,MIX,HIGH",classGroupId);
|
|
|
+ List<ClassGroupTeachersDto> classGroupAndTeachers = getClassGroupAndTeachers(musicGroupId, "NORMAL,MIX,HIGH", classGroupId);
|
|
|
|
|
|
for (ClassGroupTeachersDto classGroupAndTeacher : classGroupAndTeachers) {
|
|
|
//班级的教师列表
|
|
@@ -709,8 +713,250 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public PageInfo<MusicGroupClassGroupDto> queryMusicGroupClassGroup(QueryInfo queryInfo) {
|
|
|
+ PageInfo<MusicGroupClassGroupDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+ List<MusicGroupClassGroupDto> dataList = null;
|
|
|
+ int count = classGroupDao.countMusicGroupClassGroup(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = classGroupDao.queryMusicGroupClassGroup(params);
|
|
|
+ Set<Integer> classGroups = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
|
|
|
+ String join = StringUtils.join(classGroups, ",");
|
|
|
+ //获取主教老师
|
|
|
+ Map<Integer, String> masterTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "BISHOP"));
|
|
|
+ //获取助教老师
|
|
|
+ Map<Integer, String> subTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"));
|
|
|
+ //获取在读人数
|
|
|
+ Map<Integer, String> studyNums = MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join));
|
|
|
+ //获取退班人数
|
|
|
+ Map<Integer, String> quitNums = MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join));
|
|
|
+ dataList.forEach(e -> {
|
|
|
+ e.setMasterTeacher(masterTeachers.get(e.getClassGroupId()));
|
|
|
+ e.setSubTeacher(subTeachers.get(e.getClassGroupId()));
|
|
|
+ e.setStudyNum(studyNums.get(e.getClassGroupId()));
|
|
|
+ e.setQuitNum(quitNums.get(e.getClassGroupId()));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageInfo<MusicGroupCourseScheduleDto> queryMusicGroupCourseSchedule(queryMusicGroupCourseScheduleQueryInfo queryInfo) {
|
|
|
+ PageInfo<MusicGroupCourseScheduleDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+ List<MusicGroupCourseScheduleDto> dataList = null;
|
|
|
+ int count = classGroupDao.countMusicGroupCourseSchedule(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = classGroupDao.queryMusicGroupCourseSchedule(params);
|
|
|
+ //获取当前合奏班班级编号列表
|
|
|
+ Set<Integer> mixClassGroupIds = dataList.stream().map(e -> e.getMixClassGroupId()).collect(Collectors.toSet());
|
|
|
+ String mixClassGroupIdsStr = StringUtils.join(mixClassGroupIds, ",");
|
|
|
+ //所有课程编号的列表
|
|
|
+ List<Integer> couseScheduleIds = dataList.stream().map(MusicGroupCourseScheduleDto::getCourseScheduleId).distinct().collect(Collectors.toList());
|
|
|
+ //获取合奏班名称
|
|
|
+ Map<Integer, String> classGroupNames = MapUtil.convertMybatisMap(classGroupDao.findNameById(mixClassGroupIdsStr));
|
|
|
+
|
|
|
+ //主教老师
|
|
|
+ List<CourseScheduleTeacherSalary> bishopTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "BISHOP");
|
|
|
+ Map<Long, CourseScheduleTeacherSalary> courseScheduleBishopTeacherMaps = bishopTeachers.stream().collect(Collectors.toMap(CourseScheduleTeacherSalary::getCourseScheduleId, courseScheduleTeacherSalary -> courseScheduleTeacherSalary));
|
|
|
+
|
|
|
+ //助教老师
|
|
|
+ List<CourseScheduleTeacherSalary> teachingTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "TEACHING");
|
|
|
+ Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleTeachingTeacherMaps = teachingTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
|
|
|
+
|
|
|
+ dataList.forEach(e -> {
|
|
|
+ e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
|
|
|
+ CourseScheduleTeacherSalary currentBishopTeacher = courseScheduleBishopTeacherMaps.get(e.getCourseScheduleId().longValue());
|
|
|
+ if (!Objects.isNull(currentBishopTeacher)) {
|
|
|
+ e.setMasterTeacherId(currentBishopTeacher.getUserId());
|
|
|
+ e.setMasterTeacherName(currentBishopTeacher.getUserName());
|
|
|
+ e.setTeacherNum(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(e.getCourseScheduleId().longValue());
|
|
|
+ if (CollectionUtils.isEmpty(currentCourseTeachingTeachers)) {
|
|
|
+ e.setTeachingTeachers(new ArrayList<>());
|
|
|
+ } else {
|
|
|
+ e.setTeachingTeachers(currentCourseTeachingTeachers);
|
|
|
+ e.setTeacherNum(e.getTeacherNum() == null ? 0 : e.getTeacherNum() + currentCourseTeachingTeachers.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean batchIncreaseClassTimes(List<Integer> classGroupList) {
|
|
|
+ classGroupDao.batchIncreaseClassTimes(classGroupList);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public ClassGroup classGroupAdjust(ClassGroupAdjustDto classGroupAdjustDto) throws Exception {
|
|
|
+ public ClassGroup classGroupAdjust(ClassGroup4MixDto classGroup4MixDto) throws Exception {
|
|
|
+ Date date = new Date();
|
|
|
+ String musicGroupId = classGroup4MixDto.getMusicGroupId();
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ if (musicGroup != null) {
|
|
|
+ throw new Exception("乐团不存在");
|
|
|
+ }
|
|
|
+ Integer schoolId = musicGroup.getSchoolId();
|
|
|
+
|
|
|
+ List<Integer> subjectIdSet = new ArrayList<>();
|
|
|
+
|
|
|
+ List<Integer> studentIdList = classGroup4MixDto.getStudents();
|
|
|
+ List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
|
|
|
+ for (StudentRegistration student : studentList) {
|
|
|
+ subjectIdSet.add(student.getSubjectId());
|
|
|
+ }
|
|
|
+ List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdSet);
|
|
|
+
|
|
|
+ String subjectIds = "";
|
|
|
+ String subjectNames = "";
|
|
|
+ for (Subject subject : subjectList) {
|
|
|
+ subjectIds += subject.getId() + ",";
|
|
|
+ subjectNames += subject.getName() + "/";
|
|
|
+ }
|
|
|
+
|
|
|
+ subjectIds = subjectIds.substring(0, subjectIds.length() - 1);
|
|
|
+ subjectNames = subjectNames.substring(0, subjectNames.length() - 1);
|
|
|
+
|
|
|
+
|
|
|
+ //1、新建班级
|
|
|
+ ClassGroup classGroup = new ClassGroup();
|
|
|
+ classGroup.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
|
|
|
+ classGroup.setSubjectIdList(subjectIds);
|
|
|
+ classGroup.setName(classGroup4MixDto.getClassGroupName());
|
|
|
+ classGroup.setExpectStudentNum(studentList.size());
|
|
|
+ classGroup.setStudentNum(studentList.size());
|
|
|
+ classGroup.setType(ClassGroupTypeEnum.NORMAL);
|
|
|
+ classGroup.setDelFlag(YesOrNoEnum.NO);
|
|
|
+ classGroup.setCreateTime(date);
|
|
|
+ classGroup.setUpdateTime(date);
|
|
|
+ classGroupDao.insert(classGroup);
|
|
|
+
|
|
|
+
|
|
|
+ //2、将学生加入新班级(学生注册表,关联表
|
|
|
+ List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
|
|
|
+ for (StudentRegistration studentRegistration : studentList) {
|
|
|
+ studentRegistration.setClassGroupId(classGroup.getId());
|
|
|
+ studentRegistrationService.update(studentRegistration);
|
|
|
+
|
|
|
+ ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
|
|
|
+ classGroupStudentMapper.setClassGroupId(classGroup.getId());
|
|
|
+ classGroupStudentMapper.setUserId(studentRegistration.getUserId());
|
|
|
+ classGroupStudentMapper.setCreateTime(date);
|
|
|
+ classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
+
|
|
|
+ classGroupStudentMapperList.add(classGroupStudentMapper);
|
|
|
+ }
|
|
|
+ classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
|
|
|
+
|
|
|
+
|
|
|
+ //3、将老师加入关联关系
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
|
|
|
+
|
|
|
+ //课时长度
|
|
|
+ long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getStartClassTime() + ":00"),
|
|
|
+ LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getEndClassTime() + ":00"))
|
|
|
+ .toMinutes();
|
|
|
+
|
|
|
+ for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
|
|
|
+ classGroupTeacherMapper.setClassGroupId(classGroup.getId());
|
|
|
+ classGroupTeacherMapper.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
|
|
|
+
|
|
|
+ List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), "SINGLE", musicGroup.getSettlementType());
|
|
|
+ BigDecimal salary = new BigDecimal("0");
|
|
|
+ for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) {
|
|
|
+ //对应基准课酬
|
|
|
+ BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
|
|
|
+ //基准课酬
|
|
|
+ if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
|
|
|
+ salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //阶梯课酬
|
|
|
+ if (classCourseDuration >= teacherDefaultMusicGroupSalary.getDurationMin() && classCourseDuration <= teacherDefaultMusicGroupSalary.getDurationMin()) {
|
|
|
+ salary = baseSalary;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ classGroupTeacherMapper.setSalary(salary);
|
|
|
+ }
|
|
|
+ classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
|
|
|
+
|
|
|
+ //5、插入班级排课信息
|
|
|
+ LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
|
|
|
+
|
|
|
+ //计算每节课的课酬
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
|
+
|
|
|
+ int times = 0;
|
|
|
+ while (true) {
|
|
|
+ int dayOfWeek = now.getDayOfWeek().getValue();
|
|
|
+ if (classGroup4MixDto.getDayOfWeek().equals(dayOfWeek)) {
|
|
|
+ Instant instant = now.atZone(ZoneId.systemDefault()).toInstant();
|
|
|
+ Date classDate = Date.from(instant);
|
|
|
+ String startClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getStartClassTime() + ":00";
|
|
|
+ String endClassTime = DateUtil.getDate(classDate) + " " + classGroup4MixDto.getEndClassTime() + ":00";
|
|
|
+
|
|
|
+ CourseSchedule courseSchedule = new CourseSchedule();
|
|
|
+ courseSchedule.setSchoolId(schoolId);
|
|
|
+ courseSchedule.setClassGroupId(classGroup.getId());
|
|
|
+ courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
+ courseSchedule.setClassDate(classDate);
|
|
|
+ courseSchedule.setStartClassTime(DateUtil.stringToDate(startClassTime));
|
|
|
+ courseSchedule.setEndClassTime(DateUtil.stringToDate(endClassTime));
|
|
|
+ courseSchedule.setCreateTime(date);
|
|
|
+ courseSchedule.setUpdateTime(date);
|
|
|
+ courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
|
|
|
+ courseSchedule.setType(CourseSchedule.CourseScheduleType.SINGLE);
|
|
|
+ courseSchedule.setName(subjectNames + "-" + CourseSchedule.CourseScheduleType.SINGLE.getMsg());
|
|
|
+
|
|
|
+ courseScheduleDao.insert(courseSchedule);
|
|
|
+
|
|
|
+ times++;
|
|
|
+
|
|
|
+ for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
|
|
|
+ CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
|
+ courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
|
+ courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
|
|
|
+ courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(classGroupTeacherMapper.getSalary());
|
|
|
+ courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
|
+ courseScheduleTeacherSalary.setCreateTime(date);
|
|
|
+ courseScheduleTeacherSalary.setUpdateTime(date);
|
|
|
+ courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ now = now.plusDays(1);
|
|
|
+ if (classGroup4MixDto.getCourseTimes().equals(times)) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
|
|
|
+
|
|
|
+ //6、
|
|
|
+ return classGroup;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ClassGroup classGroupAdjustB(ClassGroupAdjustDto classGroupAdjustDto) throws Exception {
|
|
|
Date date = new Date();
|
|
|
MusicGroup musicGroup = musicGroupDao.get(classGroupAdjustDto.getMusicGroupId());
|
|
|
if (musicGroup != null) {
|
|
@@ -845,98 +1091,4 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
|
|
|
return classGroup;
|
|
|
}
|
|
|
-
|
|
|
- @Override
|
|
|
- public PageInfo<MusicGroupClassGroupDto> queryMusicGroupClassGroup(QueryInfo queryInfo) {
|
|
|
- PageInfo<MusicGroupClassGroupDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- MapUtil.populateMap(params, queryInfo);
|
|
|
- List<MusicGroupClassGroupDto> dataList = null;
|
|
|
- int count = classGroupDao.countMusicGroupClassGroup(params);
|
|
|
- if (count > 0) {
|
|
|
- pageInfo.setTotal(count);
|
|
|
- params.put("offset", pageInfo.getOffset());
|
|
|
- dataList = classGroupDao.queryMusicGroupClassGroup(params);
|
|
|
- Set<Integer> classGroups = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
|
|
|
- String join = StringUtils.join(classGroups, ",");
|
|
|
- //获取主教老师
|
|
|
- Map<Integer,String> masterTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "BISHOP"));
|
|
|
- //获取助教老师
|
|
|
- Map<Integer,String> subTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"));
|
|
|
- //获取在读人数
|
|
|
- Map<Integer,String> studyNums = MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join));
|
|
|
- //获取退班人数
|
|
|
- Map<Integer,String> quitNums = MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join));
|
|
|
- dataList.forEach(e->{
|
|
|
- e.setMasterTeacher(masterTeachers.get(e.getClassGroupId()));
|
|
|
- e.setSubTeacher(subTeachers.get(e.getClassGroupId()));
|
|
|
- e.setStudyNum(studyNums.get(e.getClassGroupId()));
|
|
|
- e.setQuitNum(quitNums.get(e.getClassGroupId()));
|
|
|
- });
|
|
|
- }
|
|
|
- if (count == 0) {
|
|
|
- dataList = new ArrayList<>();
|
|
|
- }
|
|
|
- pageInfo.setRows(dataList);
|
|
|
- return pageInfo;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public PageInfo<MusicGroupCourseScheduleDto> queryMusicGroupCourseSchedule(queryMusicGroupCourseScheduleQueryInfo queryInfo) {
|
|
|
- PageInfo<MusicGroupCourseScheduleDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- MapUtil.populateMap(params, queryInfo);
|
|
|
- List<MusicGroupCourseScheduleDto> dataList = null;
|
|
|
- int count = classGroupDao.countMusicGroupCourseSchedule(params);
|
|
|
- if (count > 0) {
|
|
|
- pageInfo.setTotal(count);
|
|
|
- params.put("offset", pageInfo.getOffset());
|
|
|
- dataList = classGroupDao.queryMusicGroupCourseSchedule(params);
|
|
|
- //获取当前合奏班班级编号列表
|
|
|
- Set<Integer> mixClassGroupIds = dataList.stream().map(e -> e.getMixClassGroupId()).collect(Collectors.toSet());
|
|
|
- String mixClassGroupIdsStr = StringUtils.join(mixClassGroupIds, ",");
|
|
|
- //所有课程编号的列表
|
|
|
- List<Integer> couseScheduleIds = dataList.stream().map(MusicGroupCourseScheduleDto::getCourseScheduleId).distinct().collect(Collectors.toList());
|
|
|
- //获取合奏班名称
|
|
|
- Map<Integer,String> classGroupNames = MapUtil.convertMybatisMap(classGroupDao.findNameById(mixClassGroupIdsStr));
|
|
|
-
|
|
|
- //主教老师
|
|
|
- List<CourseScheduleTeacherSalary> bishopTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "BISHOP");
|
|
|
- Map<Long, CourseScheduleTeacherSalary> courseScheduleBishopTeacherMaps = bishopTeachers.stream().collect(Collectors.toMap(CourseScheduleTeacherSalary::getCourseScheduleId, courseScheduleTeacherSalary -> courseScheduleTeacherSalary));
|
|
|
-
|
|
|
- //助教老师
|
|
|
- List<CourseScheduleTeacherSalary> teachingTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "TEACHING");
|
|
|
- Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleTeachingTeacherMaps=teachingTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
|
|
|
-
|
|
|
- dataList.forEach(e->{
|
|
|
- e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
|
|
|
- CourseScheduleTeacherSalary currentBishopTeacher = courseScheduleBishopTeacherMaps.get(e.getCourseScheduleId().longValue());
|
|
|
- if(!Objects.isNull(currentBishopTeacher)){
|
|
|
- e.setMasterTeacherId(currentBishopTeacher.getUserId());
|
|
|
- e.setMasterTeacherName(currentBishopTeacher.getUserName());
|
|
|
- e.setTeacherNum(1);
|
|
|
- }
|
|
|
-
|
|
|
- List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(e.getCourseScheduleId().longValue());
|
|
|
- if(CollectionUtils.isEmpty(currentCourseTeachingTeachers)){
|
|
|
- e.setTeachingTeachers(new ArrayList<>());
|
|
|
- }else{
|
|
|
- e.setTeachingTeachers(currentCourseTeachingTeachers);
|
|
|
- e.setTeacherNum(e.getTeacherNum()==null?0:e.getTeacherNum() + currentCourseTeachingTeachers.size());
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
- }
|
|
|
- if (count == 0) {
|
|
|
- dataList = new ArrayList<>();
|
|
|
- }
|
|
|
- pageInfo.setRows(dataList);
|
|
|
- return pageInfo;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean batchIncreaseClassTimes(List<Integer> classGroupList) {
|
|
|
- classGroupDao.batchIncreaseClassTimes(classGroupList);
|
|
|
- return true;
|
|
|
- }
|
|
|
}
|