package org.xyzh.log.mapper.log;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.xyzh.common.core.page.PageParam;
import org.xyzh.api.log.dto.TbSysLoginLogDTO;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * @description    系统登录日志Mapper接口
 * @filename    TbSysLoginLogMapper.java
 * @author    yslg
 * @copyright yslg
 * @since 2025-11-07
 */
@Mapper
public interface TbSysLoginLogMapper extends BaseMapper<TbSysLoginLogDTO> {

    /**
     * @description    插入系统登录日志
     * @param    loginLogDTO    系统登录日志DTO
     * @return    int    插入结果
     * @author    yslg
     * @since 2025-11-07
     */
    int insertLoginLog(TbSysLoginLogDTO loginLogDTO);

    /**
     * @description    更新系统登录日志
     * @param    loginLogDTO    系统登录日志DTO
     * @return    int    更新结果
     * @author    yslg
     * @since 2025-11-07
     */
    int updateLoginLog(TbSysLoginLogDTO loginLogDTO);

    /**
     * @description    删除系统登录日志
     * @param    loginLogDTO    系统登录日志DTO
     * @return    int    删除结果
     * @author    yslg
     * @since 2025-11-07
     */
    int deleteLoginLog(TbSysLoginLogDTO loginLogDTO);

    /**
     * @description    根据登录日志ID查询系统登录日志
     * @param    loginLogId    登录日志ID
     * @return    TbSysLoginLogDTO    系统登录日志DTO
     * @author    yslg
     * @since 2025-11-07
     */
    TbSysLoginLogDTO getLoginLogById(String loginLogId);

    /**
     * @description    根据条件查询系统登录日志列表
     * @param    filter    系统登录日志DTO
     * @return    List<TbSysLoginLogDTO>    系统登录日志列表
     * @author    yslg
     * @since 2025-11-07
     */
    List<TbSysLoginLogDTO> getLoginLogByFilter(@Param("filter") TbSysLoginLogDTO filter);

    /**
     * @description    根据条件查询系统登录日志分页列表
     * @param    filter    系统登录日志DTO
     * @param    pageParam    分页参数
     * @return    List<TbSysLoginLogDTO>    系统登录日志列表
     * @author    yslg
     * @since 2025-11-07
     */
    List<TbSysLoginLogDTO> getLoginLogPageByFilter(@Param("filter") TbSysLoginLogDTO filter, @Param("pageParam") PageParam pageParam);
    
    /**
     * @description    根据条件查询系统登录日志数量
     * @param    filter    系统登录日志DTO
     * @return    int    系统登录日志数量
     * @author    yslg
     * @since 2025-11-07
     */
    int getLoginLogCount(TbSysLoginLogDTO filter);
}

