houzhongjian
2024-09-14 818a0170d8f2950d52cc7300a302356bbc523236
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.social;
H 2
3 import com.iailab.framework.common.exception.ServiceException;
4 import com.iailab.framework.common.pojo.PageResult;
5 import com.iailab.module.system.api.social.dto.SocialUserBindReqDTO;
6 import com.iailab.module.system.api.social.dto.SocialUserRespDTO;
7 import com.iailab.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO;
8 import com.iailab.module.system.dal.dataobject.social.SocialUserDO;
9 import com.iailab.module.system.enums.social.SocialTypeEnum;
10
11 import javax.validation.Valid;
12 import java.util.List;
13
14 /**
15  * 社交用户 Service 接口,例如说社交平台的授权登录
16  *
17  * @author iailab
18  */
19 public interface SocialUserService {
20
21     /**
22      * 获得指定用户的社交用户列表
23      *
24      * @param userId   用户编号
25      * @param userType 用户类型
26      * @return 社交用户列表
27      */
28     List<SocialUserDO> getSocialUserList(Long userId, Integer userType);
29
30     /**
31      * 绑定社交用户
32      *
33      * @param reqDTO 绑定信息
34      * @return 社交用户 openid
35      */
36     String bindSocialUser(@Valid SocialUserBindReqDTO reqDTO);
37
38     /**
39      * 取消绑定社交用户
40      *
41      * @param userId 用户编号
42      * @param userType 全局用户类型
43      * @param socialType 社交平台的类型 {@link SocialTypeEnum}
44      * @param openid 社交平台的 openid
45      */
46     void unbindSocialUser(Long userId, Integer userType, Integer socialType, String openid);
47
48     /**
49      * 获得社交用户,基于 userId
50      *
51      * @param userType 用户类型
52      * @param userId 用户编号
53      * @param socialType 社交平台的类型
54      * @return 社交用户
55      */
56     SocialUserRespDTO getSocialUserByUserId(Integer userType, Long userId, Integer socialType);
57
58     /**
59      * 获得社交用户
60      *
61      * 在认证信息不正确的情况下,也会抛出 {@link ServiceException} 业务异常
62      *
63      * @param userType 用户类型
64      * @param socialType 社交平台的类型
65      * @param code 授权码
66      * @param state state
67      * @return 社交用户
68      */
69     SocialUserRespDTO getSocialUserByCode(Integer userType, Integer socialType, String code, String state);
70
71     // ==================== 社交用户 CRUD ====================
72
73     /**
74      * 获得社交用户
75      *
76      * @param id 编号
77      * @return 社交用户
78      */
79     SocialUserDO getSocialUser(Long id);
80
81     /**
82      * 获得社交用户分页
83      *
84      * @param pageReqVO 分页查询
85      * @return 社交用户分页
86      */
87     PageResult<SocialUserDO> getSocialUserPage(SocialUserPageReqVO pageReqVO);
88
89 }