package com.sooka.system.mapper;

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

import com.business.domain.ImputationData;
import com.sooka.system.domain.TUInterfaceinfo;
import org.apache.ibatis.annotations.Param;

/**
 * 【接口应用审批管理】Mapper接口
 *
 * @author lei
 * @date 2021-07-01
 */
public interface TUInterfaceinfoMapper
{
    /**
     * 查询【接口应用审批管理】
     *
     * @param id 【接口应用审批管理】ID
     * @return 【接口应用审批管理】
     */
    public TUInterfaceinfo selectTUInterfaceinfoById(String id);

    /**
     * 查询【接口应用审批管理】列表
     *
     * @param tUInterfaceinfo 【接口应用审批管理】
     * @return 【接口应用审批管理】集合
     */
    public List<TUInterfaceinfo> selectTUInterfaceinfoList(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 查询【接口数据条数】列表
     *
     * @param tUInterfaceinfo 【接口数据条数】
     * @return 【接口数据条数】集合
     */
    public List<TUInterfaceinfo> selectTUInterfaceinfoDataNumList(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 根据接口IDS获取接口LIST
     * */
    public List<TUInterfaceinfo> selectTUInterfaceinfoListByIds(String[] ids);

    /**
     * 根据数据应用IDS获取数据应用LIST
     * */
    public List<TUInterfaceinfo> selectTUInterfaceDataListByIds(String[] ids);

    /**
     * 新增【接口应用审批管理】
     *
     * @param tUInterfaceinfo 【接口应用审批管理】
     * @return 结果
     */
    public int insertTUInterfaceinfo(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 修改【接口应用审批管理】
     *
     * @param tUInterfaceinfo 【接口应用审批管理】
     * @return 结果
     */
    public int updateTUInterfaceinfo(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 查询【库表数据条数】
     *
     * @param tUInterfaceinfo 【库表数据条数】
     * @return 结果
     */
    public TUInterfaceinfo selectCountByTableName(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 修改【接口成功条数】
     *
     * @param tUInterfaceinfo 【接口成功条数】
     * @return 结果
     */
    public int updateInterfaceCallsuccnum(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 修改【归集数据分析】
     *
     * @param imputationData 【归集数据分析】
     * @return 结果
     */
    public ImputationData imputationData(Map imputationData);

    /**
     * 修改【接口数据条数】
     *
     * @param tUInterfaceinfo 【接口数据条数】
     * @return 结果
     */
    public int updateTUInterfaceinfoDataNum(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 更新【接口数据条数】
     *
     * @param tUInterfaceinfo 【接口数据条数】
     * @return 结果
     */
    public int updateDataNum(TUInterfaceinfo tUInterfaceinfo);

    /**
     * 删除【接口应用审批管理】
     *
     * @param id 【接口应用审批管理】ID
     * @return 结果
     */
    public int deleteTUInterfaceinfoById(String id);

    /**
     * 批量删除【接口应用审批管理】
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTUInterfaceinfoByIds(String[] ids);

    public Integer getMaxCode();

    /**
     * 查询接口数量
     * @return 结果
     */
    public List<TUInterfaceinfo> getCount();

    /**
     * 查询接口占比
     * @param year
     * @return 结果
     */
    public List<TUInterfaceinfo> getPercent(@Param("year") String year);

    /**
     * 查询接口占比
     * @param year
     * @return 结果
     */
    public List<TUInterfaceinfo> getSubPercent(@Param("deptId") String deptId, @Param("year") String year);

    /**
     * 接口审批分析
     * @return 结果
     */
    public TUInterfaceinfo getSubJkspfx(@Param("deptId") String deptId, @Param("year") String year);

    /**
     * 审批分析
     * @return 结果
     */
    public TUInterfaceinfo getSubSpfx(@Param("deptId") String deptId, @Param("year") String year);

    /**
     * 查询省接口调用频次TOP5
     * @return 结果
     */
    public List<TUInterfaceinfo> getProvinceTop5Frequency();

    /**
     * 查询市接口调用频次TOP5
     * @return 结果
     */
    public List<TUInterfaceinfo> getCityTop5Frequency();

    /**
     * 查询省接口调用频次TOP20
     * @return 结果
     */
    public List<TUInterfaceinfo> getProvinceTop20Frequency();

    /**
     * 查询市接口调用频次TOP20
     * @return 结果
     */
    public List<TUInterfaceinfo> getCityTop20Frequency();

    /**
     * 查询归集接口排名
     * @return 结果
     */
    public List<TUInterfaceinfo> getImputationInterfaceRanking();

    /**
     * 查询归集数据排名
     * @return 结果
     */
    public List<TUInterfaceinfo> getImputationDataRanking();

    /**
     * 查询故障接口数量
     * @return 结果
     * */
    public Integer getInterfaceCount(@Param("status") String status);

    /**
     * 根据部门ID查询分类数量
     * @return 结果
     * */
    public TUInterfaceinfo getShareCountByDeptId(@Param("deptId") String deptId);

    public void getGuijiCountByDeptId(Map map);

    /**
     * 接口调用频次
     * @return 结果
     * */
    public int callFrequency();

    /**
     * 接口归集频次
     * @return 结果
     * */
    public int pushFrequency();

    /**
     * 接口共享频次
     * @return 结果
     * */
    public int pullFrequency();

    /**
     * 查询接口日志台账
     * @return 结果
     */
    public List<TUInterfaceinfo> interfaceLogList(TUInterfaceinfo interfaceinfo);

    /**
     * 查询共享应用分析
     * @return 结果
     */
    public List<TUInterfaceinfo> getCallNumByDept(@Param("deptId") Long deptId);
}
