package com.ruoyi.cai.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.Rank;
import com.ruoyi.cai.dto.admin.vo.RankAdminVo;
import com.ruoyi.cai.rank.RankNode;
import com.ruoyi.common.core.domain.PageQuery;

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

/**
 * 榜单Service接口
 *
 * @author 77
 * @date 2024-01-20
 */
public interface RankService extends IService<Rank> {

    void saveDayRank(LocalDate date,Integer type);

    void saveWeekRank(LocalDate date,Integer type);

    void saveMonthRank(LocalDate date,Integer type);

    void giveRank(Long rankId);

    List<RankNode> getLoveRankLastWeek(int limit);

    List<RankNode> getLoveRankLastDay(int limit);

    List<RankNode> getInviteRankLastWeek(int limit);

    List<RankNode> getInviteRankLastDay(int limit);

    Page<RankAdminVo> pageAdmin(PageQuery pageQuery, RankAdminVo bo);
}
