
package com.tmerclub.cloud.api.auth.feign;

import com.tmerclub.cloud.api.auth.vo.AuthSocialVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;

/**
 * @author tmerclub
 * @date 2020/9/22
 */
public interface AuthSocialFeignClient {

    /**
     * 获取根据尝试社交登录时，保存的临时的uid获取社交
     * @param tempUid tempUid
     * @return 用户社交账号信息
     */
    ServerResponseEntity<AuthSocialVO> getByTempUid(String tempUid);

    /**
     * 通过小程序信息获取用户手机号
     * @param sessionKey 小程序session_key
     * @param encryptedData 微信小程序的encryptedData
     * @param ivStr 微信小程序的ivStr
     * @return mobile
     */
    ServerResponseEntity<String> getMobileByMaInfo(String sessionKey, String encryptedData, String ivStr);


    /**
     * 根据第三方账号id和第三方系统类型获取账号
     * @param bizUserId
     * @param socialType
     * @return
     */
    ServerResponseEntity<AuthSocialVO> getByUserIdAndSocialType(String bizUserId, Integer socialType);

    /**
     * 根据code获取openId
     * @param code
     * @param type
     * @return
     */
    ServerResponseEntity<String> getOpenIdByCode(String code,
                                                 Integer type);

    /**
     * 绑定通联支付标识
     * @return
     */
    ServerResponseEntity<Void> bindAllinpayPayAcct();

    /**
     * 根据uid和第三方系统类型获取账号
     * @param uid
     * @param socialType
     * @return
     */
    ServerResponseEntity<AuthSocialVO> getByUidAndSocialType(Long uid, Integer socialType);

}
