package com.ruoyi.hezhi.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.hezhi.domain.TbMemberSubjectAll;
import com.ruoyi.hezhi.domain.dto.MemberSubjectAllDTO;

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

/**
 * 我的题目Service接口
 *
 * @author ruoyi
 * @date 2024-11-06
 */
public interface ITbMemberSubjectAllService
{
    /**
     * 查询我的题目
     *
     * @param memberSubjectAllId 我的题目主键
     * @return 我的题目
     */
    public TbMemberSubjectAll selectTbMemberSubjectAllByMemberSubjectAllId(Long memberSubjectAllId);

    /**
     * 查询我的题目列表
     *
     * @param tbMemberSubjectAll 我的题目
     * @return 我的题目集合
     */
    public List<TbMemberSubjectAll> selectTbMemberSubjectAllList(TbMemberSubjectAll tbMemberSubjectAll);

    /**
     * 新增我的题目
     *
     * @param tbMemberSubjectAll 我的题目
     * @return 结果
     */
    public int insertTbMemberSubjectAll(TbMemberSubjectAll tbMemberSubjectAll);

    /**
     * 修改我的题目
     *
     * @param tbMemberSubjectAll 我的题目
     * @return 结果
     */
    public int updateTbMemberSubjectAll(TbMemberSubjectAll tbMemberSubjectAll);

    /**
     * 批量删除我的题目
     *
     * @param memberSubjectAllIds 需要删除的我的题目主键集合
     * @return 结果
     */
    public int deleteTbMemberSubjectAllByMemberSubjectAllIds(Long[] memberSubjectAllIds);

    /**
     * 删除我的题目信息
     *
     * @param memberSubjectAllId 我的题目主键
     * @return 结果
     */
    public int deleteTbMemberSubjectAllByMemberSubjectAllId(Long memberSubjectAllId);

    /**
     * 题目数量
     *
     * @param params 参数
     * @return 结果
     */
    public int memberSubjectAllCount(Map<String,Object> params);

    /**
     * 查询我的题目
     *
     * @param params 参数
     * @return 结果
     */
    public TbMemberSubjectAll queryMemberSubjectAllByParam(Map<String,Object> params);

    /**
     * 查询我的题目列表
     *
     * @param memberSubjectAll 我的题目
     * @return 我的题目集合
     */
    public List<TbMemberSubjectAll> selectMemberSubjectAllList(TbMemberSubjectAll memberSubjectAll);

    /**
     * 练习答题
     *
     * @param memberSubjectAllDTO
     * @return ok
     */
    public AjaxResult subjectPracticeAnswer(MemberSubjectAllDTO memberSubjectAllDTO);

    AjaxResult subjectPracticeAnswerClear(MemberSubjectAllDTO memberSubjectAllDTO);
}
