package com.ruoyi.frequency.appealdetail.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.page.PageResult;
import com.ruoyi.controller.req.AppealMessagePageReq;
import com.ruoyi.controller.req.SendMessageReq;
import com.ruoyi.controller.resp.AppealMessagePageResp;
import com.ruoyi.frequency.appealdetail.entity.AppealDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.response.ResponseData;
import com.ruoyi.vo.UserVo;

/**
 * 申诉详情Service接口
 * 
 * @author zj
 * @date 2023-10-13
 */
public interface AppealDetailService extends IService<AppealDetail>
{
    /**
     * 查询申诉详情
     * 
     * @param id 申诉详情主键
     * @return 申诉详情
     */
    public AppealDetail selectAppealDetailById(Long id);

    /**
     * 查询申诉详情列表
     * 
     * @param appealDetail 申诉详情
     * @return 申诉详情集合
     */
    public List<AppealDetail> selectAppealDetailList(AppealDetail appealDetail);

    /**
     * 新增申诉详情
     * 
     * @param appealDetail 申诉详情
     * @return 结果
     */
    public int insertAppealDetail(AppealDetail appealDetail);

    /**
     * 修改申诉详情
     * 
     * @param appealDetail 申诉详情
     * @return 结果
     */
    public int updateAppealDetail(AppealDetail appealDetail);

    /**
     * 批量删除申诉详情
     * 
     * @param ids 需要删除的申诉详情主键集合
     * @return 结果
     */
    public int deleteAppealDetailByIds(Long[] ids);

    /**
     * 删除申诉详情信息
     * 
     * @param id 申诉详情主键
     * @return 结果
     */
    public int deleteAppealDetailById(Long id);

    /**
     *申诉详情消息对话
     * @param req
     * @param userVo
     * @return
     */
    ResponseData<PageResult<Page<AppealMessagePageResp>>> appealMessagePage(AppealMessagePageReq req, UserVo userVo);


    /**
     * 发送消息
     * @param req
     * @param userVo
     * @return
     */
    ResponseData sendMessage(SendMessageReq req, UserVo userVo);
}
