package com.ruoyi.system.service;

import java.time.LocalDate;
import java.util.List;
import com.ruoyi.system.domain.DailySys;
import com.ruoyi.system.domain.dto.*;

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

    /**
     * 根据日期查询记录系统数据
     * @param date
     * @return
     */
    public DailySys selectDailySysByDate(LocalDate date);

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

    // 获取指定时间内的每天用户总数
    public List<SeUserCountDto> getSeUserCount(LocalDate startDate, LocalDate endDate);

    //获取指定起止时间内的每天作品总数
    public List<SeUserWorkCountDto> getSeUserWorkCount(LocalDate startDate, LocalDate endDate);

    //获取指定起止时间内的每天在线时长
    public List<SeOnlineTimeDto> gettOnlineTime(LocalDate startDate, LocalDate endDate);

    //获取指定起止时间内的每天收入总额
    public List<SysIncomeDto> getSysIncome(LocalDate startDate, LocalDate endDate);

    // 获取指定起止时间内的每天资源位购买数量
    public List<SourceUseCountDto> getSourceUserCount(LocalDate startDate, LocalDate endDate);




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

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

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

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



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