package com.tourism.webadmin.back.dao;

import com.tourism.common.core.base.dao.BaseDaoMapper;
import com.tourism.webadmin.app.website.vo.MainMemberVo;
import com.tourism.webadmin.back.model.TourImMember;
import com.tourism.webadmin.back.model.TourImMessage;
import org.apache.ibatis.annotations.Param;

import java.util.*;

/**
 * 聊天群聊成员数据操作访问接口。
 *
 * @author 吃饭睡觉
 * @date 2024-09-06
 */
public interface TourImMemberMapper extends BaseDaoMapper<TourImMember> {

    /**
     * 批量插入对象列表。
     *
     * @param tourImMemberList 新增对象列表。
     */
    void insertList(List<TourImMember> tourImMemberList);

    /**
     * 获取过滤后的对象列表。
     *
     * @param tourImMemberFilter 主表过滤对象。
     * @param orderBy 排序字符串，order by从句的参数。
     * @return 对象列表。
     */
    List<TourImMember> getTourImMemberList(
            @Param("tourImMemberFilter") TourImMember tourImMemberFilter, @Param("orderBy") String orderBy);

    List<MainMemberVo> getTourMemberList(@Param("userId") Long  userId);

    List<TourImMessage> selectLastMessage(@Param("ids") List<String> ids,@Param("userId")Long userId);

    TourImMessage getLast(@Param("types") List<String> types,@Param("userId") String userId);

    TourImMessage getLastSysMessage(@Param("type") String type,@Param("userId") String userId);

    List<TourImMessage> getCount(@Param("list") ArrayList<String> ls, @Param("userId") Long userId,@Param("time") Date time);
}
