package com.xinyilu.system.mapper.applogkindergarteninfo;

import com.xinyilu.system.domain.applogkindergarteninfo.AppLogKindergartenInfo;
import com.xinyilu.system.domain.dto.AppLogManageStatisticsDTO;
import com.xinyilu.system.domain.vo.applogmanagestatistics.AppLogManageStatisticsVO;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

/**
 * 幼儿体测小程序登录幼儿园信息记录Mapper接口
 *
 * @author xinyilu
 * @date 2023-04-14
 */
public interface AppLogKindergartenInfoMapper {
    /**
     * 查询幼儿体测小程序登录幼儿园信息记录
     *
     * @param id 幼儿体测小程序登录幼儿园信息记录主键
     * @return 幼儿体测小程序登录幼儿园信息记录
     */
    AppLogKindergartenInfo selectAppLogKindergartenInfoById(Long id);

    /**
     * 查询幼儿体测小程序登录幼儿园信息记录列表
     *
     * @param appLogKindergartenInfo 幼儿体测小程序登录幼儿园信息记录
     * @return 幼儿体测小程序登录幼儿园信息记录集合
     */
    List<AppLogKindergartenInfo> selectAppLogKindergartenInfoList(AppLogKindergartenInfo appLogKindergartenInfo);

    /**
     * 新增幼儿体测小程序登录幼儿园信息记录
     *
     * @param appLogKindergartenInfo 幼儿体测小程序登录幼儿园信息记录
     * @return 结果
     */
    int insertAppLogKindergartenInfo(AppLogKindergartenInfo appLogKindergartenInfo);

    /**
     * 修改幼儿体测小程序登录幼儿园信息记录
     *
     * @param appLogKindergartenInfo 幼儿体测小程序登录幼儿园信息记录
     * @return 结果
     */
    int updateAppLogKindergartenInfo(AppLogKindergartenInfo appLogKindergartenInfo);

    /**
     * 删除幼儿体测小程序登录幼儿园信息记录
     *
     * @param id 幼儿体测小程序登录幼儿园信息记录主键
     * @return 结果
     */
    int deleteAppLogKindergartenInfoById(Long id);

    /**
     * 批量删除幼儿体测小程序登录幼儿园信息记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteAppLogKindergartenInfoByIds(Long[] ids);

    /**
     * 批量新增幼儿体测小程序登录幼儿园信息记录
     *
     * @param appLogKindergartenInfoList 幼儿体测小程序登录幼儿园信息记录集合
     * @return int
     */
    int insertAppLogKindergartenInfoList(List<AppLogKindergartenInfo> appLogKindergartenInfoList);

    /**
     * 统计
     *
     * @param appLogManageStatistic 统计信息
     * @return AppLogManageStatisticsVO
     */
    List<AppLogManageStatisticsVO> selectAppLogKindergartenCount(AppLogManageStatisticsDTO appLogManageStatistic);

    /**
     * 统计
     *
     * @param list      区域信息
     * @param startDate 开始时间
     * @param endDate   结束时间
     * @return AppLogManageStatisticsVO
     */
    List<AppLogManageStatisticsVO> selectAppLogKindergartenCounts(@Param("list") List<Long> list, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate);
}
