package com.fs.company.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.fs.company.domain.CompanySmsLogs;
import com.fs.company.param.CompanySmsLogsListParam;
import com.fs.company.param.CompanySmsLogsListQueryParam;
import com.fs.company.param.CompanyStatisticsParam;
import com.fs.company.vo.CompanySmsLogsListQueryVO;
import com.fs.company.vo.CompanySmsLogsListVO;
import com.fs.company.vo.CompanySmsLogsStatisticsVO;

/**
 * 短信发送记录Service接口
 * 
 * @author fs
 * @date 2023-01-09
 */
public interface ICompanySmsLogsService 
{
    /**
     * 查询短信发送记录
     * 
     * @param logsId 短信发送记录ID
     * @return 短信发送记录
     */
    public CompanySmsLogs selectCompanySmsLogsById(Long logsId);

    /**
     * 查询短信发送记录列表
     * 
     * @param companySmsLogs 短信发送记录
     * @return 短信发送记录集合
     */
    public List<CompanySmsLogsListVO> selectCompanySmsLogsList(CompanySmsLogsListParam companySmsLogs);

    /**
     * 新增短信发送记录
     * 
     * @param companySmsLogs 短信发送记录
     * @return 结果
     */
    public int insertCompanySmsLogs(CompanySmsLogs companySmsLogs);

    /**
     * 修改短信发送记录
     * 
     * @param companySmsLogs 短信发送记录
     * @return 结果
     */
    public int updateCompanySmsLogs(CompanySmsLogs companySmsLogs);

    /**
     * 批量删除短信发送记录
     * 
     * @param logsIds 需要删除的短信发送记录ID
     * @return 结果
     */
    public int deleteCompanySmsLogsByIds(Long[] logsIds);

    /**
     * 删除短信发送记录信息
     * 
     * @param logsId 短信发送记录ID
     * @return 结果
     */
    public int deleteCompanySmsLogsById(Long logsId);

    List<CompanySmsLogsListQueryVO> selectCompanySmsLogsListQuery(CompanySmsLogsListQueryParam param);


    CompanySmsLogs selectCompanySmsLogsByMid(String mid);

    List<JSONObject> selectSmsLogsCounts(Map<String, Object> toMap);

    List<CompanySmsLogsStatisticsVO> selectSmsLogsStatisticsList(CompanyStatisticsParam param);

    CompanySmsLogs selectCompanySmsLogsByMobile(String mobile);
}
