package com.fs.qw.mapper;


import com.fs.qw.domain.QwConversation;
import com.fs.qw.domain.QwUser;
import com.fs.qw.vo.QwUserVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 企微功能账号管理Mapper接口
 *
 * @author fs
 * @date 2023-08-23
 */
public interface QwConversationMapper
{
    /**
     * 查询企微会话管理
     *
     * @param id 企微会话管理 ID
     * @return 企微会话管理
     */
    public QwConversation selectQwConversationById(Long id);

    /**
     * 查询企微会话管理 列表
     *
     * @param qwConversation 企微会话管理
     * @return 企微会话管理 集合
     */
    public List<QwConversation> selectQwConversationList(QwConversation qwConversation);

    /**
     * 新增企微会话管理
     *
     * @param qwConversation 企微会话管理
     * @return 结果
     */
    public int insertQwConversation(QwConversation qwConversation);

    /**
     * 修改企微会话管理
     *
     * @param qwConversation 企微会话管理
     * @return 结果
     */
    public int updateQwConversation(QwConversation qwConversation);

    /**
     * 删除企微会话管理
     *
     * @param id 企微会话管理 ID
     * @return 结果
     */
    public int deleteQwConversationById(Long id);

    /**
     * 批量删除企微会话管理
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteQwConversationByIds(Long[] ids);

    QwConversation selectByConversationId(String conversationId);

    int updateLastMessage(QwConversation qwConversation);

    @Select("SELECT * FROM qw_conversation c LEFT JOIN qw_message m on c.last_message_id=m.id WHERE FIND_IN_SET(#{userId}, ancestors) > 0   order by m.send_time desc")
    List<QwConversation> selectConByUSerId(String userId);

    @Select("select * from qw_conversation WHERE conversation_id = #{conversationId} ")
    QwConversation selectConByConversationId(String conversationId);

    @Select("select type from qw_conversation WHERE conversation_id = #{conversationId}")
    int selectConType(String conversationId);

    @Update("update qw_conversation set ext = #{ext} where conversation_id = #{conversationId}")
    void updateExt(@Param("conversationId") String  conversationId,@Param("ext") String ext);


    @Update("update qw_conversation set ancestors = #{ancestors} where conversation_id = #{conversationId}")
    void updateAncestors(@Param("conversationId") String  conversationId,@Param("ancestors") String ancestors);


}
