package jnpf.memberLog.mapper;


import jnpf.model.memberLog.dto.LogMemberAssociationDto;
import jnpf.model.memberLog.po.LogMemberAssociation;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface LogMemberAssociationMapper {

    /**
     * 批量新增成员信息
     * @param logMemberAssociationList 成员信息
     * @param id 日志主表id
     */
    void addMemberAssociation(@Param("logMemberAssociationList") List<LogMemberAssociationDto> logMemberAssociationList, @Param("id") String id);

    /**
     * 通过日志id获取关联用户信息
     * @param logId 日志id
     * @return 返回值
     */
    List<LogMemberAssociation> getReceiveRange(@Param("logId") String logId);

    /**
     * 日志阅读相关查询
     * @param logId 日志id
     * @return 返回值
     */
    List<LogMemberAssociation> getReadDependence(@Param("logId") String logId, @Param("read") Integer read);

    /**
     * 获取日志点赞列表
     * @param logId 日志id
     * @return 返回值
     */
    List<LogMemberAssociation> getLikeList(@Param("logId") String logId);

    /**
     * 修改指定日志下的所有人为未读
     * @param id 日志id
     */
    void updateUnRead(@Param("id") String id);

    /**
     * 当前用户点赞状态
     * @param logId 日志id
     * @param userId 用户id
     * @return 返回值
     */
    String getMeLike(@Param("logId") String logId, @Param("userId") String userId);

    /**
     * 获取当前用户在该日志中汇报和抄送中未读的记录
     * @param userId 用户id
     * @param logId 日志id
     * @return 返回值
     */
    List<String> getMeUnRead(@Param("userId") String userId, @Param("logId") String logId);

    /**
     * 阅读指定信息
     * @param ids ids
     */
    void readByIds(@Param("ids") List<String> ids);
}