package jnpf.cultivate.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.model.cultivate.dto.certificate.FtbCertificateOrgWisdomStatisticDTO;
import jnpf.model.cultivate.dto.certificate.FtbCertificatePersonWisdomStatisticDTO;
import jnpf.model.cultivate.po.certificate.FtbCertificateEntity;
import jnpf.model.cultivate.vo.certificate.FtbCertificateOrgWisdomStatisticVO;
import jnpf.model.cultivate.vo.certificate.FtbCertificatePersonWisdomStatisticVO;
import jnpf.model.cultivate.vo.certificate.FtbCertificateQueryStatisticAllVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 证书模版表
 * @author penghao
 */
public interface FtbCultivateCertificateMapper extends BaseMapper<FtbCertificateEntity> {
    /**
     * 统计组织列表信息
     * 该方法用于对组织列表进行统计，根据提供的统计参数
     *
     * @param statisticDTO 统计DTO对象，包含统计所需的条件和信息
     * @param page         分页对象，用于控制和返回分页结果
     * @return 统计结果的分页对象，包含组织列表的统计信息
     */
    Page<FtbCertificateOrgWisdomStatisticVO> organizationListStatistics(
            @Param("statisticDTO") FtbCertificateOrgWisdomStatisticDTO statisticDTO,
            @Param("page") Page<FtbCertificateOrgWisdomStatisticVO> page);

    List<FtbCertificateQueryStatisticAllVO> organizationListStatisticsAll(
            @Param("statisticDTO") FtbCertificateOrgWisdomStatisticDTO statisticDTO);

    /**
     * 统计个人维度信息
     * 该方法用于从个人维度进行统计，根据提供的个人统计参数
     *
     * @param dto 个人统计DTO对象，包含统计所需的条件和信息
     * @param page                     分页对象，用于控制和返回分页结果
     * @return 统计结果的分页对象，包含个人维度的统计信息
     */
    Page<FtbCertificatePersonWisdomStatisticVO> personalDimensionStatistics(@Param("dto") FtbCertificatePersonWisdomStatisticDTO dto,
                                                                            @Param("page") Page<FtbCertificatePersonWisdomStatisticVO> page);
}