package com.fs.qw.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fs.qw.domain.QwSession;
import com.fs.qw.vo.QwContactListVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 企微会话Mapper接口
 *
 * @author fs
 * @date 2024-12-17
 */
public interface QwSessionMapper extends BaseMapper<QwSession>
{
    /**
     * 查询企微会话
     *
     * @param sessionId 企微会话主键
     * @return 企微会话
     */
    public QwSession selectQwSessionBySessionId(Long sessionId);

    /**
     * 查询企微会话列表
     *
     * @param qwSession 企微会话
     * @return 企微会话集合
     */
    public List<QwSession> selectQwSessionList(QwSession qwSession);

    /**
     * 新增企微会话
     *
     * @param qwSession 企微会话
     * @return 结果
     */
    public int insertQwSession(QwSession qwSession);

    /**
     * 修改企微会话
     *
     * @param qwSession 企微会话
     * @return 结果
     */
    public int updateQwSession(QwSession qwSession);

    /**
     * 删除企微会话
     *
     * @param sessionId 企微会话主键
     * @return 结果
     */
    public int deleteQwSessionBySessionId(Long sessionId);

    /**
     * 批量删除企微会话
     *
     * @param sessionIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQwSessionBySessionIds(Long[] sessionIds);


    @Select("select * from qw_session where qw_ext_id = #{qwExtId} and qw_user_id = #{qwUserId}")
    QwSession selectQwSessionByExtIdAndQwUserId(@Param("qwExtId") Long qwExtId, @Param("qwUserId") Long id);

    /**
     * 根据企微用户ID查询会话列表
     * @param qwUserId  企微用户ID
     * @return  list
     */
    List<QwContactListVO> selectContactListByQwUserId(@Param("qwUserId") Long qwUserId);
}
