package com.palmnest.service.estateserve;

import com.palmnest.application.bean.Page;
import com.palmnest.application.dto.WechatMessageDto;
import com.palmnest.application.dto.WxMessageConfigVo;
import com.palmnest.application.dto.input.SMSSearchDto;
import com.palmnest.model.estateserve.SmsAuthCode;
import com.palmnest.service.GenericManager;

/**
 * 短信验证码业务层接口
 *
 * @author yubing
 * @since 2017-1-16
 */
public interface SmsAuthCodeManager extends GenericManager<SmsAuthCode, Integer> {

	/**
	 * 发送短信
	 *
	 * @param userMobile 手机号码
	 * @param content    短信内容
	 * @return 成功：Sucess
	 */
	public String sendSms(String userMobile, String content);

	/**
	 * 查询验证码
	 *
	 * @param userMobile 手机号码
	 * @param code       验证码
	 * @param type       类型
	 * @param minute     间隔时间（比如15分钟邮箱，此值为15；如果不验证时效性，填0）
	 * @return
	 */
	public SmsAuthCode getSmsAuthCode(String userMobile, String code, String type, int minute);

	public String smsSend(String userMobile, String content);

	/**
	 * 发送短信消息 通过短信账号密码
	 *
	 * @param account 短信平台账号
	 * @param pwd     短信平台密码
	 * @param content 短信内容
	 * @param phones  接收短信手机号
	 * @return
	 */
	public String smsSend(String account, String pwd, String content, String phones);

	/**
	 * 发送短信验证码方法(如需发送非验证码短信,重新封装方法)
	 * <p>
	 * 根据项目id查询当前项目配置的短信平台 并且发送短信消息
	 *
	 * @param orgId   项目id
	 * @param content 短信内容
	 * @param phones  接收短信手机号
	 * @param smsType 短信类型
	 * @param code    短信验证码
	 * @return
	 */
	public String smsSendByOrgId(String orgId, String content, String phones, String code, Integer smsType);

	/**
	 * 查询短信发送记录
	 *
	 * @param dto
	 * @return
	 */
	Page findList(SMSSearchDto dto);

	public String Phonemsg(String projectId, String content, String phones);
	
	public String smsSendByOrgId(WechatMessageDto dto);
	
	public WxMessageConfigVo getWxMessageConfig(Integer orgId,String businessCode);
}
