package com.ruoyi.system.mapper;

import java.time.LocalDate;
import java.util.List;
import com.ruoyi.system.domain.DailySys;
import com.ruoyi.system.domain.dto.*;
import org.apache.ibatis.annotations.Param;

/**
 * 记录系统每天需要统计的任务Mapper接口
 * 
 * @author haoitan
 * @date 2024-11-07
 */
public interface DailySysMapper 
{
    /**
     * 查询记录系统每天需要统计的任务
     * 
     * @param dailySysId 记录系统每天需要统计的任务主键
     * @return 记录系统每天需要统计的任务
     */
    public DailySys selectDailySysByDailySysId(Long dailySysId);

    public DailySys selectDailySysByDate(LocalDate date);

    /**
     * 查询记录系统每天需要统计的任务列表
     * 
     * @param dailySys 记录系统每天需要统计的任务
     * @return 记录系统每天需要统计的任务集合
     */
    public List<DailySys> selectDailySysList(DailySys dailySys);

    public List<SeUserCountDto> selectDailySysListBetweenDate(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate);

    public List<SeUserWorkCountDto> selectDailySysWorkListBetweenDate(@Param("startDate")LocalDate startDate, @Param("endDate") LocalDate endDate);

    public List<SeOnlineTimeDto> gettOnlineTime(@Param("startDate")LocalDate startDate, @Param("endDate") LocalDate endDate);

    public List<SysIncomeDto> getSysIncome(@Param("startDate")LocalDate startDate, @Param("endDate") LocalDate endDate);

    public List<SourceUseCountDto> getSourceUserCount(@Param("startDate")LocalDate startDate, @Param("endDate") LocalDate endDate);

    /**
     * 新增记录系统每天需要统计的任务
     * 
     * @param dailySys 记录系统每天需要统计的任务
     * @return 结果
     */
    public int insertDailySys(DailySys dailySys);

    /**
     * 修改记录系统每天需要统计的任务
     * 
     * @param dailySys 记录系统每天需要统计的任务
     * @return 结果
     */
    public int updateDailySys(DailySys dailySys);

    /**
     * 删除记录系统每天需要统计的任务
     * 
     * @param dailySysId 记录系统每天需要统计的任务主键
     * @return 结果
     */
    public int deleteDailySysByDailySysId(Long dailySysId);

    /**
     * 批量删除记录系统每天需要统计的任务
     * 
     * @param dailySysIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDailySysByDailySysIds(Long[] dailySysIds);



    /*
    * 计数系统中用户的总数
    * */
//    public Long getUserCount();
}
