package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
import com.ym.mec.biz.dal.dto.StudentFeeDto;
import com.ym.mec.biz.dal.entity.StudentRegistration;
import com.ym.mec.biz.dal.page.StudentApplyDetailQueryInfo;
import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.service.BaseService;

import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

public interface StudentRegistrationService extends BaseService<Long, StudentRegistration> {

    /**
     * 获取乐团学员报名详情
     *
     * @param queryInfo
     * @return
     */
    PageInfo<StudentApplyDetailDto> queryStudentDetailPage(StudentRegistrationQueryInfo queryInfo);

    /**
     * 批量调剂
     *
     * @param userId
     * @param subId
     * @return
     */
    boolean batchUpdateSubject(String userId, Integer subId);

    /**
     * 学生报名缴费金额详情
     *
     * @param studentId
     * @param musicGroupId
     * @return
     */
    StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId);

    /**
     * 获取未分配的班级的学生
     *
     * @param musicGroupId    乐团id
     * @param actualSubjectId 科目id
     * @return
     */
    List<StudentRegistration> getNoClassStuBySubjectId(Integer musicGroupId, Integer actualSubjectId);

    /**
     * 获取乐团声部未分配学生统计
     *
     * @param musicGroupId
     * @param actualSubjectId
     * @return
     */
    Integer getNoClassStuCountBySubjectId(Integer musicGroupId, Integer actualSubjectId);


    /**
     * 根据user_id 和 乐团id更新
     *
     * @param studentRegistration
     * @return
     */
    Integer updateByUserIdAndMusicGroupId(StudentRegistration studentRegistration);

}