package com.zanxiang.game.data.serve.service;

import com.zanxiang.game.data.serve.pojo.dto.*;
import com.zanxiang.game.data.serve.pojo.vo.RoleChatDetailVO;
import com.zanxiang.game.data.serve.pojo.vo.RoleChatVO;
import com.zanxiang.game.data.serve.pojo.vo.RoleGameCountryVO;
import com.zanxiang.game.data.serve.utils.Page;
import com.zanxiang.game.module.base.pojo.vo.SendMsgResultVO;
import com.zanxiang.game.module.base.pojo.vo.SendMsgVO;

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

public interface IRoleManageService {

    Page<Map> getRoleRechargeRanking(RoleRechargeRankingDTO dto);

    Page<Map> getRoleCombatRanking(RoleCombatRankingDTO dto);

    /**
     * 创建发送消息任务
     * @param dto
     */
    void createSendMsgTask(SendMsgTaskDTO dto);


    /**
     * 获取角色列表
     * @param dto
     * @return
     */
    List<Map> getRoleList(RoleRechargeRankingDTO dto);

    /**
     * 获取发送消息任务列表
     * @param dto
     * @return
     */
    Page<SendMsgVO> getSendMsgTaskList(MsgTaskDTO dto);

    /**
     * 查询发送消息任务结果
     * @param msgTaskResultDto
     * @return
     */
    Page<SendMsgResultVO> getSendMsgResultList(MsgTaskResultDTO msgTaskResultDto);


    /**
     * 角色等级列表
     * @param dto
     * @return
     */
    Page<Map> levelListOfPage(RoleLevelParamDTO dto);

    /**
     * 角色IP监控信息列表
     * @param dto
     * @return
     */
    Page<Map> ipInfoListOfPage(RoleIpInfoParamDTO dto);

    /**
     * 游戏帮派角色列表
     * @param dto
     * @return
     */
    Map<String, List<RoleGameCountryVO>> gameCountryDataList(GameCountryParamDTO dto);

    /**
     * 游戏帮派角色列表
     * @param dto
     * @return
     */
    Page<Map> gameCountryRoleList(RoleGameCountryParamDTO dto);

    /**
     * 游戏帮派列表
     * @return
     */
    List<Map> gameCountryList(GameCountryParamDTO dto);



    /**
     * 角色ip登录详情
     * @param dto
     * @return
     */
    List<Map> roleIpDetailListOfPage(RoleIpInfoParamDTO dto);


    List<Map> ipDetailList(RoleIpInfoParamDTO dto);

    List<Map> ipCountList(List<String> ip,String roleId);

    /**
     * 查询玩家详情列表
     * @param dto
     * @return
     */
    List<Map> userDetailList(RoleIpInfoParamDTO dto);



    List<Map> userDetailList(List<Long> userIds,RoleIpInfoParamDTO dto);


    /**
     * 查询角色详情列表
     * @param dto
     * @return
     */
    List<Map> roleDetailList(RoleIpInfoParamDTO dto);

    /**
     * gameOrder 角色详情列表
     * @param roleId
     * @return
     */
    List<Map>  roleDetailList(List<String> roleId);

    List<Map> roleDetailList(List<String> roleId,RoleIpInfoParamDTO roleIpInfoParamDTO);

    /**
     * 查询疑似同玩家角色详情列表
     * @param dto
     * @return
     */
    List<Map> suspectedRoleDetailList(RoleIpInfoParamDTO dto);

    /**
     * 角色日维度的聊天数量统计列表
     * @param dto
     * @return
     */
    Page<RoleChatVO> chatListOfPage(RoleChatParamDTO dto);

    /**
     * 角色聊天详情
     * @param dto
     * @return
     */
    Page<RoleChatDetailVO> chatDetail(RoleChatDetailParamDTO dto);
}
