From 98aa0b9f1813ee3dfe9a8be04084efc785ebf024 Mon Sep 17 00:00:00 2001
From: thiszhc <2029364173@qq.com>
Date: 星期六, 17 六月 2023 00:47:41 +0800
Subject: [PATCH] add 查看授权列表

---
 ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java                                |   12 --
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java |   57 +++++++++
 ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java                                  |   12 -
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java             |   25 ++--
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java     |   55 ++++----
 ruoyi-admin/src/main/resources/application-dev.yml                                                      |  149 ++++++++++++++++++++++++
 6 files changed, 248 insertions(+), 62 deletions(-)

diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
index 8cb96cd..515ec1b 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
@@ -25,7 +25,6 @@
 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.domain.vo.SysUserVo;
 import org.dromara.system.service.ISocialUserService;
 import org.dromara.system.service.ISysConfigService;
 import org.dromara.system.service.ISysTenantService;
@@ -139,14 +138,6 @@
     @GetMapping("/binding/{source}")
     @ResponseBody
     public R<LoginVo> authBinding(@PathVariable("source") String source, HttpServletRequest request){
-        SysUserVo userLoding = new SysUserVo();
-        if (ObjectUtil.isNull(userLoding)) {
-            return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曞啀缁戝畾");
-        }
-        if (socialUserService.isExistByUserIdAndSource(userLoding.getUserId(),source))
-        {
-            return R.fail(source + "骞冲彴璐﹀彿宸茬粡琚处鍙风粦瀹�");
-        }
         SocialLoginConfigProperties obj = socialProperties.getType().get(source);
         if (ObjectUtil.isNull(obj)){
             return R.fail(source + "骞冲彴璐﹀彿鏆備笉鏀寔");
@@ -191,9 +182,6 @@
         Boolean rows = socialUserService.deleteWithValidById(socialId);
         return rows ? R.ok() : R.fail("鍙栨秷鎺堟潈澶辫触");
     }
-
-
-
 
 
     /**
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
index 479c390..e4aec24 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
@@ -34,11 +34,9 @@
 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.bo.SysUserBo;
 import org.dromara.system.domain.vo.SocialUserVo;
 import org.dromara.system.domain.vo.SysTenantVo;
 import org.dromara.system.domain.vo.SysUserVo;
-import org.dromara.system.mapper.SocialUserMapper;
 import org.dromara.system.mapper.SysUserMapper;
 import org.dromara.system.service.ISocialUserService;
 import org.dromara.system.service.ISysPermissionService;
@@ -66,7 +64,6 @@
 
     private final SysUserMapper userMapper;
     private final ISocialUserService socialUserService;
-    private final ISysUserService userService;
     private final CaptchaProperties captchaProperties;
     private final ISysPermissionService permissionService;
     private final ISysTenantService tenantService;
@@ -176,22 +173,20 @@
      * @param request  Http璇锋眰瀵硅薄
      * @return 缁熶竴鍝嶅簲瀹炰綋
      */
-    public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser, HttpServletRequest request) throws IOException {
+    public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser, HttpServletRequest request) {
         // 鍒ゆ柇鎺堟潈鍝嶅簲鏄惁鎴愬姛
         if (!authUser.ok()) {
             return R.fail("瀵逛笉璧凤紝鎺堟潈淇℃伅楠岃瘉涓嶉�氳繃锛岃閫�鍑洪噸璇曪紒");
         }
         AuthUser authUserData = authUser.getData();
-        String authId = source + authUserData.getUuid();
-
-        SocialUserVo user = socialUserService.selectSocialUserByAuthId(authId);
+        SocialUserVo user = socialUserService.selectSocialUserByAuthId(authUserData.getSource() + authUserData.getUuid());
         if (ObjectUtil.isNotNull(user)) {
             //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣�
             return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData);
         } else {
             // 鍒ゆ柇鏄惁宸茬櫥褰�
             if (LoginHelper.getUserId() == null) {
-                return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曞啀缁戝畾");
+                return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曟墠鑳界粦瀹�");
             }
             SocialUserBo socialUserBo = new SocialUserBo();
             socialUserBo.setUserId(LoginHelper.getUserId());
@@ -201,7 +196,6 @@
             socialUserBo.setNickName(authUserData.getNickname());
             socialUserBo.setAvatar(authUserData.getAvatar());
             socialUserBo.setOpenId(authUserData.getUuid());
-            BeanUtils.copyProperties(authUserData, socialUserBo);
             BeanUtils.copyProperties(authUserData.getToken(), socialUserBo);
 
             socialUserService.insertByBo(socialUserBo);
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 5adc8ae..bbd9e17 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -184,3 +184,152 @@
     sdkAppId: appid
     #鍦板煙淇℃伅榛樿涓� ap-guangzhou 濡傛棤鐗规畩鏀瑰彉鍙笉鐢ㄨ缃�
     territory: ap-guangzhou
+
+
+
+justauth:
+  enabled: true
+  type:
+    QQ:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/qq/callback
+      union-id: false
+    WEIBO:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/weibo/callback
+    gitee:
+      client-id: 38eaaa1b77b5e064313057a2f5745ce3a9f3e7686d9bd302c7df2f308ef6db81
+      client-secret: 2e633af8780cb9fe002c4c7291b722db944402e271efb99b062811f52d7da1ff
+      redirect-uri: http://localhost:80/social-login?source=gitee
+    DINGTALK:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/dingtalk/callback
+    BAIDU:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/baidu/callback
+    CSDN:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/csdn/callback
+    CODING:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/coding/callback
+      coding-group-name: xx
+    OSCHINA:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/oschina/callback
+    ALIPAY:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/alipay/callback
+      alipay-public-key: MIIB**************DAQAB
+    WECHAT_OPEN:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_open/callback
+    WECHAT_MP:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_mp/callback
+    WECHAT_ENTERPRISE:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_enterprise/callback
+      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:
+      client-id: 10**********6
+      client-secret: 1f7d08**********5b7**********29e
+      redirect-uri: http://oauth.xkcoding.com/demo/oauth/jd/callback
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java
new file mode 100644
index 0000000..38cc14c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java
@@ -0,0 +1,57 @@
+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.web.core.BaseController;
+import org.dromara.system.domain.vo.SocialUserVo;
+import org.dromara.system.service.ISocialUserService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 绀句細鍖栧叧绯�
+ *
+ * @author thiszhc
+ * @date 2023-06-16
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/social")
+public class SocialUserController extends BaseController {
+
+    private final ISocialUserService socialUserService;
+
+    /**
+     * 鏌ヨ绀句細鍖栧叧绯诲垪琛�
+     */
+//    杩欓噷鏀规垚鐢ㄦ埛榛樿鐨勩�傚彧鑳芥煡鐪嬭嚜宸辩殑鏉冮檺鏇村ソ鍝�
+//    @SaCheckPermission("system:user:list")
+    @GetMapping("/list")
+    public R<List<SocialUserVo>> list() {
+        return R.ok(socialUserService.queryList());
+    }
+
+
+    /**
+     * 鑾峰彇绀句細鍖栧叧绯昏缁嗕俊鎭�
+     *
+     * @param id 涓婚敭
+     */
+//    杩欓噷鏀规垚鐢ㄦ埛榛樿鐨勩�傚彧鑳芥煡鐪嬭嚜宸辩殑鏉冮檺鏇村ソ鍝�
+//    @SaCheckPermission("system:user:query")
+    @GetMapping("/{id}")
+    public R<SocialUserVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                     @PathVariable String id) {
+        return R.ok(socialUserService.queryById(id));
+    }
+
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java
index d9e87f7..00c4a5f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java
@@ -1,14 +1,8 @@
 package org.dromara.system.service;
 
-import org.dromara.system.domain.SocialUser;
-import org.dromara.system.domain.bo.SysUserBo;
-import org.dromara.system.domain.vo.SocialUserVo;
 import org.dromara.system.domain.bo.SocialUserBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.system.domain.vo.SysUserVo;
+import org.dromara.system.domain.vo.SocialUserVo;
 
-import java.util.Collection;
 import java.util.List;
 
 /**
@@ -18,6 +12,17 @@
  * @date 2023-06-12
  */
 public interface ISocialUserService {
+
+
+    /**
+     * 鏌ヨ绀句細鍖栧叧绯�
+     */
+    SocialUserVo queryById(String id);
+
+    /**
+     * 鏌ヨ绀句細鍖栧叧绯诲垪琛�
+     */
+    List<SocialUserVo> queryList();
 
     /**
      * 鏂板鎺堟潈鍏崇郴
@@ -29,12 +34,6 @@
      * 鍒犻櫎绀句細鍖栧叧绯讳俊鎭�
      */
     Boolean deleteWithValidById(Long id);
-
-
-    /**
-     * 鏍规嵁鐢ㄦ埛ID鏌ヨ鎺堟潈鍏崇郴
-     */
-    Boolean isExistByUserIdAndSource(Long userId, String source);
 
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java
index fc34244..df71064 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java
@@ -1,25 +1,15 @@
 package org.dromara.system.service.impl;
 
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
-import org.dromara.system.domain.bo.SysUserBo;
-import org.dromara.system.domain.vo.SysUserVo;
-import org.springframework.stereotype.Service;
+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.domain.SocialUser;
 import org.dromara.system.mapper.SocialUserMapper;
 import org.dromara.system.service.ISocialUserService;
+import org.springframework.stereotype.Service;
 
 import java.util.List;
-import java.util.Map;
-import java.util.Collection;
 
 /**
  * 绀句細鍖栧叧绯籗ervice涓氬姟灞傚鐞�
@@ -33,6 +23,25 @@
 
     private final SocialUserMapper baseMapper;
 
+
+    /**
+     * 鏌ヨ绀句細鍖栧叧绯�
+     */
+    @Override
+    public SocialUserVo queryById(String id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 鎺堟潈鍒楄〃
+     */
+    @Override
+    public List<SocialUserVo> queryList() {
+        return baseMapper.selectVoList();
+    }
+
+
+
     /**
      * 鏂板绀句細鍖栧叧绯�
      */
@@ -42,7 +51,11 @@
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
-            bo.setId(add.getId());
+            if (add != null) {
+                bo.setId(add.getId());
+            }else {
+                return false;
+            }
         }
         return flag;
     }
@@ -64,20 +77,6 @@
         return baseMapper.deleteById(id) > 0;
     }
 
-    /**
-     * 鏍规嵁鐢ㄦ埛id鍜屾潵婧愭煡璇㈢敤鎴锋槸鍚﹀瓨鍦�
-     *
-     * @param userId 鐢ㄦ埛id
-     * @param source 鏉ユ簮
-     * @return 鏄惁瀛樺湪
-     */
-    @Override
-    public Boolean isExistByUserIdAndSource(Long userId, String source) {
-        LambdaQueryWrapper<SocialUser> lqw = Wrappers.lambdaQuery();
-        lqw.eq(SocialUser::getUserId, userId);
-        lqw.eq(SocialUser::getSource, source);
-        return baseMapper.selectCount(lqw) > 0;
-    }
 
     /**
      * 鏍规嵁authId鏌ヨ鐢ㄦ埛淇℃伅

--
Gitblit v1.9.3