package com.ssj.service.conch.common.service;

import com.ssj.bean.conch.conch.domain.ConchDerver;
import com.ssj.bean.weixin.libmy.domain.LibVip;
import com.ssj.framework.core.util.ResponseEntity;
import com.ssj.service.conch.parents.request.version4.SwipeQrCodeReq;
import com.ssj.service.conch.parents.v1.request.SwipeQrCodeV1Req;
import com.ssj.service.conch.student.request.SwipeQrCodeRequest;

/**
 * @author yangcan
 * 类描述:公共接口(各端均可调用)
 * 创建时间:2018年8月10日 上午11:43:43

 */
public interface ConchCommonService {

	/**
	 * @param userId
	 * @param req
	 * @return
	
	 * 方法说明:家长端app扫描二维码通用接口
	
	 * 创立日期:2018年9月17日 下午7:33:55
	 * 创建人:yangcan
	
	 */
	public ResponseEntity swipeQrCode(String userId,SwipeQrCodeReq req);
	
	/**
	 * @param userId
	 * @param req
	 * @return
	
	 * 方法说明:家长端app扫描二维码通用接口V1
	
	 * 创立日期:2018年9月17日 下午7:33:47
	 * 创建人:yangcan
	
	 */
	public ResponseEntity swipeQrCodeV1(String userId,SwipeQrCodeV1Req req);
	
	/**
	 * @param userId
	 * @param req
	 * @return
	
	 * 方法说明:家长端app扫描二维码通用接口V1(优化版)
	
	 * 创立日期:2019年1月10日 上午11:12:29
	 * 创建人:yangcan
	
	 */
	public ResponseEntity newSwipeQrCodeV1(String userId,SwipeQrCodeV1Req req);
	
	/**
	 * @param request
	 * @return
	
	 * 方法说明:学生端app扫描二维码通用接口
	
	 * 创立日期:2018年8月16日 上午11:23:51
	 * 创建人:yangcan
	
	 */
	public ResponseEntity swipeQrCode(SwipeQrCodeRequest request);
	
	/**
	 * @param userId
	 * @param libVip
	 * @param platform
	 * @param xingeToken
	 * @return
	
	 * 方法说明:学生端切换账号or扫描登录接口
	
	 * 创立日期:2018年8月27日 下午4:10:27
	 * 创建人:yangcan
	
	 */
	public ResponseEntity swipeLogin(String userId,LibVip libVip,String platform,String xingeToken);

	/**
	 * 绑定小塾
	 * @param vipId
	 * @param longitude
	 * @param latitude
	 * @param derver
	 * @return
	 */
	ResponseEntity bindDerver(String vipId, String longitude, String latitude, String derver);

	ResponseEntity bindDerver(String vipId, String longitude, String latitude, String derver, String userId);

	/**
	 * 绑定小塾赠送2个月作业吧服务
	 * @param vipId
	 */
	public void giveBindConchZybService(String vipId);

	/**
	 * 绑定小塾赠送服务
	 *
	 * @param vipId
	 * @param days
	 */
	void giveBindConchZybServiceV1(String vipId, int days);
	/**
	 * 绑定小塾赠送服务
	 *
	 * @param vipId
	 * @param days
	 * @param useType
	 */
	void giveBindConchZybServiceV2(String vipId, int days, int useType);

	/**
	 * 绑定小塾赠送服务
	 * @param vipId
	 * @param conchDerver
	 */
	void giveBindConchZybServiceV3(String vipId, ConchDerver conchDerver);

	/**
	 * 试用小塾操作
	 *
	 * @param responseEntity
	 * @param userId
	 * @param derver
	 * @param useDays 试用天数
	 * @return true:程序终止，false：程序继续执行
	 */
	boolean conchTryServiceOperate(ResponseEntity responseEntity, String userId, String derver, int useDays);

	/**
	 * 解绑所有到期的试用小塾
	 */
	void unbindTryDerver();
}
