|
@@ -2,27 +2,24 @@ package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.ym.mec.biz.dal.dao.ClassGroupDao;
|
|
import com.ym.mec.biz.dal.dao.ClassGroupDao;
|
|
import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
-import com.ym.mec.biz.dal.dto.ClassGroupTeachers;
|
|
|
|
-import com.ym.mec.biz.dal.dto.HighClassGroup;
|
|
|
|
-import com.ym.mec.biz.dal.dto.TeacherMusicClassInfoDto;
|
|
|
|
-import com.ym.mec.biz.dal.dto.TeacherVipClassInfoDto;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dto.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.page.VipClassQueryInfo;
|
|
import com.ym.mec.biz.dal.page.VipClassQueryInfo;
|
|
import com.ym.mec.biz.service.*;
|
|
import com.ym.mec.biz.service.*;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
|
+import com.ym.mec.common.entity.ImGroupModel;
|
|
import com.ym.mec.common.page.PageInfo;
|
|
import com.ym.mec.common.page.PageInfo;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
|
|
|
|
|
+import io.swagger.annotations.ApiImplicitParams;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.time.Instant;
|
|
|
|
-import java.time.LocalDate;
|
|
|
|
-import java.time.LocalDateTime;
|
|
|
|
-import java.time.ZoneId;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.time.*;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -44,6 +41,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
private CourseScheduleService courseScheduleService;
|
|
private CourseScheduleService courseScheduleService;
|
|
@Autowired
|
|
@Autowired
|
|
private StudentRegistrationService studentRegistrationService;
|
|
private StudentRegistrationService studentRegistrationService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ClassGroupTeacherSalaryService classGroupTeacherSalaryService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public BaseDAO<Integer, ClassGroup> getDAO() {
|
|
public BaseDAO<Integer, ClassGroup> getDAO() {
|
|
@@ -249,9 +248,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
@Override
|
|
@Override
|
|
public List<ClassGroupTeachers> getClassGroupAndTeachers(Integer musicGroupId) {
|
|
public List<ClassGroupTeachers> getClassGroupAndTeachers(Integer musicGroupId) {
|
|
List<ClassGroupTeachers> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId);
|
|
List<ClassGroupTeachers> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId);
|
|
- List<ClassGroup> classGroupList = Collections.unmodifiableList(classGroupAndTeachersList);
|
|
|
|
|
|
|
|
- List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupList);
|
|
|
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
|
|
|
|
|
|
for (ClassGroupTeachers classGroupAndTeachers : classGroupAndTeachersList) {
|
|
for (ClassGroupTeachers classGroupAndTeachers : classGroupAndTeachersList) {
|
|
List<ClassGroupTeacherMapper> oneClassGroupTeacherMapperList = new ArrayList<>();
|
|
List<ClassGroupTeacherMapper> oneClassGroupTeacherMapperList = new ArrayList<>();
|
|
@@ -264,4 +262,72 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
}
|
|
}
|
|
return classGroupAndTeachersList;
|
|
return classGroupAndTeachersList;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<ClassGroupTeachers> getClassGroupAndTeacherSalary(Integer musicGroupId) {
|
|
|
|
+ //乐团班级及班级老师
|
|
|
|
+ List<ClassGroupTeachers> classGroupAndTeachers = getClassGroupAndTeachers(musicGroupId);
|
|
|
|
+ //乐团的课程计划
|
|
|
|
+ List<CourseSchedule> classGroupCourseSchedules = courseScheduleService.findClassGroupCourseSchedules(classGroupAndTeachers);
|
|
|
|
+
|
|
|
|
+ //获取乐团老师课酬
|
|
|
|
+ List<ClassGroupTeacherSalary> nowClassGroupTeacherSalaryList = classGroupTeacherSalaryService.findByMusicGroupId(musicGroupId);
|
|
|
|
+
|
|
|
|
+ //基础课时
|
|
|
|
+ BigDecimal baseDuration = new BigDecimal("30");
|
|
|
|
+ for (ClassGroupTeachers classGroupAndTeacher : classGroupAndTeachers) {
|
|
|
|
+
|
|
|
|
+ Set<Long> courseScheduleDurationSet = new HashSet<>();
|
|
|
|
+ for (CourseSchedule classGroupCourseSchedule : classGroupCourseSchedules) {
|
|
|
|
+ if (classGroupCourseSchedule.getClassGroupId().equals(classGroupAndTeacher.getId())) {
|
|
|
|
+ //课程时长
|
|
|
|
+ long duration = (classGroupCourseSchedule.getEndClassTime().getTime() - classGroupCourseSchedule.getStartClassTime().getTime()) / (1000 * 60);
|
|
|
|
+ courseScheduleDurationSet.add(duration);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取教师列表
|
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupAndTeacher.getClassGroupTeacherMapperList();
|
|
|
|
+
|
|
|
|
+ ArrayList<ClassGroupTeacherSalary> classGroupTeacherSalaryList = new ArrayList<>();
|
|
|
|
+ for (Long duration : courseScheduleDurationSet) {
|
|
|
|
+ THREE:
|
|
|
|
+ for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
|
|
|
|
+
|
|
|
|
+ //已经设置跳过计算
|
|
|
|
+ for (ClassGroupTeacherSalary classGroupTeacherSalary : nowClassGroupTeacherSalaryList) {
|
|
|
|
+ if (classGroupTeacherMapper.getClassGroupId().equals(classGroupTeacherSalary.getClassGroupId()) &&
|
|
|
|
+ classGroupTeacherMapper.getUserId().equals(classGroupTeacherSalary.getUserId()) &&
|
|
|
|
+ classGroupTeacherSalary.getDuration().equals(duration)
|
|
|
|
+ ) {
|
|
|
|
+ classGroupTeacherSalaryList.add(classGroupTeacherSalary);
|
|
|
|
+ continue THREE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ClassGroupTeacherSalary classGroupTeacherSalary = new ClassGroupTeacherSalary();
|
|
|
|
+ classGroupTeacherSalary.setMusicGroupId(classGroupTeacherMapper.getMusicGroupId());
|
|
|
|
+ classGroupTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
|
|
|
|
+ classGroupTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
|
|
|
|
+ classGroupTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
|
|
|
|
+ classGroupTeacherSalary.setDuration(duration.intValue());
|
|
|
|
+ BigDecimal salary = new BigDecimal(duration).divide(baseDuration).multiply(classGroupTeacherMapper.getSalary()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ classGroupTeacherSalary.setSalary(salary);
|
|
|
|
+ classGroupTeacherSalaryList.add(classGroupTeacherSalary);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //教师课酬列表
|
|
|
|
+ classGroupAndTeacher.setClassGroupTeacherSalaryList(classGroupTeacherSalaryList);
|
|
|
|
+ }
|
|
|
|
+ return classGroupAndTeachers;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<CourseListDto> queryCoursePage(Integer userId) {
|
|
|
|
+ return classGroupDao.queryCoursePage(userId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<ImGroupModel> queryUserGroups(Integer userId) {
|
|
|
|
+ return classGroupDao.queryUserGroups(userId);
|
|
|
|
+ }
|
|
}
|
|
}
|