|
|
@@ -1,16 +1,76 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+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 com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
+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.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.RemainCourseTypeDurationDto;
|
|
|
+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.CourseSchedule.CourseScheduleType;
|
|
|
-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.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.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
|
@@ -25,18 +85,6 @@ import com.ym.mec.im.ImFeignService;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateConvertor;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
-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.*;
|
|
|
|
|
|
@@ -206,7 +254,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupStudentMapper.setUserId(Integer.parseInt(userId));
|
|
|
classGroupStudentMapper.setCreateTime(date);
|
|
|
classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
- classGroupStudentMapper.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroupStudentMapper.setGroupType(MUSIC);
|
|
|
classGroupStudentList.add(classGroupStudentMapper);
|
|
|
|
|
|
StudentRegistration studentRegistration = new StudentRegistration();
|
|
|
@@ -291,7 +339,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupStudentMapper.setUserId(Integer.parseInt(userId));
|
|
|
classGroupStudentMapper.setCreateTime(date);
|
|
|
classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
- classGroupStudentMapper.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroupStudentMapper.setGroupType(MUSIC);
|
|
|
classGroupStudentList.add(classGroupStudentMapper);
|
|
|
|
|
|
StudentRegistration studentRegistration = new StudentRegistration();
|
|
|
@@ -331,7 +379,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroup.setSubjectIdList(subjectIds);
|
|
|
classGroup.setName(name);
|
|
|
classGroup.setType(ClassGroupTypeEnum.MIX);
|
|
|
- classGroup.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroup.setGroupType(MUSIC);
|
|
|
classGroup.setExpectStudentNum(studentNum);
|
|
|
classGroup.setStudentNum(studentNum);
|
|
|
classGroup.setCreateTime(date);
|
|
|
@@ -351,7 +399,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
mixClassGroupStudentMapper.setUserId(classGroupStudentMapper.getUserId());
|
|
|
mixClassGroupStudentMapper.setCreateTime(date);
|
|
|
mixClassGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
- mixClassGroupStudentMapper.setGroupType(GroupType.MUSIC);
|
|
|
+ mixClassGroupStudentMapper.setGroupType(MUSIC);
|
|
|
mixClassGroupStudentMappers.add(mixClassGroupStudentMapper);
|
|
|
|
|
|
userIdList.add(classGroupStudentMapper.getUserId());
|
|
|
@@ -405,7 +453,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupTeacherMapperDao.delClassGroupTeacherMapper(classGroupIds);
|
|
|
|
|
|
List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupIds,
|
|
|
- GroupType.MUSIC);
|
|
|
+ MUSIC);
|
|
|
|
|
|
if (classGroupNoStartCourseSchedules.size() > 0) {
|
|
|
List<Long> courseScheduleIds = classGroupNoStartCourseSchedules.stream().map(courseSchedule -> courseSchedule.getId())
|
|
|
@@ -436,7 +484,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
Date date;
|
|
|
date = new Date();
|
|
|
highClassGroup.setId(null);
|
|
|
- highClassGroup.setGroupType(GroupType.MUSIC);
|
|
|
+ highClassGroup.setGroupType(MUSIC);
|
|
|
highClassGroup.setCreateTime(date);
|
|
|
highClassGroup.setUpdateTime(date);
|
|
|
highClassGroup.setType(ClassGroupTypeEnum.HIGH);
|
|
|
@@ -450,7 +498,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupTeacherMapper.setClassGroupId(highClassGroup.getId());
|
|
|
classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
|
|
|
classGroupTeacherMapper.setUserId(highClassGroup.getUserId());
|
|
|
- classGroupTeacherMapper.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroupTeacherMapper.setGroupType(MUSIC);
|
|
|
classGroupTeacherMapper.setCreateTime(date);
|
|
|
classGroupTeacherMapper.setUpdateTime(date);
|
|
|
classGroupTeacherMapperList.add(classGroupTeacherMapper);
|
|
|
@@ -500,7 +548,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseSchedule.setUpdateTime(date);
|
|
|
courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
|
|
|
courseSchedule.setType(CourseSchedule.CourseScheduleType.HIGH);
|
|
|
- courseSchedule.setGroupType(GroupType.MUSIC);
|
|
|
+ courseSchedule.setGroupType(MUSIC);
|
|
|
courseSchedule.setName(courseScheduleName + "-" + CourseSchedule.CourseScheduleType.HIGH.getMsg());
|
|
|
courseSchedule.setOrganId(musicGroup.getOrganId());
|
|
|
courseScheduleList.add(courseSchedule);
|
|
|
@@ -731,8 +779,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
Set<String> vipIds = vipCourses.stream().map(CourseListDto::getVipId).collect(Collectors.toSet());
|
|
|
Map<String, String> vipStuNames = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP"));
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.MUSIC))) {
|
|
|
- musicGroupIds = typeGroupMap.get(GroupType.MUSIC).stream().map(Group::getId).collect(Collectors.toList());
|
|
|
+ if (!CollectionUtils.isEmpty(typeGroupMap.get(MUSIC))) {
|
|
|
+ musicGroupIds = typeGroupMap.get(MUSIC).stream().map(Group::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
musicGroupIds = null;
|
|
|
}
|
|
|
@@ -780,8 +828,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseListDtos.addAll(practiceCourse);
|
|
|
//检测对应乐团是否已申请退费
|
|
|
List<Map<String, Integer>> isApplyMaps;
|
|
|
- if (!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.MUSIC))) {
|
|
|
- musicGroupIds = typeGroupMap.get(GroupType.MUSIC).stream().map(Group::getId).collect(Collectors.toList());
|
|
|
+ if (!CollectionUtils.isEmpty(typeGroupMap.get(MUSIC))) {
|
|
|
+ musicGroupIds = typeGroupMap.get(MUSIC).stream().map(Group::getId).collect(Collectors.toList());
|
|
|
} else {
|
|
|
musicGroupIds = null;
|
|
|
}
|
|
|
@@ -1272,7 +1320,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
|
|
|
Map<Integer, Long> currentClassTimes;
|
|
|
Map<Integer, Long> noStartClassTimes = MapUtil.convertIntegerMap(courseScheduleDao.countCurrentNumByClassGroupId(classGroupIds, null));
|
|
|
- if (!type.equals(GroupType.MUSIC)) {
|
|
|
+ if (!type.equals(MUSIC)) {
|
|
|
currentClassTimes = noStartClassTimes;
|
|
|
} else {
|
|
|
currentClassTimes = MapUtil.convertIntegerMap(courseScheduleDao.countCurrentNumByClassGroupId(classGroupIds, user.getId()));
|
|
|
@@ -1565,6 +1613,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
|
|
|
String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
|
|
|
|
|
|
+ if(classGroup4MixDtos.get(0).getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)){
|
|
|
+ teachMode = TeachModeEnum.ONLINE;
|
|
|
+ List<String> studentNames = studentDao.getStudentNames(studentIdList);
|
|
|
+ classGroup4MixDtos.get(0).setClassGroupName(subjectNames + "•" + StringUtils.join(studentNames, ","));
|
|
|
+ }
|
|
|
+
|
|
|
if (classGroup4MixDtos.get(0).getType() == null) {
|
|
|
classGroup4MixDtos.get(0).setType(ClassGroupTypeEnum.NORMAL);
|
|
|
}
|
|
|
@@ -1577,7 +1631,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroup.setStudentNum(studentList.size());
|
|
|
classGroup.setType(classGroup4MixDtos.get(0).getType());
|
|
|
classGroup.setDelFlag(0);
|
|
|
- classGroup.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroup.setGroupType(MUSIC);
|
|
|
classGroup.setCurrentClassTimes(0);
|
|
|
classGroup.setTotalClassTimes(classGroup4MixDtos.get(0).getCourseTimes());
|
|
|
classGroup.setCreateTime(date);
|
|
|
@@ -1600,7 +1654,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupStudentMapper.setUserId(studentRegistration.getUserId());
|
|
|
classGroupStudentMapper.setCreateTime(date);
|
|
|
classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
- classGroupStudentMapper.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroupStudentMapper.setGroupType(MUSIC);
|
|
|
classGroupStudentMapperList.add(classGroupStudentMapper);
|
|
|
|
|
|
userIds.add(studentRegistration.getUserId());
|
|
|
@@ -1706,10 +1760,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseSchedule.setUpdateTime(date);
|
|
|
courseSchedule.setTeachMode(teachMode);
|
|
|
courseSchedule.setType(classGroup4MixDto.getCourseType());
|
|
|
- courseSchedule.setGroupType(GroupType.MUSIC);
|
|
|
+ courseSchedule.setGroupType(MUSIC);
|
|
|
courseSchedule.setOrganId(musicGroup.getOrganId());
|
|
|
if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MIX)) {
|
|
|
courseSchedule.setName(classGroup4MixDto.getCourseType().getMsg());
|
|
|
+ }else if(classGroup4MixDto.getCourseType().equals(CourseScheduleType.MUSIC_NETWORK)){
|
|
|
+ courseSchedule.setName(classGroup.getName());
|
|
|
} else {
|
|
|
courseSchedule.setName(subjectNames + "-" + classGroup4MixDto.getCourseType().getMsg());
|
|
|
}
|
|
|
@@ -1996,7 +2052,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
} else {
|
|
|
courseSchedule.setName(subjectNames + "-" + classGroup4MixDto.getCourseType().getMsg());
|
|
|
}
|
|
|
- courseSchedule.setGroupType(GroupType.MUSIC);
|
|
|
+ courseSchedule.setGroupType(MUSIC);
|
|
|
courseSchedule.setTeacherId(teacherId);
|
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
|
courseSchedule.setOrganId(musicGroup.getOrganId());
|
|
|
@@ -2161,7 +2217,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroup.setExpectStudentNum(studentList.size());
|
|
|
classGroup.setStudentNum(studentList.size());
|
|
|
classGroup.setType(ClassGroupTypeEnum.SNAP);
|
|
|
- classGroup.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroup.setGroupType(MUSIC);
|
|
|
classGroup.setDelFlag(0);
|
|
|
classGroup.setTotalClassTimes(classGroup4MixDtos.get(0).getCourseTimes());
|
|
|
classGroup.setCurrentClassTimes(0);
|
|
|
@@ -2180,7 +2236,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupStudentMapper.setUserId(studentRegistration.getUserId());
|
|
|
classGroupStudentMapper.setCreateTime(date);
|
|
|
classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
- classGroupStudentMapper.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroupStudentMapper.setGroupType(MUSIC);
|
|
|
classGroupStudentMapperList.add(classGroupStudentMapper);
|
|
|
userIds.add(studentRegistration.getUserId());
|
|
|
}
|
|
|
@@ -2282,7 +2338,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseSchedule.setUpdateTime(date);
|
|
|
courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
|
|
|
courseSchedule.setType(classGroup4MixDto.getCourseType());
|
|
|
- courseSchedule.setGroupType(GroupType.MUSIC);
|
|
|
+ courseSchedule.setGroupType(MUSIC);
|
|
|
courseSchedule.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MIX)) {
|
|
|
courseSchedule.setName(classGroup4MixDto.getCourseType().getMsg());
|
|
|
@@ -2712,7 +2768,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
@Override
|
|
|
public Boolean checkSetSalary(String musicGroupId) {
|
|
|
- List<CourseScheduleTeacherSalary> courseScheduleTeacherSalary = courseScheduleTeacherSalaryDao.findCourseScheduleTeacherSalaryByMusicGroupId(musicGroupId, GroupType.MUSIC);
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalary = courseScheduleTeacherSalaryDao.findCourseScheduleTeacherSalaryByMusicGroupId(musicGroupId, MUSIC);
|
|
|
if (courseScheduleTeacherSalary != null && courseScheduleTeacherSalary.size() > 0) {
|
|
|
return true;
|
|
|
}
|
|
|
@@ -3011,7 +3067,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
if (classGroup != null) {
|
|
|
classGroup.setViewGroupName(classGroup.getName());
|
|
|
classGroup.setName(StringUtils.isEmpty(classGroup.getGroupName()) ? classGroup.getName() : classGroup.getGroupName());
|
|
|
- if (classGroup.getGroupType() == GroupType.MUSIC) {
|
|
|
+ if (classGroup.getGroupType() == MUSIC) {
|
|
|
MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
|
|
|
if (musicGroup != null) {
|
|
|
classGroup.setMusicGroupName(musicGroup.getName());
|