package com.ssj.service.sys.push.service;

import com.ssj.bean.sys.push.domain.SconXinge;
import com.ssj.framework.core.common.service.BaseService;

import java.util.Map;

public interface SconXingeService extends BaseService<SconXinge, String> {
	
	/**
	 * @param userId
	 * @param xingeToken
	 * @param platform (ANDROID,IOS)
	 * @param platformType 1:贝壳端 2:家长端 3:学生端 4:老师端 5:校长端
	
	 * 方法说明:保存或者更新用户信鸽token信息
	
	 * 创立日期:2018年8月23日 下午2:34:18
	 * 创建人:yangcan
	
	 */
	public void saveOrUpdate(String userId, String xingeToken, String platform, int platformType);

	public SconXinge findByPushUserIdAndPlatformType(String userId, int platformType);


	/**
	 * @param derver 推送的贝壳号
	 * @param content 推送内容

	 * 方法说明:上海小塾环信推送接口(上海推送专用)

	 * 创立日期:2019年3月27日 下午5:26:24
	 * 创建人:yangcan

	 */
	public void asynPushPdThreadTask(String derver, String content);

    /**
     * @param pushUserId 推送目标用户id
	 * @param vipId 推送小孩vipId,platformType =1时用到，默认为null表示不作处理
     * @param platformType 1:贝壳端 2:家长端 3:学生端 4:老师端 5:校长端
     * @param content 推送内容
     * @param pushModule 推送模块(PUSH_HOMEWORK:作业模块,PUSH_PROBLEM:难题模块,PUSH_LESSON:一对一模块,PUSH_OTHER:其他模块)

     * 方法说明:

     * 创立日期:2018年8月24日 上午10:14:21
     * 创建人:yangcan

     */
    public void asynPushThreadTask(String pushUserId, String vipId, int platformType, String content, String pushModule);

    /**
     * @param title
     * @param content
     * @param platform 推送平台(ANDROID,IOS,ALL)
     * @param platformType 1:贝壳端 2:家长端 3:学生端 4:老师端 5:校长端

     * 方法说明:腾讯信鸽异步推送所有设备

     * 创立日期:2018年8月23日 下午2:54:06
     * 创建人:yangcan

     */
    public void asynPushAllThreadTask(String title, String content, String platform, int platformType);


    public void asynPushOnlineMessageThreadTask(String pushUserId, Map<String, Object> custom);

	/**
	 * @param pushUserId 推送目标用户id
	 * @param platformType 2:家长端 3:学生端 4:老师端 5:校长端
	 * @param messageType 参考：com.ssj.enums.XinGePushMessageTypeEnum
	 * @param businessType 参考：com.ssj.enums.XinGePushBusinessTypeEnum
	 * @param title 推送消息的标题
	 * @param content 推送消息的内容
	 * @param tokenType 家长端：APP，老师端：APP_TEACHER
	 * @param pushModule 推送模块(PUSH_HOMEWORK:作业模块,PUSH_PROBLEM:难题模块,PUSH_LESSON:一对一模块,PUSH_OTHER:其他模块)
	 */
	void asynPushThreadTask(String pushUserId, int platformType, String messageType, String businessType, String title, String content, String tokenType, String pushModule);

	/**
	 * 推送学习成长报告通知
	 * @param pushUserId 目标用户userId
	 * @param vipId 学生id
	 * @param content 通知内容
	 * @param businessType 业务类型
	 */
    void asynPushGrowthReportThreadTask(String pushUserId, String vipId, String content, String businessType);

	/**
	 * 此推送方法只适用小塾学伴pad端场景
	 * @param vipId 小孩vipId
	 * @param title 推送标题
	 * @param custom 推送json内容
	 */
	public void asynPushPadThreadTask(String vipId, String title, Map<String, Object> custom);
}
