package com.sohu.cache.dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.sohu.cache.entity.AppClientExceptionStat;
import com.sohu.cache.entity.ClientInstanceException;
import com.sohu.cache.web.util.Page;
/**
* 客户端异常dao
*
* @author leifu
* @Date 2015年1月20日
* @Time 上午11:50:06
*/
public interface AppClientExceptionStatDao {
/**
* 保存上报异常
*
* @param appClientExceptionStat
*/
void save(AppClientExceptionStat appClientExceptionStat);
/**
* 获取客户端异常列表
*
* @param appId 应用id
* @param startTime 开始收集时间
* @param endTime 结束收集时间
* @param type 异常类型(ClientExceptionType)
* @param clientIp 客户端ip
* @return
*/
List<AppClientExceptionStat> getAppExceptionList(@Param("appId") Long appId, @Param("startTime") long startTime,
@Param("endTime") long endTime, @Param("type") int type, @Param("clientIp") String clientIp, @Param("page") Page page);
/**
* 获取客户端异常个数
*
* @param appId 应用id
* @param startTime 开始收集时间
* @param endTime 结束收集时间
* @param type 异常类型(ClientExceptionType)
* @param clientIp 客户端ip
* @return
*/
int getAppExceptionCount(@Param("appId") Long appId, @Param("startTime") long startTime,
@Param("endTime") long endTime, @Param("type") int type, @Param("clientIp") String clientIp);
/**
* 大于collectTime后实例的异常统计
* @param ip
* @param collectTime
* @return
*/
List<ClientInstanceException> getInstanceExceptionStat(@Param("ip") String ip, @Param("collectTime") long collectTime);
/**
* 批量保存
* @param appClientExceptionStatList
* @return
*/
int batchSave(@Param("appClientExceptionStatList") List<AppClientExceptionStat> appClientExceptionStatList);
}