|
@@ -1,15 +1,127 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.COMM;
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.VIP;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.time.Duration;
|
|
|
+import java.time.Instant;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
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.biz.dal.dao.*;
|
|
|
-import com.ym.mec.biz.dal.dto.*;
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
-import com.ym.mec.biz.dal.enums.*;
|
|
|
-import com.ym.mec.biz.dal.page.*;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupRelationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CoursesGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.GroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.PracticeGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SchoolDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentApplyRefundsDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
+import com.ym.mec.biz.dal.dao.VipGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dto.ClassGroup4MixDto;
|
|
|
+import com.ym.mec.biz.dal.dto.ClassGroupImGroupDto;
|
|
|
+import com.ym.mec.biz.dal.dto.ClassGroupTeacherMapDto;
|
|
|
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
|
|
|
+import com.ym.mec.biz.dal.dto.CourseListDto;
|
|
|
+import com.ym.mec.biz.dal.dto.CourseTimeDto;
|
|
|
+import com.ym.mec.biz.dal.dto.HighClassGroupDto;
|
|
|
+import com.ym.mec.biz.dal.dto.MusicGroupClassGroupDto;
|
|
|
+import com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentAttendanceViewDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentPayInfoDto;
|
|
|
+import com.ym.mec.biz.dal.dto.SuperClassGroupDto;
|
|
|
+import com.ym.mec.biz.dal.dto.TeacherClassGroupDto;
|
|
|
+import com.ym.mec.biz.dal.dto.TeacherClassHeadInfo;
|
|
|
+import com.ym.mec.biz.dal.dto.TeacherMusicClassInfoDto;
|
|
|
+import com.ym.mec.biz.dal.dto.TeacherVipClassInfoDto;
|
|
|
+import com.ym.mec.biz.dal.dto.UserMusicGroupQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupRelation;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
|
|
|
+import com.ym.mec.biz.dal.entity.CoursesGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.Group;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
|
|
|
+import com.ym.mec.biz.dal.entity.PracticeGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
+import com.ym.mec.biz.dal.entity.Subject;
|
|
|
+import com.ym.mec.biz.dal.entity.SysConfig;
|
|
|
+import com.ym.mec.biz.dal.entity.Teacher;
|
|
|
+import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
|
|
|
+import com.ym.mec.biz.dal.entity.VipGroup;
|
|
|
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
+import com.ym.mec.biz.dal.page.ClassGroupQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.TeacherMusicClassQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.VipClassQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
|
|
|
+import com.ym.mec.biz.service.ClassGroupRelationService;
|
|
|
+import com.ym.mec.biz.service.ClassGroupService;
|
|
|
+import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
|
|
|
+import com.ym.mec.biz.service.CourseScheduleService;
|
|
|
+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
|
|
|
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
|
|
|
+import com.ym.mec.biz.service.StudentRegistrationService;
|
|
|
+import com.ym.mec.biz.service.SubjectService;
|
|
|
+import com.ym.mec.biz.service.SysConfigService;
|
|
|
+import com.ym.mec.biz.service.TeacherDefaultMusicGroupSalaryService;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
@@ -26,22 +138,6 @@ import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateConvertor;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
|
|
|
-import net.bytebuddy.implementation.bytecode.Throw;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Propagation;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.time.*;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.*;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-import static com.ym.mec.biz.dal.enums.GroupType.*;
|
|
|
-
|
|
|
@Service
|
|
|
public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
|
|
|
|
|
@@ -1550,11 +1646,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
if(teacherDefaultMusicGroupSalary == null){
|
|
|
throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
}
|
|
|
- if ((teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary() == null
|
|
|
+ if((classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE) ||
|
|
|
+ classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MUSIC_NETWORK))&&
|
|
|
+ StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())){
|
|
|
+ throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
+ }else if(teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary() == null
|
|
|
|| teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary() == null
|
|
|
|| teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() == null
|
|
|
- || teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() == null)
|
|
|
- && teacherDefaultMusicGroupSalary.getSalaryRuleJson() == null) {
|
|
|
+ || teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() == null) {
|
|
|
throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
}
|
|
|
|
|
@@ -1853,10 +1952,25 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
|
|
|
|
|
|
+ Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
|
|
|
+ if(teacherDefaultMusicGroupSalary == null){
|
|
|
+ throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
+ }
|
|
|
+
|
|
|
+ if((classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE) ||
|
|
|
+ classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MUSIC_NETWORK))&&
|
|
|
+ StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())){
|
|
|
+ throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
+ }else if(teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary() == null
|
|
|
+ || teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary() == null
|
|
|
+ || teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() == null
|
|
|
+ || teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() == null) {
|
|
|
+ throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
+ }
|
|
|
+
|
|
|
//对应基准课酬
|
|
|
BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
|
|
|
|
|
|
- Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
|
|
|
SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
|
|
|
if(Objects.nonNull(teacher.getEntryDate())
|
|
|
&&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
|
|
@@ -2132,10 +2246,24 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
|
|
|
|
|
|
+ Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
|
|
|
+ if(teacherDefaultMusicGroupSalary == null){
|
|
|
+ throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
+ }
|
|
|
+ if((classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE) ||
|
|
|
+ classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MUSIC_NETWORK))&&
|
|
|
+ StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())){
|
|
|
+ throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
+ }else if(teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary() == null
|
|
|
+ || teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary() == null
|
|
|
+ || teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() == null
|
|
|
+ || teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() == null) {
|
|
|
+ throw new BizException("请设置"+teacher.getRealName()+"老师的"+classGroup4MixDto.getCourseType().getMsg()+"课酬");
|
|
|
+ }
|
|
|
+
|
|
|
//对应基准课酬
|
|
|
BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
|
|
|
|
|
|
- Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
|
|
|
SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
|
|
|
if(Objects.nonNull(teacher.getEntryDate())
|
|
|
&&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
|