package com.fs.crm.service;

import java.util.List;
import com.fs.crm.domain.CrmMsg;
import com.fs.crm.param.CrmMsgListQueryParam;
import com.fs.crm.vo.CrmMsgListQueryVO;

/**
 *  消息Service接口
 * 
 * @author fs
 * @date 2022-12-21
 */
public interface ICrmMsgService 
{
    /**
     * 查询 消息
     * 
     * @param msgId  消息ID
     * @return  消息
     */
    public CrmMsg selectCrmMsgById(Long msgId);

    /**
     * 查询 消息列表
     * 
     * @param crmMsg  消息
     * @return  消息集合
     */
    public List<CrmMsg> selectCrmMsgList(CrmMsg crmMsg);

    /**
     * 新增 消息
     * 
     * @param crmMsg  消息
     * @return 结果
     */
    public int insertCrmMsg(CrmMsg crmMsg);

    /**
     * 修改 消息
     * 
     * @param crmMsg  消息
     * @return 结果
     */
    public int updateCrmMsg(CrmMsg crmMsg);

    /**
     * 批量删除 消息
     * 
     * @param msgIds 需要删除的 消息ID
     * @return 结果
     */
    public int deleteCrmMsgByIds(Long[] msgIds);

    /**
     * 删除 消息信息
     * 
     * @param msgId  消息ID
     * @return 结果
     */
    public int deleteCrmMsgById(Long msgId);

    List<CrmMsgListQueryVO> selectCrmMsgListQuery(CrmMsgListQueryParam param);

    Long selectCrmMsgCountByUserId(Long userId);

    Long selectCrmMsgCountByUserId(Long userId, int type);

    int setAllRead(Long userId);

    String selectCrmNewMsgByUserId(long userId, int type);

    int setReadByType(Long userId,Integer msgType);
}
