package com.zanxiang.game.module.manage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zanxiang.game.module.manage.pojo.params.GameGiftPackLinkLogListParam;
import com.zanxiang.game.module.manage.pojo.vo.GameGiftPackLinkLogVO;
import com.zanxiang.game.module.mybatis.entity.GameGiftPackLinkLog;

import java.util.Map;

/**
 * @author : lingfeng
 * @time : 2022-09-23
 * @description : 游戏礼包码链接访问日志
 */
public interface IGameGiftPackLinkLogService extends IService<GameGiftPackLinkLog> {

    /**
     * 链接访问记录仪提交
     *
     * @param url : 链接地址
     * @return : 返回记录主键id
     */
    Long linkVisitLogPush(String url);

    /**
     * 发送手机验证码
     *
     * @param linkLogId   : 访问记录id
     * @param phoneNumber : 手机号
     * @return : 返回是否发送成功
     */
    boolean randomCodeSend(Long linkLogId, String phoneNumber);

    /**
     * 角色验证
     *
     * @param linkLogId : 访问记录id
     * @param serverId  : 区服id
     * @param roleName  : 角色名称
     * @return : 返回验证结果
     */
    Map<String, Object> gameUserRoleCheck(Long linkLogId, String serverId, String roleName);

    /**
     * 分页查新访问记录
     *
     * @param param : 查询参数
     * @return : 返回数据列表
     */
    IPage<GameGiftPackLinkLogVO> list(GameGiftPackLinkLogListParam param);

    /**
     * 根据链接id查询区服信息
     *
     * @param linkId : 链接id
     * @return : 返回游戏区服信息
     */
    Map<String, String> getSourceGameServerByLinkId(Long linkId);

    /**
     * 获取游戏原始区服信息
     *
     * @param linkLogId : 访问日志id
     * @return : 返回游戏区服信息
     */
    Map<String, String> getSourceGameServerByLinkLogId(Long linkLogId);
}