package com.iailab.module.system.service.social; import com.iailab.framework.common.exception.ServiceException; import com.iailab.framework.common.pojo.PageResult; import com.iailab.module.system.api.social.dto.SocialUserBindReqDTO; import com.iailab.module.system.api.social.dto.SocialUserRespDTO; import com.iailab.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; import com.iailab.module.system.dal.dataobject.social.SocialUserDO; import com.iailab.module.system.enums.social.SocialTypeEnum; import javax.validation.Valid; import java.util.List; /** * 社交用户 Service 接å£ï¼Œä¾‹å¦‚说社交平å°çš„授æƒç™»å½• * * @author iailab */ public interface SocialUserService { /** * 获得指定用户的社交用户列表 * * @param userId ç”¨æˆ·ç¼–å· * @param userType 用户类型 * @return 社交用户列表 */ List<SocialUserDO> getSocialUserList(Long userId, Integer userType); /** * 绑定社交用户 * * @param reqDTO ç»‘å®šä¿¡æ¯ * @return 社交用户 openid */ String bindSocialUser(@Valid SocialUserBindReqDTO reqDTO); /** * å–消绑定社交用户 * * @param userId ç”¨æˆ·ç¼–å· * @param userType 全局用户类型 * @param socialType 社交平å°çš„类型 {@link SocialTypeEnum} * @param openid 社交平å°çš„ openid */ void unbindSocialUser(Long userId, Integer userType, Integer socialType, String openid); /** * 获得社交用户,基于 userId * * @param userType 用户类型 * @param userId ç”¨æˆ·ç¼–å· * @param socialType 社交平å°çš„类型 * @return 社交用户 */ SocialUserRespDTO getSocialUserByUserId(Integer userType, Long userId, Integer socialType); /** * 获得社交用户 * * 在认è¯ä¿¡æ¯ä¸æ£ç¡®çš„情况下,也会抛出 {@link ServiceException} 业务异常 * * @param userType 用户类型 * @param socialType 社交平å°çš„类型 * @param code 授æƒç * @param state state * @return 社交用户 */ SocialUserRespDTO getSocialUserByCode(Integer userType, Integer socialType, String code, String state); // ==================== 社交用户 CRUD ==================== /** * 获得社交用户 * * @param id ç¼–å· * @return 社交用户 */ SocialUserDO getSocialUser(Long id); /** * 获得社交用户分页 * * @param pageReqVO 分页查询 * @return 社交用户分页 */ PageResult<SocialUserDO> getSocialUserPage(SocialUserPageReqVO pageReqVO); }