package com.ym.mec.biz.dal.dao;

import com.ym.mec.biz.dal.entity.SubjectChange;
import com.ym.mec.common.dal.BaseDAO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface SubjectChangeDao extends BaseDAO<Integer, SubjectChange> {


    /**
     * 获取学生最后一次乐器替换记录
     *
     * @param studentId
     * @param musicGroupId
     * @return
     */
    SubjectChange getStudentLastChange(@Param("studentId") Integer studentId, @Param("musicGroupId") String musicGroupId);

    /**
     * 获取更换详情
     *
     * @param id
     * @return
     */
    SubjectChange getChangeInfo(@Param("id") Integer id);

    /**
     * 获取待支付的的声部更换列表
     *
     * @param musicGroupId
     * @return
     */
    List<SubjectChange> getMusicGroupWaitPay(@Param("musicGroupId") String musicGroupId);

    /**
     * 获取声部更换列表
     *
     * @param params
     * @return
     */
    List<SubjectChange> getPageList(Map<String, Object> params);

    /**
     * 获取更换的乐器辅件
     *
     * @param musicGroupId
     * @return
     */
    SubjectChange getChangeGoods(@Param("musicGroupId") String musicGroupId);

    /**
     * 获取用户换取的乐器辅件
     *
     * @param musicGroupId
     * @return
     */
    List<SubjectChange> getStudentGoods(@Param("musicGroupId") String musicGroupId);

    /**
     * 获取学生待支付的声部更改
     *
     * @param studentId
     * @param musicGroupId
     * @return
     */
    SubjectChange getStudentWaitPay(@Param("studentId") Integer studentId, @Param("musicGroupId") String musicGroupId);

    /**
     * 获取退还的差额
     * @param musicGroupId
     * @return
     */
    List<SubjectChange> getMargin(@Param("musicGroupId") String musicGroupId);
}