package com.sundot.airport.item.service;

import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
import com.sundot.airport.common.domain.portrait.IndicatorCalculateParams;
import com.sundot.airport.item.domain.ItemLargeScreenCommonDto;
import com.sundot.airport.item.domain.ItemLargeScreenDailyTrendDto;
import com.sundot.airport.item.domain.ItemLargeScreenStatsDto;
import com.sundot.airport.item.domain.ItemLargeScreenTimeSpanDto;

import java.util.List;
import java.util.Map;

/**
 * 用户排名服务接口
 */
public interface UserRankingService {

    /**
     * 获取用户在指定层级的详细排名信息
     *
     * @param dto   查询参数
     * @param level 层级类型：station(全站), department(科室), team(班组)
     * @return 用户在该层级的详细排名信息
     */
    ItemLargeScreenCommonDto getUserRankingByLevel(BaseLargeScreenQueryParamDto dto, String level);

    /**
     * 计算站级查获统计
     *
     * @param params
     * @return
     */
    List<ItemLargeScreenStatsDto> calculateStationItemSeizure(IndicatorCalculateParams params);


    /**
     * 获取按天统计的查获趋势数据
     *
     * @param queryDto 查询参数
     * @return 按天统计的查获趋势数据
     */
    List<ItemLargeScreenDailyTrendDto> getDailyTrendData(BaseLargeScreenQueryParamDto queryDto);
}