123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548 |
- package com.ym.mec.biz.service;
- import com.ym.mec.biz.dal.dto.*;
- import com.ym.mec.biz.dal.entity.*;
- import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
- import com.ym.mec.biz.dal.enums.GroupType;
- import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
- import com.ym.mec.biz.dal.page.*;
- import com.ym.mec.common.entity.HttpResponseResult;
- import com.ym.mec.common.entity.ImGroupModel;
- import com.ym.mec.common.entity.ImUserModel;
- import com.ym.mec.common.page.PageInfo;
- import com.ym.mec.common.page.QueryInfo;
- import com.ym.mec.common.service.BaseService;
- import java.lang.reflect.InvocationTargetException;
- import java.math.BigDecimal;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
-
- public PageInfo<ClassGroup> queryPage(ClassGroupQueryInfo queryInfo);
-
- boolean create(ClassGroup classGroup);
- /**
- * 查询老师乐团课课程
- *
- * @param teacherId
- * @return
- */
- List<ClassGroup> findClassGroup4Teacher(Integer teacherId);
- /**
- * 合奏班相关班级获取
- *
- * @param mixClassGroupId
- * @return
- */
- List<ClassGroup> findClassGroup(String musicGroupId, Integer mixClassGroupId);
- /**
- * 根据乐团编号查询单技班列表
- *
- * @param musicGroupId
- * @return
- */
- List<ClassGroup> findAllNormalClassGroupByMusicGroupId(String musicGroupId);
- /**
- * 根据乐团编号查询合奏班列表
- *
- * @param musicGroupId
- * @return
- */
- List<ClassGroup> findAllMixClassGroupByMusicGroupId(String musicGroupId);
- /**
- * @Author: Joburgess
- * @Date: 2019/10/8
- * @params [musicGroupId]
- * @return java.util.List<com.ym.mec.biz.dal.entity.ClassGroup>
- * @describe 获取乐团下所有班级
- */
- List<ClassGroup> findAllClassGroupByMusicGroup(String musicGroupId,String type);
- /**
- * 添加单技班
- *
- * @param classGroup
- * @return
- */
- ClassGroup addClassGroup(ClassGroup classGroup,GroupType groupType) throws Exception;
- /**
- * 添加合奏班
- *
- * @param classGroupIds
- * @return
- * @throws Exception
- */
- ClassGroup addMixClassGroup(String musicGroupId, String name, String classGroupIds) throws Exception;
- /**
- * 跟班级ids查询班级信息
- *
- * @param ids
- * @return
- */
- List<ClassGroup> findClassGroupByIds(String ids);
- /**
- * 提高班批量添加
- *
- * @param highClassGroupList
- * @return
- * @throws Exception
- */
- List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception;
- /**
- * 获取老师乐团课程信息列表
- *
- * @param queryInfo
- * @return
- */
- PageInfo<TeacherMusicClassInfoDto> getTeacherMusicClass(TeacherMusicClassQueryInfo queryInfo);
- /**
- * 获取老师VIP课程信息列表
- *
- * @param queryInfo
- * @return
- */
- PageInfo<TeacherVipClassInfoDto> getTeacherVipClass(VipClassQueryInfo queryInfo);
- /**
- * 获取乐团班级老师课酬
- *
- * @param musicGroupId
- * @param type 班级类型(多种类型)
- * @return
- */
- List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId,String type,Integer classGroupId);
- /**
- * 获取乐团班级老师课酬
- *
- * @param musicGroupId
- * @return
- */
- List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type,Integer classGroupId) throws Exception;
- /**
- * 获取学生所购买课程列表
- *
- * @param userId
- * @param queryInfo
- * @return
- */
- PageInfo<CourseListDto> queryCoursePage(UserMusicGroupQueryInfo queryInfo,Integer userId);
- /**
- * 获取学员所在群组信息
- * @param userId
- * @param search
- * @return
- */
- List<ImGroupModel> queryUserGroups(Integer userId,String search);
- /**
- * 获取群组下用户基本信息
- * @param groupId
- * @return
- */
- List<ImUserModel> findGroupUsers(Integer groupId,String search);
- /**
- * 获取群组下学员基本信息
- * @param groupId
- * @return
- */
- List<ImUserModel> findGroupStudents(Integer groupId,String search);
- /**
- * 分页查询学生购买记录
- * @param studentPayLogQueryInfo
- * @return
- */
- PageInfo<StudentPayInfoDto> queryStudentPayLog(StudentPayLogQueryInfo studentPayLogQueryInfo);
- /**
- * 班级添加学生
- * @param classGroup
- * @param userId
- * @return
- */
- ClassGroup addStudent(ClassGroup classGroup, Integer userId, GroupType groupType);
-
- /**
- * 添加学生到指定班级并排课
- * @param studentId
- * @param classGroupIdListStr
- * @return
- */
- boolean addStudentToClassGroupAndCourseArranging(Integer studentId, String classGroupIdListStr, String batchNo, List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList);
- /**
- * 获取未分配合奏的单技班列表
- * @param musicGroupId
- * @return
- */
- List<ClassGroup> findNoClassSubjects(String musicGroupId);
- /**
- * @Author: Joburgess
- * @Date: 2019/10/16
- * @params [classGroupId, num]
- * @return boolean
- * @describe 跟新班级人数
- */
- boolean updateClassStudentNum(Integer classGroupId,Integer num);
- boolean updateClassStudentNum(Integer classGroupId);
- /**
- * 删除单技班级
- * @param classGroupId
- */
- void delSingle(Integer classGroupId);
- /**
- * 删除合奏班级
- * @param classGroupId
- */
- void delMix(Integer classGroupId);
- /**
- * 成团确认,校验参数,并设置团长
- * @param teacherId
- * @param musicGroupId
- */
- void addMusicGroupTeam(Integer teacherId, String musicGroupId,Integer improventClassesNum) throws Exception;
- /**
- * @Author: Joburgess
- * @Date: 2019/10/17
- * @params [type]
- * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassGroupDto>
- * @describe 获取老师所在班级列表
- */
- List<TeacherClassGroupDto> findTeacherClassGroups(String type,String status);
- /**
- * @Author: Joburgess
- * @Date: 2019/10/18
- * @params @param classGroupId:班级编号
- * @return com.ym.mec.biz.dal.dto.TeacherClassHeadInfo
- * @describe 获取班级信息
- */
- TeacherClassHeadInfo findTeacherClassGroupInfo(Integer classGroupId);
- /**
- * @describe 获取班级对应学生列表
- * @author Joburgess
- * @date 2019/10/18
- * @param queryInfo:
- * @return org.snaker.engine.access.Page
- */
- PageInfo findTeacherClassStudents(CourseScheduleQueryInfo queryInfo);
- /**
- * @describe 根据班级获取点名列表
- * @author Joburgess
- * @date 2019/10/19
- * @param courseScheduleId:
- * @return java.util.List<com.ym.mec.biz.dal.dto.StudentAttendanceViewDto>
- */
- List<StudentAttendanceViewDto> findAttendanceStudentByCourse(Long courseScheduleId);
- /**
- * @describe 分页查询课程点名列表
- * @author Joburgess
- * @date 2020/1/17
- * @param queryInfo:
- * @return com.ym.mec.common.page.PageInfo
- */
- PageInfo findAttendanceStudentByCourseWithPage(CourseScheduleQueryInfo queryInfo);
- /**
- * 班级调整(新增班级)
- * @param classGroup4MixDto
- * @return
- */
- ClassGroup classGroupAdjust(List<ClassGroup4MixDto> classGroup4MixDto);
- /**
- * 合班拆班新建班级
- * @param classGroup4MixDtos
- * @return
- */
- ClassGroup classGroupAdjust2(ClassGroup4MixDto classGroup4MixDtos);
- /**
- * 班级调整(修改班级)
- * @param classGroup4MixDtos
- * @return
- */
- HttpResponseResult classGroupUpdate(List<ClassGroup4MixDto> classGroup4MixDtos) throws Exception;
- /**
- * 班级调整(增加临时班级)
- * @param classGroup4MixDtos
- * @return
- */
- ClassGroup classGroupSnap(List<ClassGroup4MixDto> classGroup4MixDtos) throws Exception;
- /**
- * 乐团详情--班级详情列表
- * @param queryInfo
- * @return
- */
- PageInfo<MusicGroupClassGroupDto> queryMusicGroupClassGroup(QueryInfo queryInfo);
- /**
- * 乐团详情-----课酬调整
- * @param queryInfo
- * @return
- */
- PageInfo<MusicGroupCourseScheduleDto> queryMusicGroupCourseSchedule(queryMusicGroupCourseScheduleQueryInfo queryInfo);
- /**
- * 乐团详情-----课表详情
- * @param queryInfo
- * @return
- */
- PageInfo<MusicGroupCourseScheduleDto> queryMusicGroupCourseScheduleDetail(queryMusicGroupCourseScheduleQueryInfo queryInfo);
-
- /**
- * 批量新增班级上的课次数
- * @param classGroupList
- * @return
- */
- boolean batchIncreaseClassTimes(List<Integer> classGroupList);
- List<ClassGroupTeachersDto> classGroupAndTeacher(Integer classGroupId);
- /**
- * 根据乐团跟声部获取提高班列表
- *
- * @param musicGroupId
- * @param subjectId
- * @return
- */
- List<HighClassGroupDto> findClassGroupByMusicGroupIdAndSubjectId(String musicGroupId,Integer subjectId);
- /**
- * @describe 批量更新指定班级人数
- * @author Joburgess
- * @date 2019/11/12
- * @param classGroupIds: 班级编号列表
- * @return int
- */
- int batchUpdateClassCourseTimes(List<Integer> classGroupIds);
- /*
- * @describe 将学生加入到班级
- * @author Joburgess
- * @date 2019/11/16
- * @param musicGroupId: 乐团或者VIP课编号
- * @param classGroupId: 班级编号
- * @param studentIds: 学生编号列表
- * @return void
- */
- void addStudentIntoClassGroup(String musicGroupId,Integer classGroupId,List<Integer> studentIds);
- /**
- * 根据乐团id,班级类型获取班级和老师
- * @param musicGroupId
- * @param type
- * @return
- */
- List<ClassGroupTeachersDto> getClassGroupAndTeacherByType(String musicGroupId, ClassGroupTypeEnum type);
- /**
- * 根据乐团id,班级类型获取班级和老师
- * @param queryInfo
- * @return
- */
- PageInfo<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo);
- /**
- * 添加IM群组
- * @param classGroup
- * @param userIds
- * @param teacherIdList
- * @return
- */
- Boolean addImGroup(ClassGroup classGroup,List<Integer> userIds, List<Integer> teacherIdList);
- /**
- * 检测是否设置课酬
- * @param musicGroupId
- * @return
- */
- Boolean checkSetSalary(String musicGroupId);
- boolean updateTotalClassTimes(Integer classGroupId, Integer num);
- /**
- * @describe 跟新班级相关信息
- * @author Joburgess
- * @date 2019/12/11
- * @param classGroupId: 班级编号
- * @return void
- */
- void updateClassGroupInfo(Integer classGroupId);
- /**
- * @describe 批量更新班级上的课次信息
- * @author Joburgess
- * @date 2020/2/20
- * @param classGroupIds: 班级编号列表
- * @return void
- */
- void updateClassGroupsCourseInfo(List<Integer> classGroupIds);
- /**
- * 清除班级未开始课程
- * @param classGroupId
- * @return
- */
- boolean delClassNoStartCourse(Integer classGroupId);
- /**
- * 根据群编号,获取群组基本信息
- * @param groupId
- * @return
- */
- ClassGroup findGroupById(Integer groupId);
- /**
- * @describe 终极班级信息获取
- * @author Joburgess
- * @date 2019/12/30
- * @param queryInfo: 查询条件
- * @return com.ym.mec.common.page.PageInfo
- */
- PageInfo endFindClassGroups(EndCourseScheduleQueryInfo queryInfo);
- /**
- *
- * @param groupId
- * @param userId
- * @return
- */
- Map<String,Object> getUserInfoWithUserId(Integer groupId, Integer userId);
- /**
- * 根据群编号,修改群名称
- * @param groupId
- * @param groupName
- */
- void updateGroupName(Integer groupId, String groupName);
- /**
- * @params @param courseId:课程编号
- * @return com.ym.mec.biz.dal.dto.TeacherClassHeadInfo
- * @describe 获取班级信息
- */
- TeacherClassHeadInfo findTeacherClassGroupInfoByCourseId(Integer courseId);
-
- /**
- * 查询指定班级剩余未上课程类型的时长
- * @param classGroupIdList
- * @return
- */
- List<RemainCourseTypeDurationDto> queryRemainCourseTypeDuration(String classGroupIdList);
- /**
- * 进行中乐团-修改-班级详情-学员班级调整详情
- * @author zouxuan
- * @param classGroupId
- * @return
- */
- Map<String,Integer> classGroupSubCourseNum(Integer classGroupId);
- /**
- * 进行中乐团-修改-班级详情-学员班级调整-获取所选班级最大可排课时长
- * @author zouxuan
- * @param classGroupIds
- * @return
- */
- Map<String,Object> getDefaultPaymentCalender(List<Integer> classGroupIds);
- /**
- * 进行中乐团-修改-班级详情-学员班级调整-合并结果确认
- * 保存新增班级的基本信息,冻结所选班级的课程,生成同一批次的缴费项目,保存调整详情
- * @author zouxuan
- * @param mergeClassSplitClassAffirmDto
- * @return
- */
- HttpResponseResult mergeClassSplitClassAffirm(MergeClassSplitClassAffirmDto mergeClassSplitClassAffirmDto) throws InvocationTargetException, IllegalAccessException, Exception;
- /**
- * 进行中乐团-修改-班级详情-学员班级调整-合并结果确认-获取新班级的可排课时长
- * @author zouxuan
- * @param classGroupIds
- * @return
- */
- Map<String,Long> findClassCourseMinuteMap(List<Integer> classGroupIds,Map<String,Long> classCourseMinuteMap);
- /**
- * 获取基础技能班/线上基础技能班数量和容许最大数量
- * @param musicGroupId
- * @param type
- * @return
- */
- HighClassGroupNumDto getSubjectMaxHighClassGroupNum(String musicGroupId,ClassGroupTypeEnum type);
- /**
- * 进行中乐团-修改-班级详情-班级合并-获取学员需要补交的费用以及需要退还的课程余额
- * @param masterClassGroupId
- * @param classGroupStudents
- * @param studentIds
- * @return
- */
- List<MusicGroupPaymentCalenderStudentDetail> queryStudentPaymentCalenders(Integer masterClassGroupId,String classGroupStudents,List<Integer> studentIds);
- /**
- * 获取主班课程类型剩余价值
- * @param masterClassGroupId
- * @return
- */
- BigDecimal getMasterTotalPrice(Integer masterClassGroupId);
- /**
- * 获取班级列表最大可排课时长
- * @param classGroupId
- * @return
- */
- Map<String,Long> querySubCourseTime(Integer classGroupId);
- /**
- * 跨团班级合并提交
- * @param mergeClassSplitClassAffirmDto
- * @return
- */
- HttpResponseResult spanGroupMergeClassSplitClassAffirm(MergeClassSplitClassAffirmDto mergeClassSplitClassAffirmDto);
- /**
- * 跨团合班缴费项目审核通过后
- * @param masterClassGroupId
- * @param studentIds
- * @param courseIds
- * @param classGroupStudents
- */
- void spanGroupClassAdjustPass(Integer masterClassGroupId,List<Integer> studentIds,List<Long> courseIds,List<Map> classGroupStudents,List<Long> allLockCourseIds,String batchNo,BigDecimal masterTotalPrice);
- }
|