package com.ym.mec.biz.service; import com.ym.mec.biz.dal.dao.StudentRegistrationDao; 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.page.*; import com.ym.mec.common.entity.HttpResponseResult; import com.ym.mec.common.page.PageInfo; import com.ym.mec.common.service.BaseService; import org.apache.ibatis.annotations.Param; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.math.BigDecimal; import java.util.List; import java.util.Map; public interface StudentRegistrationService extends BaseService { StudentRegistrationDao getDao(); /** * 获取乐团学员报名详情 * * @param queryInfo * @return */ PageInfo queryStudentDetailPage(StudentRegistrationQueryInfo queryInfo); /** * 批量调剂 * * @param userId * @param subId * @return */ Integer batchUpdateSubject(Integer userId, Integer subId, String musicGroupId) throws Exception; /** * 学生报名缴费金额详情 * * @param studentId * @param musicGroupId * @return */ List queryFeeDetail(Integer studentId, String musicGroupId); /** * 学生预计退团退费金额详情 * * @param studentId * @param musicGroupId * @return */ Map queryRefundsDetail(Integer studentId, String musicGroupId); /** * 获取未分配的班级的学生 * * @param musicGroupId 乐团id * @param actualSubjectId 科目id * @return */ List> getNoClassStuBySubjectId(String musicGroupId, String actualSubjectId); /** * 获取乐团声部未分配学生统计 * * @param musicGroupId * @return */ List getNoClassStuCountByMusicGroupId(String musicGroupId); /** * 添加学生报名信息 * * @param studentRegistration * @return */ StudentRegistration addStudent(StudentRegistration studentRegistration) throws Exception; /** * 查询学生信息 * * @param userId * @return */ StudentInfo queryStudentInfo(Integer userId); /** * 学生注册缴费订单 * * @param studentRegistration * @param studentPaymentOrder * @param goodsDto * @param registerPayDto * @param couponPayParam */ StudentPaymentOrder addOrder(StudentRegistration studentRegistration, StudentPaymentOrder studentPaymentOrder, MusicGroupApplyGoodsDto goodsDto, RegisterPayDto registerPayDto, CouponPayParam couponPayParam) throws Exception; void addOrder1(StudentPaymentOrder studentPaymentOrder, MusicGroupPaymentCalender calender, List newCourses, MusicGroupPaymentCalenderMember calenderMember, MusicGroupPaymentCalenderRepair calenderRepair, List calenderActivities ) throws Exception; /** * 查询用户指定乐团的报名信息 * * @param userId 用户编号 * @param musicGroupId 乐团编号 * @return */ StudentRegistration queryByUserIdAndMusicGroupId(Integer userId, String musicGroupId); /** * 根据乐团id,手机查询乐团注册信息 * * @param musicGroupId * @param parentsPhone * @return */ StudentRegistration getByPhoneAndMusicGroupId(String musicGroupId, String parentsPhone); /** * 乐团插入新学员 * * @param studentAddDto * @return */ Integer insertStudent(StudentAddDto studentAddDto) throws Exception; /** * 跨团合班进行中加学员 * * @param studentIds 学员列表 * @param oldMusicGroupId 原乐团 * @param newMusicGroupId 主乐团 * @return */ void insertStudent(String studentIds, String oldMusicGroupId, String newMusicGroupId, Map> collect,String batchNo); /** * 获取班级学生 * * @param musicGroupId * @param classGroupId * @return */ List findClassGroupStu(String musicGroupId, Integer classGroupId); /** * 更新报名订单 * * @param studentPaymentOrder * @return */ StudentPaymentOrder updateApplyOrder(StudentPaymentOrder studentPaymentOrder) throws Exception; /** * 获取乐团科目的学生 * * @param musicGroupId 乐团id * @param actualSubjectId 科目id * @return */ List findMusicGroupNoClassGroupStudent(String musicGroupId, Integer actualSubjectId); /** * 批量插入 * * @param studentRegistrationList * @return */ int batchInsert(List studentRegistrationList); /** * 查询乐团声部下的学生 * * @return */ List findMusicGroupStudent(String musicGroupId, String actualSubjectId); /** * 查询乐团userIdList的学生 * * @param musicGroupId * @param userIdList * @return */ List findStudentListByUserIdList(String musicGroupId, List userIdList); /** * 开启缴费 * * @param ids * @return */ int openPayment(String ids) throws IOException; /** * 更新用户注册信息 * * @param studentRegistration * @return */ StudentRegistration updateStudent(StudentRegistration studentRegistration); /** * 获取学员基本信息 * * @param mobile * @return */ StudentRegistration queryUserByPhone(String mobile); /** * 获取没有某种班级类型的学生 * * @param musicGroupId * @param type * @param subjectId * @return */ List findMusicGroupStuNoClassType(String musicGroupId, Long classGroupId, ClassGroupTypeEnum type, String subjectIds); /** * 获取乐团下所有学员身上的声部列表 * * @param musicGroupId * @return */ List findMusicGroupAllStudentSubjects(String musicGroupId); /** * 获取学员详情页,包含所在乐团信息 * * @param studentId * @return */ StudentMusicDetailDto getStudentDetail(Integer studentId); /** * 获取学生 * * @param studentId * @param musicGroupId * @return */ List getStudentApplyDetail(Integer studentId, String musicGroupId); /** * 更换学生声部 * * @param musicGroup * @param originalSubjectId * @param changeSubjectId * @return */ StudentRegistration changeStudentSubject(Integer studentId, String musicGroupId, Integer originalSubjectId, Integer changeSubjectId); /** * 获取班级未上课程的价值 * * @param classGroupIds * @return */ BigDecimal getClassGroupCourseExpectPrice(List classGroupIds); /** * @param userId: * @param amount: * @param memo: * @param operatorId: * @return boolean * @describe 更新学生乐团可用课程余额 * @author qnc99 * @date 2020/12/2 0002 */ BigDecimal updateUserSurplusCourseFee(Integer userId, String musicGroupId, BigDecimal amount, String memo, Integer operatorId); /** * 查询指定学生的乐团信息 * * @param userId * @return */ List queryStudentMusicGroupInfo(Integer userId, String musicGroupId); /** * 删除学生报名 * * @param id * @return */ Boolean delReg(Long id); /** * 批量删除报名的学生 * * @param userIds * @return */ Boolean batchDelRegs(String musicGroupId, List userIds); /** * 获取乐团学员剩余课程金额 * * @param musicGroupId * @return */ List getMusicGroupStuReBack(String musicGroupId); /** * 检查乐团是否能报名或缴费 * * @return */ String checkRegOrPayStatus(String musicGroupId); /** * 检查多乐团是否能报名或缴费 * * @return */ Map checkMusicGroupsRegOrPayStatus(List ids); /** * @param queryInfo: * @return com.ym.mec.common.page.PageInfo * @describe 查询乐团中未加入班级学员信息 * @author Joburgess * @date 2021/3/25 0025 */ PageInfo queryNoClassMusicStudentInfo(NoClassMusicStudentQueryInfo queryInfo); /** * 退团所有的学生 * * @param musicGroupId * @param remark * @return */ Integer quitAllStudent(String musicGroupId, String remark); /** * 获取乐团在读学员数 * * @param musicGroupIds * @return */ List> countNormalNum(List musicGroupIds); /** * 获取预报名或者报名列表 * * @param queryInfo * @return */ PageInfoReg getRegisterOrPreList(RegistrationOrPreQueryInfo queryInfo); /** * 已付费解除审核增加缴费人数和0元缴费人数 * * @param id * @return */ HttpResponseResult addPaidNum(Long id, boolean isContinue); /** * 获取学生乐团的注册信息 * * @param musicGroupId * @param studentId * @return */ StudentRegistration getStudentRegister(String musicGroupId, Integer studentId); PageInfo queryStudentRegisterInstrumentsDetailList(MusicGroupRecordStudentQueryInfo queryInfo); /** * 云教练收费:审核中的记录审核失败 * * @param studentRegistration * @return */ Boolean setCloudTeacherToFailed(StudentRegistration studentRegistration); /** * @param queryInfo * @return com.ym.mec.common.page.PageInfo * @description: 获取乐团在读学员乐保信息 * @author zx * @date 2021/11/9 10:27 */ PageInfo queryMusicStudentInstrument(StudentPreRegistrationQueryInfo queryInfo); void batchUpdate(@Param("studentRegistrations") List studentRegistrations); }