package com.xjrsoft.module.textbook.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.textbook.dto.TextbookClaimExportQueryDto;
import com.xjrsoft.module.textbook.dto.TextbookStandingExportQuerytDto;
import com.xjrsoft.module.textbook.dto.TextbookPageDto;
import com.xjrsoft.module.textbook.dto.TextbookSubscriptionExportQueryDto;
import com.xjrsoft.module.textbook.entity.Textbook;
import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
import com.xjrsoft.module.textbook.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @title: 教材管理
* @Author dzx
* @Date: 2023-12-25
* @Version 1.0
*/
@Mapper
public interface TextbookMapper extends MPJBaseMapper<Textbook> {

    /**
     * 分页查询
     * @param page
     * @param dto
     * @return
     */
    Page<TextbookPageVo> getPage(Page<TextbookPageDto> page, TextbookPageDto dto);

    /**
     * 征订记录集合
     *
     * @param id
     * @return
     */
    List<TextbookSubscriptionRecordVo> subscriptionList(Long id);

    /**
     * 作业本征订记录
     *
     * @param id
     * @return
     */
    List<TextbookSubscriptionRecordVo> exerciseBookSubscriptionList(Long id);


    /**
     * 查询征订记录中的使用班级
     *
     * @param ids
     * @return
     */
    List<TextbookSubscriptionClassVo> getClassInfo(List<String> ids);
    /**
     * 根据书号查询最新一条信息
     * @param issn
     * @return
     */
    TextbookVo getInfoByissn(String issn);

    /**
     * 入库记录
     * @param id
     * @return
     */
    List<TextbookWarehouseRecordListVo> warehouseList(Long id);


    List<TextbookClassRelation> getClassRelation(Long id);

    /**
     * 入库记录
     * @param id
     * @return
     */
    List<TextbookIssueRecordListVo> issueList(Long id);

    /**
     * 台账到处集合
     * @param dto
     * @return
     */
    List<TextbookStandingExportQueryVo> listTextbookStandingExportQuery(@Param("dto") TextbookStandingExportQuerytDto dto);

    /**
     * 台账到处集合
     * @param dto
     * @return
     */
    List<TextbookSubscriptionExportQueryVo> listTextbookSubscriptionExportQuery(@Param("dto") TextbookSubscriptionExportQueryDto dto);

    List<TextbookClaimExportQueryVo> listTextbookClaimExportQuery(@Param("dto") TextbookClaimExportQueryDto dto);
}
