package jnpf.cultivate.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.model.cultivate.dto.casebase.FtbCultivateCaseBaseDTO;
import jnpf.model.cultivate.po.casebase.FtbCultivateCaseBase;
import jnpf.model.cultivate.vo.casebase.FtbCultivateCaseBaseVO;
import org.apache.ibatis.annotations.Param;

/**
*
*@Title:  案例库
*@Author: peng.hao
*@create: 2024/7/22:11:03
*
*/
public interface FtbCultivateCaseBaseMapper extends BaseMapper<FtbCultivateCaseBase> {

    /**
     * 分页查询培养案例列表（用于后台展示）
     *
     * @param page 分页参数，包含了页码、每页数量等信息
     * @param dto  查询条件封装对象，用于筛选查询结果
     * @return 分页查询结果，包含培养案例的基础信息
     * <p>
     * 该方法用于后台管理系统中分页展示培养案例，根据提供的分页参数和查询条件，
     * 返回符合条件的培养案例列表。主要用于页面展示，因此命名为listDisplay。
     */
    Page<FtbCultivateCaseBaseVO> listDisplay(@Param("page") Page<FtbCultivateCaseBaseVO> page,
                                             @Param("dto") FtbCultivateCaseBaseDTO dto);

    /**
     * 分页查询培养案例列表（用于前端App展示）
     *
     * @param page 分页参数，包含了页码、每页数量等信息
     * @param dto  查询条件封装对象，用于筛选查询结果
     * @return 分页查询结果，包含培养案例的基础信息
     * <p>
     * 该方法用于前端App中分页展示培养案例，根据提供的分页参数和查询条件，
     * 返回符合条件的培养案例列表。因为服务于前端App，命名中特别指出了用途（forApp），
     * 以便于与服务于后台管理系统的listDisplay方法相区分。
     */
    Page<FtbCultivateCaseBaseVO> listDisplayForApp(@Param("page") Page<FtbCultivateCaseBaseVO> page,
                                                   @Param("dto") FtbCultivateCaseBaseDTO dto);
}