/*
 * Author: wangjian
 * 生成Service
 */
package com.tofly.feesapi.sms.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.feesapi.common.core.ResultRespone;

import com.tofly.feesapi.sms.entity.SmsMessage;
import com.tofly.feesapi.sms.entity.dto.SmsMessageDto;
import com.tofly.feesapi.sms.entity.dto.SendTxlxMessageDto;
import com.tofly.feesapi.sms.entity.dto.SmsMessageYhxxDto;
import com.tofly.feesapi.sms.entity.vo.SmsMessageVo;
import com.tofly.feesapi.sms.entity.vo.SmsMessageYhxxVo;

/**
 * 短信消息
 *
 * @author sunjian
 * @date Fri Nov 08 00:00:00 CST 2024
 */
public interface ISmsMessageService extends IService<SmsMessage> {
    /**
     * 自定义分页查询
     *
     * @param page
     * @param smsmessageDto
     * @return
     */
    Page<SmsMessageVo> getSmsMessagePage(Page page, SmsMessageDto smsmessageDto);

    /**
     * 批量更新发送状态 重新发送
     * @param ids
     * @return
     */
    ResultRespone<Object> reSendByIds(String ids);

    /**
     * 自定义短信发送
     * @param phone 电话号码
     * @param content 短信内容
     * @return
     */
    ResultRespone<Object> customizeSendMessage(String phone, String content);

    /**
     * 获取短信信息用户列表
     * @param page
     * @param dto
     * @return
     */
    Page<SmsMessageYhxxVo> getSmsMessageYhxxVoList(Page page, SmsMessageYhxxDto dto);

    /**
     * 获取短信信息用户列表(包含欠费)
     * @param page
     * @param dto
     * @return
     */
    Page<SmsMessageYhxxVo> getSmsMessageYhqfxxVoList(Page page, SmsMessageYhxxDto dto);

    /**
     * 获取预付费短信信息用户列表（预付费金额小于10元）
     * @param page
     * @param dto
     * @return
     */
    Page<SmsMessageYhxxVo> getSmsMessageyffVoPage(Page page, SmsMessageYhxxDto dto);

    /**
     * 批量发送自定义短信
     * @param dto  条件参数(按照勾选发送，需要传入yhbhs)
     * @return
     */
    ResultRespone<Object> batchSendMessageYhxx(SmsMessageYhxxDto dto);

    /**
     * 批量发送模板短信
     * @param dto  条件参数(按照勾选发送，需要传入yhbhs)
     * @return
     */
    ResultRespone<Object> batchSendMessageYhqfxx(SmsMessageYhxxDto dto);

    ResultRespone<Object> SendTxlxMessage(SendTxlxMessageDto dto);

}
