package com.ruoyi.hezhi.mapper;

import com.ruoyi.hezhi.domain.TbExamRegistration;
import org.apache.ibatis.annotations.Param;

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

/**
 * 考试报名Mapper接口
 *
 * @author ruoyi
 * @date 2024-11-05
 */
public interface TbExamRegistrationMapper
{


    /**
     * 查询考试报名
     *
     * @param examRegistrationId 考试报名主键
     * @return 考试报名
     */
    public TbExamRegistration selectTbExamRegistrationByExamRegistrationId(Long examRegistrationId);
    /**
     * 查询发货信息
     *
     * @param examRegistrationId 考试报名主键
     * @return 考试报名
     */
    public TbExamRegistration selectTbExamRegistrationByExamRegistrationIdFahuo(Long examRegistrationId);

    /**
     * 查询考试报名列表
     *
     * @param tbExamRegistration 考试报名
     * @return 考试报名集合
     */
    public List<TbExamRegistration> selectTbExamRegistrationList(TbExamRegistration tbExamRegistration);

    /**
     * 新增考试报名
     *
     * @param tbExamRegistration 考试报名
     * @return 结果
     */
    public int insertTbExamRegistration(TbExamRegistration tbExamRegistration);

    /**
     * 修改考试报名
     *
     * @param tbExamRegistration 考试报名
     * @return 结果
     */
    public int updateTbExamRegistration(TbExamRegistration tbExamRegistration);

    /**
     * 删除考试报名
     *
     * @param examRegistrationId 考试报名主键
     * @return 结果
     */
    public int deleteTbExamRegistrationByExamRegistrationId(Long examRegistrationId);

    /**
     * 批量删除考试报名
     *
     * @param examRegistrationIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbExamRegistrationByExamRegistrationIds(Long[] examRegistrationIds);

    /**
     * 查询考试报名信息（用户ID、考试ID）
     *
     * @param memberUserId 用户ID
     * @param examId 考试ID
     * @return 考试报名
     */
    public TbExamRegistration selectTbExamRegistrationByUserIdExamId(@Param("memberUserId") Long memberUserId, @Param("examId") Long examId);

    /**
     * 我的考试列表
     *
     * @param params 参数
     * @return 结果
     */
    public List<Map<String,Object>> getMemberExamList(Map<String,Object> params);

    /**
     * 我的考试详情
     *
     * @param params 参数
     * @return 结果
     */
    public Map<String,Object> getMemberExamInfo(Map<String,Object> params);

    /**
     * 查询考试报名详情
     *
     * @param params 参数
     * @return 结果
     */
    public Map<String,Object> getExamRegistrationInfo(Map<String,Object> params);


    /**
     * 学习计划-我的课件列表
     *
     * @param params 参数
     * @return 结果
     */
    public List<Map<String,Object>> getMemberCoursewareList(Map<String,Object> params);

    /**
     * 我的报名表、准考证、证书
     *
     * @param params 参数
     * @return 结果
     */
    public Map<String,Object> getMemberCertificateMore(Map<String,Object> params);

    /**
     * 报名考试即将开始弹窗列表
     *
     * @param params 参数
     * @return 结果
     */
    public Map<String, Object> getStartNowPopupList(Map<String,Object> params);

    /**
     * 查询考试报名信息（用户ID、考试ID）
     *
     * @param memberUserId 用户ID
     * @param examRegistrationId 考试报名ID
     * @return 考试报名
     */
    public TbExamRegistration getByExamRegistrationId(@Param("memberUserId") Long memberUserId,
                                                      @Param("examRegistrationId") Long examRegistrationId);

    /**
     * 查询考试报名信息
     *
     * @param shippingOrderId 快递订单ID
     * @return 考试报名
     */
    public TbExamRegistration getByShippingOrderId(@Param("shippingOrderId") String shippingOrderId);


    TbExamRegistration selectTbExamRegistrationByCode(TbExamRegistration tbExamRegistration);

    int importDataList(@Param("list") List<TbExamRegistration> listTbExamRegistration);

    int updateTbExamRegistrationByOrderNos(@Param("orderNos") List<String> orderNos);

    List<TbExamRegistration> selectCourseIsPay(@Param("memberUserId") String memberUserId,@Param("courseIdList") List<Long> courseIdList);
}
