houzhongjian
2024-09-14 818a0170d8f2950d52cc7300a302356bbc523236
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.social;
H 2
3 import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
4 import com.iailab.framework.common.pojo.PageResult;
5 import com.iailab.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO;
6 import com.iailab.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO;
7 import com.iailab.module.system.dal.dataobject.social.SocialClientDO;
8 import com.iailab.module.system.enums.social.SocialTypeEnum;
9 import com.xingyuv.jushauth.model.AuthUser;
10 import me.chanjar.weixin.common.bean.WxJsapiSignature;
11
12 import javax.validation.Valid;
13
14 /**
15  * 社交应用 Service 接口
16  *
17  * @author iailab
18  */
19 public interface SocialClientService {
20
21     /**
22      * 获得社交平台的授权 URL
23      *
24      * @param socialType 社交平台的类型 {@link SocialTypeEnum}
25      * @param userType 用户类型
26      * @param redirectUri 重定向 URL
27      * @return 社交平台的授权 URL
28      */
29     String getAuthorizeUrl(Integer socialType, Integer userType, String redirectUri);
30
31     /**
32      * 请求社交平台,获得授权的用户
33      *
34      * @param socialType 社交平台的类型
35      * @param userType 用户类型
36      * @param code 授权码
37      * @param state 授权 state
38      * @return 授权的用户
39      */
40     AuthUser getAuthUser(Integer socialType, Integer userType, String code, String state);
41
42     // =================== 微信公众号独有 ===================
43
44     /**
45      * 创建微信公众号的 JS SDK 初始化所需的签名
46      *
47      * @param userType 用户类型
48      * @param url 访问的 URL 地址
49      * @return 签名
50      */
51     WxJsapiSignature createWxMpJsapiSignature(Integer userType, String url);
52
53     // =================== 微信小程序独有 ===================
54
55     /**
56      * 获得微信小程序的手机信息
57      *
58      * @param userType 用户类型
59      * @param phoneCode 手机授权码
60      * @return 手机信息
61      */
62     WxMaPhoneNumberInfo getWxMaPhoneNumberInfo(Integer userType, String phoneCode);
63
64     // =================== 客户端管理 ===================
65
66     /**
67      * 创建社交客户端
68      *
69      * @param createReqVO 创建信息
70      * @return 编号
71      */
72     Long createSocialClient(@Valid SocialClientSaveReqVO createReqVO);
73
74     /**
75      * 更新社交客户端
76      *
77      * @param updateReqVO 更新信息
78      */
79     void updateSocialClient(@Valid SocialClientSaveReqVO updateReqVO);
80
81     /**
82      * 删除社交客户端
83      *
84      * @param id 编号
85      */
86     void deleteSocialClient(Long id);
87
88     /**
89      * 获得社交客户端
90      *
91      * @param id 编号
92      * @return 社交客户端
93      */
94     SocialClientDO getSocialClient(Long id);
95
96     /**
97      * 获得社交客户端分页
98      *
99      * @param pageReqVO 分页查询
100      * @return 社交客户端分页
101      */
102     PageResult<SocialClientDO> getSocialClientPage(SocialClientPageReqVO pageReqVO);
103
104 }