Kaynağa Gözat

update 优化 !pr370 完成三方登录授权功能

疯狂的狮子Li 1 yıl önce
ebeveyn
işleme
9448782f45
27 değiştirilmiş dosya ile 1400 ekleme ve 990 silme
  1. 17 18
      ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
  2. 24 28
      ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
  3. 27 114
      ruoyi-admin/src/main/resources/application-dev.yml
  4. 61 0
      ruoyi-admin/src/main/resources/application-prod.yml
  5. 2 3
      ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/SocialConfig.java
  6. 5 0
      ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java
  7. 1 0
      ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java
  8. 3 9
      ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/AuthRedisStateCache.java
  9. 2 5
      ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java
  10. 8 13
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java
  11. 6 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java
  12. 11 10
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java
  13. 10 7
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
  14. 0 23
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SocialUserMapper.java
  15. 22 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java
  16. 0 46
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java
  17. 51 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java
  18. 21 16
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
  19. 4 5
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml
  20. 70 0
      script/sql/oracle/oracle_ry_vue_5.X.sql
  21. 68 0
      script/sql/postgres/postgres_ry_vue_5.X.sql
  22. 373 687
      script/sql/ry_vue_5.X.sql
  23. 220 0
      script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
  24. 69 0
      script/sql/update/oracle/update_5.0-5.1.sql
  25. 68 0
      script/sql/update/postgres/update_5.0-5.1.sql
  26. 219 0
      script/sql/update/sqlserver/update_5.0-5.1.sql
  27. 38 0
      script/sql/update/update_5.0-5.1.sql

+ 17 - 18
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java

@@ -25,7 +25,7 @@ import org.dromara.common.social.utils.SocialUtils;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.system.domain.bo.SysTenantBo;
 import org.dromara.system.domain.vo.SysTenantVo;
-import org.dromara.system.service.ISocialUserService;
+import org.dromara.system.service.ISysSocialService;
 import org.dromara.system.service.ISysConfigService;
 import org.dromara.system.service.ISysTenantService;
 import org.dromara.web.domain.vo.LoginTenantVo;
@@ -36,7 +36,6 @@ import org.dromara.web.service.SysRegisterService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.io.IOException;
 import java.net.URL;
 import java.util.List;
 
@@ -57,8 +56,7 @@ public class AuthController {
     private final SysRegisterService registerService;
     private final ISysConfigService configService;
     private final ISysTenantService tenantService;
-    private final ISocialUserService socialUserService;
-
+    private final ISysSocialService socialUserService;
 
 
     /**
@@ -133,13 +131,14 @@ public class AuthController {
 
     /**
      * 认证授权
-     * @param source
+     *
+     * @param source 登录来源
+     * @return 结果
      */
     @GetMapping("/binding/{source}")
-    @ResponseBody
-    public R<LoginVo> authBinding(@PathVariable("source") String source, HttpServletRequest request){
+    public R<String> authBinding(@PathVariable("source") String source) {
         SocialLoginConfigProperties obj = socialProperties.getType().get(source);
-        if (ObjectUtil.isNull(obj)){
+        if (ObjectUtil.isNull(obj)) {
             return R.fail(source + "平台账号暂不支持");
         }
         AuthRequest authRequest = SocialUtils.getAuthRequest(source,
@@ -152,16 +151,16 @@ public class AuthController {
 
     /**
      * 第三方登录回调业务处理
-     * @param source
-     * @param callback
-     * @param request
-     * @return
+     *
+     * @param source   登录来源
+     * @param callback 授权响应实体
+     * @return 结果
      */
     @SuppressWarnings("unchecked")
     @GetMapping("/social-login/{source}")
-    public R<String> socialLogin(@PathVariable("source") String source, AuthCallback callback, HttpServletRequest request) throws IOException {
+    public R<String> socialLogin(@PathVariable("source") String source, AuthCallback callback) {
         SocialLoginConfigProperties obj = socialProperties.getType().get(source);
-        if (ObjectUtil.isNull(obj)){
+        if (ObjectUtil.isNull(obj)) {
             return R.fail(source + "平台账号暂不支持");
         }
         AuthRequest authRequest = SocialUtils.getAuthRequest(source,
@@ -169,16 +168,16 @@ public class AuthController {
             obj.getClientSecret(),
             obj.getRedirectUri());
         AuthResponse<AuthUser> response = authRequest.login(callback);
-        return loginService.socialLogin(source, response, request);
+        return loginService.socialLogin(source, response);
     }
 
     /**
      * 取消授权
-     * @param socialId
+     *
+     * @param socialId socialId
      */
     @DeleteMapping(value = "/unlock/{socialId}")
-    public R<Void> unlockSocial(@PathVariable Long socialId)
-    {
+    public R<Void> unlockSocial(@PathVariable Long socialId) {
         Boolean rows = socialUserService.deleteWithValidById(socialId);
         return rows ? R.ok() : R.fail("取消授权失败");
     }

+ 24 - 28
ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java

@@ -6,7 +6,6 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import jakarta.servlet.http.HttpServletRequest;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import me.zhyd.oauth.model.AuthResponse;
@@ -33,20 +32,18 @@ import org.dromara.common.tenant.exception.TenantException;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.common.web.config.properties.CaptchaProperties;
 import org.dromara.system.domain.SysUser;
-import org.dromara.system.domain.bo.SocialUserBo;
-import org.dromara.system.domain.vo.SocialUserVo;
+import org.dromara.system.domain.bo.SysSocialBo;
+import org.dromara.system.domain.vo.SysSocialVo;
 import org.dromara.system.domain.vo.SysTenantVo;
 import org.dromara.system.domain.vo.SysUserVo;
 import org.dromara.system.mapper.SysUserMapper;
-import org.dromara.system.service.ISocialUserService;
+import org.dromara.system.service.ISysSocialService;
 import org.dromara.system.service.ISysPermissionService;
 import org.dromara.system.service.ISysTenantService;
-import org.dromara.system.service.ISysUserService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.io.IOException;
 import java.time.Duration;
 import java.util.Date;
 import java.util.List;
@@ -63,7 +60,7 @@ import java.util.function.Supplier;
 public class SysLoginService {
 
     private final SysUserMapper userMapper;
-    private final ISocialUserService socialUserService;
+    private final ISysSocialService sysSocialService;
     private final CaptchaProperties captchaProperties;
     private final ISysPermissionService permissionService;
     private final ISysTenantService tenantService;
@@ -170,47 +167,46 @@ public class SysLoginService {
      *
      * @param source   登录来源
      * @param authUser 授权响应实体
-     * @param request  Http请求对象
      * @return 统一响应实体
      */
-    public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser, HttpServletRequest request) {
+    public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser) {
         // 判断授权响应是否成功
         if (!authUser.ok()) {
             return R.fail("对不起,授权信息验证不通过,请退出重试!");
         }
         AuthUser authUserData = authUser.getData();
-        SocialUserVo user = socialUserService.selectSocialUserByAuthId(authUserData.getSource() + authUserData.getUuid());
+        SysSocialVo user = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid());
         if (ObjectUtil.isNotNull(user)) {
-            //执行登录和记录登录信息操作
+            // 执行登录和记录登录信息操作
             return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData);
         } else {
             // 判断是否已登录
             if (LoginHelper.getUserId() == null) {
                 return R.fail("授权失败,请先登录才能绑定");
             }
-            SocialUserBo socialUserBo = new SocialUserBo();
-            socialUserBo.setUserId(LoginHelper.getUserId());
-            socialUserBo.setAuthId(authUserData.getSource() + authUserData.getUuid());
-            socialUserBo.setSource(authUserData.getSource());
-            socialUserBo.setUserName(authUserData.getUsername());
-            socialUserBo.setNickName(authUserData.getNickname());
-            socialUserBo.setAvatar(authUserData.getAvatar());
-            socialUserBo.setOpenId(authUserData.getUuid());
-            BeanUtils.copyProperties(authUserData.getToken(), socialUserBo);
-
-            socialUserService.insertByBo(socialUserBo);
-            SysUserVo lodingData = loadUserByUsername(LoginHelper.getTenantId(), LoginHelper.getUsername());
-            //执行登录和记录登录信息操作
-            return loginAndRecord(lodingData.getTenantId(), socialUserBo.getUserName(), authUserData);
+            SysSocialBo bo = new SysSocialBo();
+            bo.setUserId(LoginHelper.getUserId());
+            bo.setAuthId(authUserData.getSource() + authUserData.getUuid());
+            bo.setSource(authUserData.getSource());
+            bo.setUserName(authUserData.getUsername());
+            bo.setNickName(authUserData.getNickname());
+            bo.setAvatar(authUserData.getAvatar());
+            bo.setOpenId(authUserData.getUuid());
+            BeanUtils.copyProperties(authUserData.getToken(), bo);
+
+            sysSocialService.insertByBo(bo);
+            SysUserVo sysUser = loadUserByUsername(LoginHelper.getTenantId(), LoginHelper.getUsername());
+            // 执行登录和记录登录信息操作
+            return loginAndRecord(sysUser.getTenantId(), sysUser.getUserName(), authUserData);
         }
     }
 
     /**
      * 执行登录和记录登录信息操作
      *
-     * @param tenantId  租户ID
-     * @param userName  用户名
-     * @param authUser  授权用户信息
+     * @param tenantId 租户ID
+     * @param userName 用户名
+     * @param authUser 授权用户信息
      * @return 统一响应实体
      */
     private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) {

+ 27 - 114
ruoyi-admin/src/main/resources/application-dev.yml

@@ -179,150 +179,63 @@ sms:
     territory: ap-guangzhou
 
 
-
+--- # 三方授权
 justauth:
   enabled: true
   type:
-    QQ:
+    qq:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/qq/callback
+      redirect-uri: http://localhost:80/social-login?source=qq
       union-id: false
-    WEIBO:
+    weibo:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/weibo/callback
+      redirect-uri: http://localhost:80/social-login?source=weibo
     gitee:
-      client-id: 38eaaa1b77b5e064313057a2f5745ce3a9f3e7686d9bd302c7df2f308ef6db81
-      client-secret: 2e633af8780cb9fe002c4c7291b722db944402e271efb99b062811f52d7da1ff
+      client-id: 914******************98
+      client-secret: 02*****************ac
       redirect-uri: http://localhost:80/social-login?source=gitee
-    DINGTALK:
+    dingtalk:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/dingtalk/callback
-    BAIDU:
+      redirect-uri: http://localhost:80/social-login?source=dingtalk
+    baidu:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/baidu/callback
-    CSDN:
+      redirect-uri: http://localhost:80/social-login?source=baidu
+    csdn:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/csdn/callback
-    CODING:
+      redirect-uri: http://localhost:80/social-login?source=csdn
+    coding:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/coding/callback
+      redirect-uri: http://localhost:80/social-login?source=coding
       coding-group-name: xx
-    OSCHINA:
+    oschina:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/oschina/callback
-    ALIPAY:
+      redirect-uri: http://localhost:80/social-login?source=oschina
+    alipay:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/alipay/callback
+      redirect-uri: http://localhost:80/social-login?source=alipay
       alipay-public-key: MIIB**************DAQAB
-    WECHAT_OPEN:
+    wechat_open:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_open/callback
-    WECHAT_MP:
+      redirect-uri: http://localhost:80/social-login?source=wechat_open
+    wechat_mp:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_mp/callback
-    WECHAT_ENTERPRISE:
+      redirect-uri: http://localhost:80/social-login?source=wechat_mp
+    wechat_enterprise:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_enterprise/callback
+      redirect-uri: http://localhost:80/social-login?source=wechat_enterprise
       agent-id: 1000002
-    TAOBAO:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/taobao/callback
-    GOOGLE:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/google/callback
-    FACEBOOK:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/facebook/callback
-    DOUYIN:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/douyin/callback
-    LINKEDIN:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/linkedin/callback
-    MICROSOFT:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/microsoft/callback
-    MI:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/mi/callback
-    TOUTIAO:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/toutiao/callback
-    TEAMBITION:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/teambition/callback
-    RENREN:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/renren/callback
-    PINTEREST:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/pinterest/callback
-    STACK_OVERFLOW:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/stack_overflow/callback
-      stack-overflow-key: asd*********asd
-    HUAWEI:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/huawei/callback
-    KUJIALE:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/kujiale/callback
-    GITLAB:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/gitlab/callback
-    MEITUAN:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/meituan/callback
-    ELEME:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/eleme/callback
-    TWITTER:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/twitter/callback
-    XMLY:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/xmly/callback
-      # 设备唯一标识ID
-      device-id: xxxxxxxxxxxxxx
-      # 客户端操作系统类型,1-iOS系统,2-Android系统,3-Web
-      client-os-type: 3
-      # 客户端包名,如果 clientOsType 为1或2时必填。对Android客户端是包名,对IOS客户端是Bundle ID
-      #pack-id: xxxx
-    FEISHU:
-      client-id: 10**********6
-      client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/feishu/callback
-    JD:
+    gitlab:
       client-id: 10**********6
       client-secret: 1f7d08**********5b7**********29e
-      redirect-uri: http://oauth.xkcoding.com/demo/oauth/jd/callback
+      redirect-uri: http://localhost:80/social-login?source=gitlab

+ 61 - 0
ruoyi-admin/src/main/resources/application-prod.yml

@@ -180,3 +180,64 @@ sms:
     sdkAppId: appid
     #地域信息默认为 ap-guangzhou 如无特殊改变可不用设置
     territory: ap-guangzhou
+
+--- # 三方授权
+justauth:
+  enabled: true
+  type:
+    qq:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=qq
+      union-id: false
+    weibo:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=weibo
+    gitee:
+      client-id: 914******************98
+      client-secret: 02*****************ac
+      redirect-uri: http://localhost:80/social-login?source=gitee
+    dingtalk:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=dingtalk
+    baidu:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=baidu
+    csdn:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=csdn
+    coding:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=coding
+      coding-group-name: xx
+    oschina:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=oschina
+    alipay:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=alipay
+      alipay-public-key: MIIB**************DAQAB
+    wechat_open:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=wechat_open
+    wechat_mp:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=wechat_mp
+    wechat_enterprise:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=wechat_enterprise
+      agent-id: 1000002
+    gitlab:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://localhost:80/social-login?source=gitlab

+ 2 - 3
ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/SocialConfig.java

@@ -4,7 +4,6 @@ import me.zhyd.oauth.cache.AuthStateCache;
 import org.dromara.common.social.config.properties.SocialProperties;
 import org.dromara.common.social.utils.AuthRedisStateCache;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 
@@ -17,8 +16,8 @@ import org.springframework.context.annotation.Bean;
 public class SocialConfig {
 
     @Bean
-    public AuthStateCache authStateCache() {
-        return new AuthRedisStateCache();
+    public AuthStateCache authStateCache(SocialProperties socialProperties) {
+        return new AuthRedisStateCache(socialProperties);
     }
 
 }

+ 5 - 0
ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java

@@ -2,6 +2,11 @@ package org.dromara.common.social.config.properties;
 
 import lombok.Data;
 
+/**
+ * 社交登录配置
+ *
+ * @author thiszhc
+ */
 @Data
 public class SocialLoginConfigProperties {
 

+ 1 - 0
ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java

@@ -9,6 +9,7 @@ import java.util.Map;
 
 /**
  * Social 配置属性
+ *
  * @author thiszhc
  */
 @Data

+ 3 - 9
ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/AuthRedisStateCache.java

@@ -1,18 +1,16 @@
 package org.dromara.common.social.utils;
 
-import jakarta.annotation.PostConstruct;
+import lombok.AllArgsConstructor;
 import me.zhyd.oauth.cache.AuthStateCache;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.social.config.properties.SocialProperties;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.ValueOperations;
 
 import java.time.Duration;
 
+@AllArgsConstructor
 public class AuthRedisStateCache implements AuthStateCache {
 
-    private SocialProperties socialProperties;
+    private final SocialProperties socialProperties;
 
     /**
      * 存入缓存
@@ -22,7 +20,6 @@ public class AuthRedisStateCache implements AuthStateCache {
      */
     @Override
     public void cache(String key, String value) {
-        // TODO: 自定义存入缓存
         RedisUtils.setCacheObject(key, value, Duration.ofMillis(socialProperties.getTimeout()));
     }
 
@@ -35,7 +32,6 @@ public class AuthRedisStateCache implements AuthStateCache {
      */
     @Override
     public void cache(String key, String value, long timeout) {
-        // TODO: 自定义存入缓存
         RedisUtils.setCacheObject(key, value, Duration.ofMillis(timeout));
     }
 
@@ -47,7 +43,6 @@ public class AuthRedisStateCache implements AuthStateCache {
      */
     @Override
     public String get(String key) {
-        // TODO: 自定义获取缓存内容
         return RedisUtils.getCacheObject(key);
     }
 
@@ -59,7 +54,6 @@ public class AuthRedisStateCache implements AuthStateCache {
      */
     @Override
     public boolean containsKey(String key) {
-        // TODO: 自定义判断key是否存在
         return RedisUtils.hasKey(key);
     }
 }

+ 2 - 5
ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java

@@ -1,6 +1,5 @@
 package org.dromara.common.social.utils;
 
-import me.zhyd.oauth.cache.AuthStateCache;
 import me.zhyd.oauth.config.AuthConfig;
 import me.zhyd.oauth.exception.AuthException;
 import me.zhyd.oauth.request.*;
@@ -12,10 +11,8 @@ import me.zhyd.oauth.request.*;
  */
 public class SocialUtils {
 
-    public static AuthRequest getAuthRequest(String source,
-                                             String clientId,
-                                             String clientSecret,
-                                             String redirectUri) throws AuthException {
+    public static AuthRequest getAuthRequest(String source, String clientId,
+                                             String clientSecret, String redirectUri) throws AuthException {
         AuthRequest authRequest = null;
         switch (source.toLowerCase()) {
             case "dingtalk" ->

+ 8 - 13
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java

@@ -3,9 +3,10 @@ package org.dromara.system.controller.system;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.web.core.BaseController;
-import org.dromara.system.domain.vo.SocialUserVo;
-import org.dromara.system.service.ISocialUserService;
+import org.dromara.system.domain.vo.SysSocialVo;
+import org.dromara.system.service.ISysSocialService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -24,18 +25,16 @@ import java.util.List;
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/system/social")
-public class SocialUserController extends BaseController {
+public class SysSocialController extends BaseController {
 
-    private final ISocialUserService socialUserService;
+    private final ISysSocialService socialUserService;
 
     /**
      * 查询社会化关系列表
      */
-//    这里改成用户默认的。只能查看自己的权限更好哦
-//    @SaCheckPermission("system:user:list")
     @GetMapping("/list")
-    public R<List<SocialUserVo>> list() {
-        return R.ok(socialUserService.queryList());
+    public R<List<SysSocialVo>> list() {
+        return R.ok(socialUserService.queryListByUserId(LoginHelper.getUserId()));
     }
 
 
@@ -44,14 +43,10 @@ public class SocialUserController extends BaseController {
      *
      * @param id 主键
      */
-//    这里改成用户默认的。只能查看自己的权限更好哦
-//    @SaCheckPermission("system:user:query")
     @GetMapping("/{id}")
-    public R<SocialUserVo> getInfo(@NotNull(message = "主键不能为空")
+    public R<SysSocialVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable String id) {
         return R.ok(socialUserService.queryById(id));
     }
 
-
-
 }

+ 6 - 6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SocialUser.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java

@@ -1,22 +1,22 @@
 package org.dromara.system.domain;
 
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.dromara.common.tenant.core.TenantEntity;
 
 import java.io.Serial;
 
 /**
- * 社会化关系对象 social_user
+ * 社会化关系对象 sys_social
  *
  * @author thiszhc
- * @date 2023-06-12
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@TableName("social_user")
-public class SocialUser extends BaseEntity {
+@TableName("sys_social")
+public class SysSocial extends TenantEntity {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 11 - 10
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SocialUserBo.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java

@@ -1,25 +1,26 @@
 package org.dromara.system.domain.bo;
 
-import org.dromara.common.tenant.core.TenantEntity;
-import org.dromara.system.domain.SocialUser;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
 import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
+import lombok.NoArgsConstructor;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.tenant.core.TenantEntity;
+import org.dromara.system.domain.SysSocial;
 
 /**
- * 社会化关系业务对象 social_user
+ * 社会化关系业务对象 sys_social
  *
  * @author Lion Li
- * @date 2023-06-12
  */
 @Data
+@NoArgsConstructor
 @EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = SocialUser.class, reverseConvertGenerate = false)
-public class SocialUserBo extends TenantEntity {
+@AutoMapper(target = SysSocial.class, reverseConvertGenerate = false)
+public class SysSocialBo extends TenantEntity {
 
     /**
      * 主键

+ 10 - 7
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SocialUserVo.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java

@@ -4,23 +4,21 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
-import org.dromara.common.tenant.core.TenantEntity;
-import org.dromara.system.domain.SocialUser;
+import org.dromara.system.domain.SysSocial;
 
 import java.io.Serial;
-
+import java.io.Serializable;
 
 
 /**
- * 社会化关系视图对象 social_user
+ * 社会化关系视图对象 sys_social
  *
  * @author thiszhc
- * @date 2023-06-12
  */
 @Data
 @ExcelIgnoreUnannotated
-@AutoMapper(target = SocialUser.class)
-public class SocialUserVo extends TenantEntity {
+@AutoMapper(target = SysSocial.class)
+public class SysSocialVo implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1L;
@@ -31,6 +29,11 @@ public class SocialUserVo extends TenantEntity {
     @ExcelProperty(value = "主键")
     private Long id;
 
+    /**
+     * 租户ID
+     */
+    private String tenantId;
+
     /**
      * 的唯一ID
      */

+ 0 - 23
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SocialUserMapper.java

@@ -1,23 +0,0 @@
-package org.dromara.system.mapper;
-
-import org.dromara.system.domain.SocialUser;
-import org.dromara.system.domain.bo.SysUserBo;
-import org.dromara.system.domain.vo.SocialUserVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 社会化关系Mapper接口
- *
- * @author thiszhc
- * @date 2023-06-12
- */
-public interface SocialUserMapper extends BaseMapperPlus<SocialUser, SocialUserVo> {
-
-    /**
-     * 根据authId查询SocialUser表和SysUser表,返回SocialUserAuthResult映射的对象
-     * @param authId 认证ID
-     * @return SocialUser
-     */
-    SocialUserVo selectSocialUserByAuthId(String authId);
-
-}

+ 22 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java

@@ -0,0 +1,22 @@
+package org.dromara.system.mapper;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.system.domain.SysSocial;
+import org.dromara.system.domain.vo.SysSocialVo;
+
+/**
+ * 社会化关系Mapper接口
+ *
+ * @author thiszhc
+ */
+public interface SysSocialMapper extends BaseMapperPlus<SysSocial, SysSocialVo> {
+
+    /**
+     * 根据 authId 查询 SysSocial 表和 SysUser 表,返回 SysSocialAuthResult 映射的对象
+     *
+     * @param authId 认证ID
+     * @return SysSocial
+     */
+    SysSocialVo selectByAuthId(String authId);
+
+}

+ 0 - 46
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java

@@ -1,46 +0,0 @@
-package org.dromara.system.service;
-
-import org.dromara.system.domain.bo.SocialUserBo;
-import org.dromara.system.domain.vo.SocialUserVo;
-
-import java.util.List;
-
-/**
- * 社会化关系Service接口
- *
- * @author thiszhc
- * @date 2023-06-12
- */
-public interface ISocialUserService {
-
-
-    /**
-     * 查询社会化关系
-     */
-    SocialUserVo queryById(String id);
-
-    /**
-     * 查询社会化关系列表
-     */
-    List<SocialUserVo> queryList();
-
-    /**
-     * 新增授权关系
-     */
-    Boolean insertByBo(SocialUserBo bo);
-
-
-    /**
-     * 删除社会化关系信息
-     */
-    Boolean deleteWithValidById(Long id);
-
-
-    /**
-     * 根据authId查询SocialUser表和SysUser表,返回SocialUserAuthResult映射的对象
-     * @param authId 认证ID
-     * @return SocialUser
-     */
-    SocialUserVo selectSocialUserByAuthId(String authId);
-
-}

+ 51 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java

@@ -0,0 +1,51 @@
+package org.dromara.system.service;
+
+import org.dromara.system.domain.bo.SysSocialBo;
+import org.dromara.system.domain.vo.SysSocialVo;
+
+import java.util.List;
+
+/**
+ * 社会化关系Service接口
+ *
+ * @author thiszhc
+ */
+public interface ISysSocialService {
+
+
+    /**
+     * 查询社会化关系
+     */
+    SysSocialVo queryById(String id);
+
+    /**
+     * 查询社会化关系列表
+     */
+    List<SysSocialVo> queryList();
+
+    /**
+     * 查询社会化关系列表
+     */
+    List<SysSocialVo> queryListByUserId(Long userId);
+
+    /**
+     * 新增授权关系
+     */
+    Boolean insertByBo(SysSocialBo bo);
+
+
+    /**
+     * 删除社会化关系信息
+     */
+    Boolean deleteWithValidById(Long id);
+
+
+    /**
+     * 根据 authId 查询 SysSocial 表和 SysUser 表,返回 SysSocialAuthResult 映射的对象
+     * @param authId 认证ID
+     * @return SysSocial
+     */
+    SysSocialVo selectByAuthId(String authId);
+
+
+}

+ 21 - 16
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java

@@ -1,12 +1,13 @@
 package org.dromara.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.system.domain.SocialUser;
-import org.dromara.system.domain.bo.SocialUserBo;
-import org.dromara.system.domain.vo.SocialUserVo;
-import org.dromara.system.mapper.SocialUserMapper;
-import org.dromara.system.service.ISocialUserService;
+import org.dromara.system.domain.SysSocial;
+import org.dromara.system.domain.bo.SysSocialBo;
+import org.dromara.system.domain.vo.SysSocialVo;
+import org.dromara.system.mapper.SysSocialMapper;
+import org.dromara.system.service.ISysSocialService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -19,16 +20,16 @@ import java.util.List;
  */
 @RequiredArgsConstructor
 @Service
-public class SocialUserServiceImpl implements ISocialUserService {
+public class SysSocialServiceImpl implements ISysSocialService {
 
-    private final SocialUserMapper baseMapper;
+    private final SysSocialMapper baseMapper;
 
 
     /**
      * 查询社会化关系
      */
     @Override
-    public SocialUserVo queryById(String id){
+    public SysSocialVo queryById(String id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -36,24 +37,28 @@ public class SocialUserServiceImpl implements ISocialUserService {
      * 授权列表
      */
     @Override
-    public List<SocialUserVo> queryList() {
+    public List<SysSocialVo> queryList() {
         return baseMapper.selectVoList();
     }
 
+    @Override
+    public List<SysSocialVo> queryListByUserId(Long userId) {
+        return baseMapper.selectVoList(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getUserId, userId));
+    }
 
 
     /**
      * 新增社会化关系
      */
     @Override
-    public Boolean insertByBo(SocialUserBo bo) {
-        SocialUser add = MapstructUtils.convert(bo, SocialUser.class);
+    public Boolean insertByBo(SysSocialBo bo) {
+        SysSocial add = MapstructUtils.convert(bo, SysSocial.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             if (add != null) {
                 bo.setId(add.getId());
-            }else {
+            } else {
                 return false;
             }
         }
@@ -64,7 +69,7 @@ public class SocialUserServiceImpl implements ISocialUserService {
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(SocialUser entity) {
+    private void validEntityBeforeSave(SysSocial entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -79,14 +84,14 @@ public class SocialUserServiceImpl implements ISocialUserService {
 
 
     /**
-     * 根据authId查询用户信息
+     * 根据 authId 查询用户信息
      *
      * @param authId 用户id
      * @return 用户信息
      */
     @Override
-    public SocialUserVo selectSocialUserByAuthId(String authId) {
-        return baseMapper.selectSocialUserByAuthId(authId);
+    public SysSocialVo selectByAuthId(String authId) {
+        return baseMapper.selectByAuthId(authId);
     }
 
 }

+ 4 - 5
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SocialUserMapper.xml → ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml

@@ -2,21 +2,20 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.system.mapper.SocialUserMapper">
+<mapper namespace="org.dromara.system.mapper.SysSocialMapper">
 
-    <resultMap type="org.dromara.system.domain.vo.SocialUserVo" id="SocialUserAuthResult">
+    <resultMap type="org.dromara.system.domain.vo.SysSocialVo" id="SysSocialAuthResult">
         <id property="id" column="id"/>
     </resultMap>
 
-    <!-- 根据authId查询SocialUser表和SysUser表,返回SocialUserAuthResult映射的对象 -->
-    <select id="selectSocialUserByAuthId" parameterType="String" resultMap="SocialUserAuthResult">
+    <select id="selectByAuthId" parameterType="String" resultMap="SysSocialAuthResult">
         select b.user_id,
                b.tenant_id,
                b.user_name,
                b.password,
                a.auth_id,
                a.source
-        from social_user a
+        from sys_social a
                  left join sys_user b on a.user_id = b.user_id
         where a.auth_id = #{authId}
     </select>

+ 70 - 0
script/sql/oracle/oracle_ry_vue_5.X.sql

@@ -1,3 +1,73 @@
+-- ----------------------------
+-- 第三方平台授权表
+-- ----------------------------
+create table sys_social
+(
+    id                 number(20)       not null,
+    user_id            number(20)       not null,
+    tenant_id          varchar(20)      default null,
+    auth_id            varchar(255)     not null,
+    source             varchar(255)     not null,
+    open_id            varchar(255)     default null,
+    user_name          varchar(30)      not null,
+    nick_name          varchar(30)      default '',
+    email              varchar(255)     default '',
+    avatar             varchar(500)     default '',
+    access_token       varchar(255)     not null,
+    expire_in          number(100)      default null,
+    refresh_token      varchar(255)     default null,
+    access_code        varchar(255)     default null,
+    union_id           varchar(255)     default null,
+    scope              varchar(255)     default null,
+    token_type         varchar(255)     default null,
+    id_token           varchar(255)     default null,
+    mac_algorithm      varchar(255)     default null,
+    mac_key            varchar(255)     default null,
+    code               varchar(255)     default null,
+    oauth_token        varchar(255)     default null,
+    oauth_token_secret varchar(255)     default null,
+    create_dept        number(20),
+    create_by          number(20),
+    create_time        date,
+    update_by          number(20),
+    update_time        date,
+    del_flag           char(1)          default '0'
+);
+
+alter table sys_social add constraint pk_sys_social primary key (id);
+
+comment on table   sys_social                   is '社会化关系表';
+comment on column  sys_social.id                is '主键';
+comment on column  sys_social.user_id           is '用户ID';
+comment on column  sys_social.tenant_id         is '租户id';
+comment on column  sys_social.auth_id           is '授权+授权openid';
+comment on column  sys_social.source            is '用户来源';
+comment on column  sys_social.open_id           is '原生openid';
+comment on column  sys_social.user_name         is '登录账号';
+comment on column  sys_social.nick_name         is '用户昵称';
+comment on column  sys_social.email             is '用户邮箱';
+comment on column  sys_social.avatar            is '头像地址';
+comment on column  sys_social.access_token      is '用户的授权令牌';
+comment on column  sys_social.expire_in         is '用户的授权令牌的有效期,部分平台可能没有';
+comment on column  sys_social.refresh_token     is '刷新令牌,部分平台可能没有';
+comment on column  sys_social.access_code       is '平台的授权信息,部分平台可能没有';
+comment on column  sys_social.union_id          is '用户的 unionid';
+comment on column  sys_social.scope             is '授予的权限,部分平台可能没有';
+comment on column  sys_social.token_type        is '个别平台的授权信息,部分平台可能没有';
+comment on column  sys_social.id_token          is 'id token,部分平台可能没有';
+comment on column  sys_social.mac_algorithm     is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.mac_key           is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.code              is '用户的授权code,部分平台可能没有';
+comment on column  sys_social.oauth_token       is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.oauth_token_secret is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.create_dept       is '创建部门';
+comment on column  sys_social.create_by         is '创建者';
+comment on column  sys_social.create_time       is '创建时间';
+comment on column  sys_social.update_by         is '更新者';
+comment on column  sys_social.update_time       is '更新时间';
+comment on column  sys_social.del_flag          is '删除标志(0代表存在 2代表删除)';
+
+
 -- ----------------------------
 -- 租户表
 -- ----------------------------

+ 68 - 0
script/sql/postgres/postgres_ry_vue_5.X.sql

@@ -1,3 +1,71 @@
+-- ----------------------------
+-- 第三方平台授权表
+-- ----------------------------
+create table sys_social
+(
+    id                 int8             not null,
+    user_id            int8             not null,
+    tenant_id          varchar(20)      default null::varchar,
+    auth_id            varchar(255)     not null,
+    source             varchar(255)     not null,
+    open_id            varchar(255)     default null::varchar,
+    user_name          varchar(30)      not null,
+    nick_name          varchar(30)      default ''::varchar,
+    email              varchar(255)     default ''::varchar,
+    avatar             varchar(500)     default ''::varchar,
+    access_token       varchar(255)     not null,
+    expire_in          int8             default null::varchar,
+    refresh_token      varchar(255)     default null::varchar,
+    access_code        varchar(255)     default null::varchar,
+    union_id           varchar(255)     default null::varchar,
+    scope              varchar(255)     default null::varchar,
+    token_type         varchar(255)     default null::varchar,
+    id_token           varchar(255)     default null::varchar,
+    mac_algorithm      varchar(255)     default null::varchar,
+    mac_key            varchar(255)     default null::varchar,
+    code               varchar(255)     default null::varchar,
+    oauth_token        varchar(255)     default null::varchar,
+    oauth_token_secret varchar(255)     default null::varchar,
+    create_dept        int8,
+    create_by          int8,
+    create_time        timestamp,
+    update_by          int8,
+    update_time        timestamp,
+    del_flag           char             default '0'::bpchar,
+    constraint "pk_sys_social" primary key (id)
+);
+
+comment on table   sys_social                   is '社会化关系表';
+comment on column  sys_social.id                is '主键';
+comment on column  sys_social.user_id           is '用户ID';
+comment on column  sys_social.tenant_id         is '租户id';
+comment on column  sys_social.auth_id           is '授权+授权openid';
+comment on column  sys_social.source            is '用户来源';
+comment on column  sys_social.open_id           is '原生openid';
+comment on column  sys_social.user_name         is '登录账号';
+comment on column  sys_social.nick_name         is '用户昵称';
+comment on column  sys_social.email             is '用户邮箱';
+comment on column  sys_social.avatar            is '头像地址';
+comment on column  sys_social.access_token      is '用户的授权令牌';
+comment on column  sys_social.expire_in         is '用户的授权令牌的有效期,部分平台可能没有';
+comment on column  sys_social.refresh_token     is '刷新令牌,部分平台可能没有';
+comment on column  sys_social.access_code       is '平台的授权信息,部分平台可能没有';
+comment on column  sys_social.union_id          is '用户的 unionid';
+comment on column  sys_social.scope             is '授予的权限,部分平台可能没有';
+comment on column  sys_social.token_type        is '个别平台的授权信息,部分平台可能没有';
+comment on column  sys_social.id_token          is 'id token,部分平台可能没有';
+comment on column  sys_social.mac_algorithm     is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.mac_key           is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.code              is '用户的授权code,部分平台可能没有';
+comment on column  sys_social.oauth_token       is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.oauth_token_secret is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.create_dept       is '创建部门';
+comment on column  sys_social.create_by         is '创建者';
+comment on column  sys_social.create_time       is '创建时间';
+comment on column  sys_social.update_by         is '更新者';
+comment on column  sys_social.update_time       is '更新时间';
+comment on column  sys_social.del_flag          is '删除标志(0代表存在 2代表删除)';
+
 -- ----------------------------
 -- 租户表
 -- ----------------------------

Dosya farkı çok büyük olduğundan ihmal edildi
+ 373 - 687
script/sql/ry_vue_5.X.sql


+ 220 - 0
script/sql/sqlserver/sqlserver_ry_vue_5.X.sql

@@ -1,3 +1,223 @@
+create table sys_social
+(
+    id                 bigint            NOT NULL,
+    user_id            bigint            NOT NULL,
+    tenant_id          nvarchar(20)      NULL,
+    auth_id            nvarchar(255)     NOT NULL,
+    source             nvarchar(255)     NOT NULL,
+    open_id            nvarchar(255)     NULL,
+    user_name          nvarchar(30)      NOT NULL,
+    nick_name          nvarchar(30)      DEFAULT ('')   NULL,
+    email              nvarchar(255)     DEFAULT ('')   NULL,
+    avatar             nvarchar(500)     DEFAULT ('')   NULL,
+    access_token       nvarchar(255)     NOT NULL,
+    expire_in          bigint            NULL,
+    refresh_token      nvarchar(255)     NULL,
+    access_code        nvarchar(255)     NULL,
+    union_id           nvarchar(255)     NULL,
+    scope              nvarchar(255)     NULL,
+    token_type         nvarchar(255)     NULL,
+    id_token           nvarchar(255)     NULL,
+    mac_algorithm      nvarchar(255)     NULL,
+    mac_key            nvarchar(255)     NULL,
+    code               nvarchar(255)     NULL,
+    oauth_token        nvarchar(255)     NULL,
+    oauth_token_secret nvarchar(255)     NULL,
+    create_dept        bigint,
+    create_by          bigint,
+    create_time        datetime2(7),
+    update_by          bigint,
+    update_time        datetime2(7),
+    del_flag           nchar             DEFAULT ('0')   NULL,
+    CONSTRAINT PK__sys_social__B21E8F2427725F8A PRIMARY KEY CLUSTERED (id)
+    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+    ON [PRIMARY]
+)
+ON [PRIMARY]
+GO
+
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'id' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'主键' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户ID' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'user_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'租户id' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'tenant_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'授权+授权openid' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'auth_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户来源' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'source'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'原生openid' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'open_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'登录账号' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'user_name'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户昵称' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'nick_name'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户邮箱' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'email'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'头像地址' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'avatar'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的授权令牌' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'access_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的授权令牌的有效期,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'expire_in'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'刷新令牌,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'refresh_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'平台的授权信息,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'access_code'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的 unionid' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'union_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'授予的权限,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'scope'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'个别平台的授权信息,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'token_type'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'id token,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'id_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'小米平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'mac_algorithm'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'小米平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'mac_key'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的授权code,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'code'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'Twitter平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'oauth_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'Twitter平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'oauth_token_secret'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'删除标志(0代表存在 2代表删除)' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'del_flag'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'创建部门' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'create_dept'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'创建者' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'create_by'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'创建时间' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'create_time'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'更新者' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'update_by'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'更新时间' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'update_time'
+GO
+
+
 CREATE TABLE sys_tenant
 (
     id                    bigint                          NOT NULL,

+ 69 - 0
script/sql/update/oracle/update_5.0-5.1.sql

@@ -3,3 +3,72 @@ ALTER TABLE gen_table ADD (data_name VARCHAR2(200) DEFAULT '');
 COMMENT ON COLUMN gen_table.data_name IS '数据源名称';
 
 UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120;
+
+-- ----------------------------
+-- 第三方平台授权表
+-- ----------------------------
+create table sys_social
+(
+    id                 number(20)       not null,
+    user_id            number(20)       not null,
+    tenant_id          varchar(20)      default null,
+    auth_id            varchar(255)     not null,
+    source             varchar(255)     not null,
+    open_id            varchar(255)     default null,
+    user_name          varchar(30)      not null,
+    nick_name          varchar(30)      default '',
+    email              varchar(255)     default '',
+    avatar             varchar(500)     default '',
+    access_token       varchar(255)     not null,
+    expire_in          number(100)      default null,
+    refresh_token      varchar(255)     default null,
+    access_code        varchar(255)     default null,
+    union_id           varchar(255)     default null,
+    scope              varchar(255)     default null,
+    token_type         varchar(255)     default null,
+    id_token           varchar(255)     default null,
+    mac_algorithm      varchar(255)     default null,
+    mac_key            varchar(255)     default null,
+    code               varchar(255)     default null,
+    oauth_token        varchar(255)     default null,
+    oauth_token_secret varchar(255)     default null,
+    create_dept        number(20),
+    create_by          number(20),
+    create_time        date,
+    update_by          number(20),
+    update_time        date,
+    del_flag           char(1)          default '0'
+);
+
+alter table sys_social add constraint pk_sys_social primary key (id);
+
+comment on table   sys_social                   is '社会化关系表';
+comment on column  sys_social.id                is '主键';
+comment on column  sys_social.user_id           is '用户ID';
+comment on column  sys_social.tenant_id         is '租户id';
+comment on column  sys_social.auth_id           is '授权+授权openid';
+comment on column  sys_social.source            is '用户来源';
+comment on column  sys_social.open_id           is '原生openid';
+comment on column  sys_social.user_name         is '登录账号';
+comment on column  sys_social.nick_name         is '用户昵称';
+comment on column  sys_social.email             is '用户邮箱';
+comment on column  sys_social.avatar            is '头像地址';
+comment on column  sys_social.access_token      is '用户的授权令牌';
+comment on column  sys_social.expire_in         is '用户的授权令牌的有效期,部分平台可能没有';
+comment on column  sys_social.refresh_token     is '刷新令牌,部分平台可能没有';
+comment on column  sys_social.access_code       is '平台的授权信息,部分平台可能没有';
+comment on column  sys_social.union_id          is '用户的 unionid';
+comment on column  sys_social.scope             is '授予的权限,部分平台可能没有';
+comment on column  sys_social.token_type        is '个别平台的授权信息,部分平台可能没有';
+comment on column  sys_social.id_token          is 'id token,部分平台可能没有';
+comment on column  sys_social.mac_algorithm     is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.mac_key           is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.code              is '用户的授权code,部分平台可能没有';
+comment on column  sys_social.oauth_token       is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.oauth_token_secret is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.create_dept       is '创建部门';
+comment on column  sys_social.create_by         is '创建者';
+comment on column  sys_social.create_time       is '创建时间';
+comment on column  sys_social.update_by         is '更新者';
+comment on column  sys_social.update_time       is '更新时间';
+comment on column  sys_social.del_flag          is '删除标志(0代表存在 2代表删除)';

+ 68 - 0
script/sql/update/postgres/update_5.0-5.1.sql

@@ -3,3 +3,71 @@ ALTER TABLE gen_table ADD data_name varchar(200) default ''::varchar;
 COMMENT ON COLUMN gen_table.data_name IS '数据源名称';
 
 UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120;
+
+-- ----------------------------
+-- 第三方平台授权表
+-- ----------------------------
+create table sys_social
+(
+    id                 int8             not null,
+    user_id            int8             not null,
+    tenant_id          varchar(20)      default null::varchar,
+    auth_id            varchar(255)     not null,
+    source             varchar(255)     not null,
+    open_id            varchar(255)     default null::varchar,
+    user_name          varchar(30)      not null,
+    nick_name          varchar(30)      default ''::varchar,
+    email              varchar(255)     default ''::varchar,
+    avatar             varchar(500)     default ''::varchar,
+    access_token       varchar(255)     not null,
+    expire_in          int8             default null::varchar,
+    refresh_token      varchar(255)     default null::varchar,
+    access_code        varchar(255)     default null::varchar,
+    union_id           varchar(255)     default null::varchar,
+    scope              varchar(255)     default null::varchar,
+    token_type         varchar(255)     default null::varchar,
+    id_token           varchar(255)     default null::varchar,
+    mac_algorithm      varchar(255)     default null::varchar,
+    mac_key            varchar(255)     default null::varchar,
+    code               varchar(255)     default null::varchar,
+    oauth_token        varchar(255)     default null::varchar,
+    oauth_token_secret varchar(255)     default null::varchar,
+    create_dept        int8,
+    create_by          int8,
+    create_time        timestamp,
+    update_by          int8,
+    update_time        timestamp,
+    del_flag           char             default '0'::bpchar,
+    constraint "pk_sys_social" primary key (id)
+);
+
+comment on table   sys_social                   is '社会化关系表';
+comment on column  sys_social.id                is '主键';
+comment on column  sys_social.user_id           is '用户ID';
+comment on column  sys_social.tenant_id         is '租户id';
+comment on column  sys_social.auth_id           is '授权+授权openid';
+comment on column  sys_social.source            is '用户来源';
+comment on column  sys_social.open_id           is '原生openid';
+comment on column  sys_social.user_name         is '登录账号';
+comment on column  sys_social.nick_name         is '用户昵称';
+comment on column  sys_social.email             is '用户邮箱';
+comment on column  sys_social.avatar            is '头像地址';
+comment on column  sys_social.access_token      is '用户的授权令牌';
+comment on column  sys_social.expire_in         is '用户的授权令牌的有效期,部分平台可能没有';
+comment on column  sys_social.refresh_token     is '刷新令牌,部分平台可能没有';
+comment on column  sys_social.access_code       is '平台的授权信息,部分平台可能没有';
+comment on column  sys_social.union_id          is '用户的 unionid';
+comment on column  sys_social.scope             is '授予的权限,部分平台可能没有';
+comment on column  sys_social.token_type        is '个别平台的授权信息,部分平台可能没有';
+comment on column  sys_social.id_token          is 'id token,部分平台可能没有';
+comment on column  sys_social.mac_algorithm     is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.mac_key           is '小米平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.code              is '用户的授权code,部分平台可能没有';
+comment on column  sys_social.oauth_token       is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.oauth_token_secret is 'Twitter平台用户的附带属性,部分平台可能没有';
+comment on column  sys_social.create_dept       is '创建部门';
+comment on column  sys_social.create_by         is '创建者';
+comment on column  sys_social.create_time       is '创建时间';
+comment on column  sys_social.update_by         is '更新者';
+comment on column  sys_social.update_time       is '更新时间';
+comment on column  sys_social.del_flag          is '删除标志(0代表存在 2代表删除)';

+ 219 - 0
script/sql/update/sqlserver/update_5.0-5.1.sql

@@ -10,3 +10,222 @@ GO
 
 UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120
 GO
+
+create table sys_social
+(
+    id                 bigint            NOT NULL,
+    user_id            bigint            NOT NULL,
+    tenant_id          nvarchar(20)      NULL,
+    auth_id            nvarchar(255)     NOT NULL,
+    source             nvarchar(255)     NOT NULL,
+    open_id            nvarchar(255)     NULL,
+    user_name          nvarchar(30)      NOT NULL,
+    nick_name          nvarchar(30)      DEFAULT ('')   NULL,
+    email              nvarchar(255)     DEFAULT ('')   NULL,
+    avatar             nvarchar(500)     DEFAULT ('')   NULL,
+    access_token       nvarchar(255)     NOT NULL,
+    expire_in          bigint            NULL,
+    refresh_token      nvarchar(255)     NULL,
+    access_code        nvarchar(255)     NULL,
+    union_id           nvarchar(255)     NULL,
+    scope              nvarchar(255)     NULL,
+    token_type         nvarchar(255)     NULL,
+    id_token           nvarchar(255)     NULL,
+    mac_algorithm      nvarchar(255)     NULL,
+    mac_key            nvarchar(255)     NULL,
+    code               nvarchar(255)     NULL,
+    oauth_token        nvarchar(255)     NULL,
+    oauth_token_secret nvarchar(255)     NULL,
+    create_dept        bigint,
+    create_by          bigint,
+    create_time        datetime2(7),
+    update_by          bigint,
+    update_time        datetime2(7),
+    del_flag           nchar             DEFAULT ('0')   NULL,
+    CONSTRAINT PK__sys_social__B21E8F2427725F8A PRIMARY KEY CLUSTERED (id)
+        WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+        ON [PRIMARY]
+)
+ON [PRIMARY]
+GO
+
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'id' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'主键' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户ID' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'user_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'租户id' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'tenant_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'授权+授权openid' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'auth_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户来源' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'source'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'原生openid' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'open_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'登录账号' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'user_name'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户昵称' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'nick_name'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户邮箱' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'email'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'头像地址' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'avatar'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的授权令牌' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'access_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的授权令牌的有效期,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'expire_in'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'刷新令牌,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'refresh_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'平台的授权信息,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'access_code'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的 unionid' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'union_id'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'授予的权限,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'scope'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'个别平台的授权信息,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'token_type'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'id token,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'id_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'小米平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'mac_algorithm'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'小米平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'mac_key'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'用户的授权code,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'code'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'Twitter平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'oauth_token'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'Twitter平台用户的附带属性,部分平台可能没有' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'oauth_token_secret'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'删除标志(0代表存在 2代表删除)' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'del_flag'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'创建部门' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'create_dept'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'创建者' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'create_by'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'创建时间' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'create_time'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'更新者' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'update_by'
+GO
+EXEC sys.sp_addextendedproperty
+    'MS_Description', N'更新时间' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'sys_social',
+    'COLUMN', N'update_time'
+GO

+ 38 - 0
script/sql/update/update_5.0-5.1.sql

@@ -1,3 +1,41 @@
 ALTER TABLE gen_table ADD COLUMN data_name varchar(200) NULL DEFAULT '' COMMENT '数据源名称' AFTER table_id;
 
 UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120
+
+-- ----------------------------
+-- 第三方平台授权表
+-- ----------------------------
+drop table if exists sys_social;
+create table sys_social
+(
+    id                 bigint           not null        comment '主键',
+    user_id            bigint           not null        comment '用户ID',
+    tenant_id          varchar(20)      default null    comment '租户id',
+    auth_id            varchar(255)     not null        comment '授权+授权openid',
+    source             varchar(255)     not null        comment '用户来源',
+    open_id            varchar(255)     default null    comment '原生open id',
+    user_name          varchar(30)      not null        comment '登录账号',
+    nick_name          varchar(30)      default ''      comment '用户昵称',
+    email              varchar(255)     default ''      comment '用户邮箱',
+    avatar             varchar(500)     default ''      comment '头像地址',
+    access_token       varchar(255)     not null        comment '用户的授权令牌',
+    expire_in          int              default null    comment '用户的授权令牌的有效期,部分平台可能没有',
+    refresh_token      varchar(255)     default null    comment '刷新令牌,部分平台可能没有',
+    access_code        varchar(255)     default null    comment '平台的授权信息,部分平台可能没有',
+    union_id           varchar(255)     default null    comment '用户的 unionid',
+    scope              varchar(255)     default null    comment '授予的权限,部分平台可能没有',
+    token_type         varchar(255)     default null    comment '个别平台的授权信息,部分平台可能没有',
+    id_token           varchar(255)     default null    comment 'id token,部分平台可能没有',
+    mac_algorithm      varchar(255)     default null    comment '小米平台用户的附带属性,部分平台可能没有',
+    mac_key            varchar(255)     default null    comment '小米平台用户的附带属性,部分平台可能没有',
+    code               varchar(255)     default null    comment '用户的授权code,部分平台可能没有',
+    oauth_token        varchar(255)     default null    comment 'Twitter平台用户的附带属性,部分平台可能没有',
+    oauth_token_secret varchar(255)     default null    comment 'Twitter平台用户的附带属性,部分平台可能没有',
+    create_dept        bigint(20)                       comment '创建部门',
+    create_by          bigint(20)                       comment '创建者',
+    create_time        datetime                         comment '创建时间',
+    update_by          bigint(20)                       comment '更新者',
+    update_time        datetime                         comment '更新时间',
+    del_flag           char(1)          default '0'     comment '删除标志(0代表存在 2代表删除)',
+    PRIMARY KEY (id)
+) engine=innodb comment = '社会化关系表';

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor