From 005e7df1b8d7733b459c24104bc775c52e528454 Mon Sep 17 00:00:00 2001 From: thiszhc <2029364173@qq.com> Date: 星期四, 15 六月 2023 19:30:17 +0800 Subject: [PATCH] 优化第三方授权登录 --- ruoyi-admin/pom.xml | 14 ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java | 12 - ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SocialUserMapper.xml | 58 ----- ruoyi-common/ruoyi-common-bom/pom.xml | 6 script/sql/ry_vue_5.X.sql | 69 +++---- ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java | 72 +++---- ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java | 24 -- ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/SocialConfig.java | 2 /dev/null | 105 ----------- ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/AuthRedisStateCache.java | 16 - ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java | 20 +- ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java | 69 ------- ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java | 2 ruoyi-common/ruoyi-common-social/pom.xml | 23 - ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java | 2 15 files changed, 113 insertions(+), 381 deletions(-) diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index e57c444..39731b1 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -45,6 +45,12 @@ <dependency> <groupId>org.dromara</groupId> + <artifactId>ruoyi-common-social</artifactId> + </dependency> + + + <dependency> + <groupId>org.dromara</groupId> <artifactId>ruoyi-system</artifactId> </dependency> @@ -75,16 +81,12 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> + <dependency> <groupId>me.zhyd.oauth</groupId> <artifactId>JustAuth</artifactId> </dependency> - <dependency> - <groupId>org.dromara</groupId> - <artifactId>ruoyi-common-social</artifactId> - <version>5.1.0-SNAPSHOT</version> - <scope>compile</scope> - </dependency> + <!-- skywalking 鏁村悎 logback --> <!-- <dependency>--> 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 f46cbdc..8cb96cd 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 @@ -3,12 +3,9 @@ import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSON; -import cn.hutool.json.JSONUtil; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.constraints.NotBlank; import lombok.RequiredArgsConstructor; -import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.model.AuthCallback; import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthUser; @@ -22,10 +19,8 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.social.config.SocialConfig; -import org.dromara.common.social.config.properties.ConfigProperties; +import org.dromara.common.social.config.properties.SocialLoginConfigProperties; import org.dromara.common.social.config.properties.SocialProperties; -import org.dromara.common.social.utils.AuthRedisStateCache; import org.dromara.common.social.utils.SocialUtils; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.system.domain.bo.SysTenantBo; @@ -45,7 +40,6 @@ import java.io.IOException; import java.net.URL; import java.util.List; -import java.util.Map; /** * 璁よ瘉 @@ -153,7 +147,7 @@ { return R.fail(source + "骞冲彴璐﹀彿宸茬粡琚处鍙风粦瀹�"); } - ConfigProperties obj = socialProperties.getType().get(source); + SocialLoginConfigProperties obj = socialProperties.getType().get(source); if (ObjectUtil.isNull(obj)){ return R.fail(source + "骞冲彴璐﹀彿鏆備笉鏀寔"); } @@ -175,7 +169,7 @@ @SuppressWarnings("unchecked") @GetMapping("/social-login/{source}") public R<String> socialLogin(@PathVariable("source") String source, AuthCallback callback, HttpServletRequest request) throws IOException { - ConfigProperties obj = socialProperties.getType().get(source); + SocialLoginConfigProperties obj = socialProperties.getType().get(source); if (ObjectUtil.isNull(obj)){ return R.fail(source + "骞冲彴璐﹀彿鏆備笉鏀寔"); } 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 3628b05..84c554d 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 @@ -44,6 +44,7 @@ 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; @@ -181,27 +182,49 @@ return R.fail("瀵逛笉璧凤紝鎺堟潈淇℃伅楠岃瘉涓嶉�氳繃锛岃閫�鍑洪噸璇曪紒"); } AuthUser authUserData = authUser.getData(); - // 鏌ヨ绀句氦鐢ㄦ埛淇℃伅锛屽垽鏂槸鍚﹀凡缁忕粦瀹氾紝濡傛灉宸茬粡缁戝畾鍒欑洿鎺ョ櫥褰曪紝鍚﹀垯楠岃瘉鏄惁鐧诲綍锛屾湭鐧诲綍鍒欏厛鐧诲綍鍐嶇粦瀹� - SocialUserVo user = socialUserService.selectSocialUserByAuthId(source + authUserData.getUuid()); + String authId = source + authUserData.getUuid(); + + SocialUserVo user = socialUserService.selectSocialUserByAuthId(authId); if (ObjectUtil.isNotNull(user)) { - checkTenant(user.getTenantId()); - SysUserVo dbUser = loadUserByUsername(user.getTenantId(), user.getUserName()); - LoginHelper.loginByDevice(buildLoginUser(dbUser), DeviceType.SOCIAL); - recordLogininfor(dbUser.getTenantId(), user.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - recordLoginInfo(user.getUserId()); + //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� + return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData); } else { // 鍒ゆ柇鏄惁宸茬櫥褰� if (LoginHelper.getUserId() == null) { return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曞啀缁戝畾"); } SocialUserBo socialUserBo = new SocialUserBo(); - socialUserService.insertByBo(setAuthUserData(authUserData, 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, socialUserBo); + BeanUtils.copyProperties(authUserData.getToken(), socialUserBo); + + socialUserService.insertByBo(socialUserBo); SysUserVo lodingData = loadUserByUsername(LoginHelper.getTenantId(), LoginHelper.getUsername()); - checkTenant(lodingData.getTenantId()); - LoginHelper.loginByDevice(buildLoginUser(lodingData), DeviceType.SOCIAL); - recordLogininfor(lodingData.getTenantId(), socialUserBo.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - recordLoginInfo(socialUserBo.getUserId()); + //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� + return loginAndRecord(lodingData.getTenantId(), socialUserBo.getUserName(), authUserData); } + } + + /** + * 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� + * + * @param tenantId 绉熸埛ID + * @param userName 鐢ㄦ埛鍚� + * @param authUser 鎺堟潈鐢ㄦ埛淇℃伅 + * @return 缁熶竴鍝嶅簲瀹炰綋 + */ + private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) { + checkTenant(tenantId); + SysUserVo dbUser = loadUserByUsername(tenantId, userName); + LoginHelper.loginByDevice(buildLoginUser(dbUser), DeviceType.SOCIAL); + recordLogininfor(dbUser.getTenantId(), userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); + recordLoginInfo(dbUser.getUserId()); return R.ok(StpUtil.getTokenValue()); } @@ -440,29 +463,4 @@ } } - - public SocialUserBo setAuthUserData(AuthUser authUserData, SocialUserBo socialUser) { - socialUser.setUserId(LoginHelper.getUserId()); - socialUser.setAuthId(authUserData.getSource() + authUserData.getUuid()); - socialUser.setSource(authUserData.getSource()); - socialUser.setUserName(authUserData.getUsername()); - socialUser.setNickName(authUserData.getNickname()); - socialUser.setAvatar(authUserData.getAvatar()); - socialUser.setEmail(authUserData.getEmail()); - socialUser.setOpenId(authUserData.getUuid()); - socialUser.setAccessToken(authUserData.getToken().getAccessToken()); - socialUser.setExpireIn(authUserData.getToken().getExpireIn()); - socialUser.setRefreshToken(authUserData.getToken().getRefreshToken()); - socialUser.setAccessCode(authUserData.getToken().getAccessCode()); - socialUser.setUnionId(authUserData.getToken().getUnionId()); - socialUser.setScope(authUserData.getToken().getScope()); - socialUser.setTokenType(authUserData.getToken().getTokenType()); - socialUser.setIdToken(authUserData.getToken().getIdToken()); - socialUser.setMacAlgorithm(authUserData.getToken().getMacAlgorithm()); - socialUser.setMacKey(authUserData.getToken().getMacKey()); - socialUser.setCode(authUserData.getToken().getCode()); - socialUser.setOauthToken(authUserData.getToken().getOauthToken()); - socialUser.setOauthTokenSecret(authUserData.getToken().getOauthTokenSecret()); - return socialUser; - } } diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index 8a9e25a..cac678c 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -117,6 +117,12 @@ <version>${revision}</version> </dependency> + <dependency> + <groupId>org.dromara</groupId> + <artifactId>ruoyi-common-social</artifactId> + <version>${revision}</version> + </dependency> + <!-- web鏈嶅姟 --> <dependency> <groupId>org.dromara</groupId> diff --git a/ruoyi-common/ruoyi-common-social/pom.xml b/ruoyi-common/ruoyi-common-social/pom.xml index b87479b..77135a6 100644 --- a/ruoyi-common/ruoyi-common-social/pom.xml +++ b/ruoyi-common/ruoyi-common-social/pom.xml @@ -1,35 +1,26 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>org.dromara</groupId> <artifactId>ruoyi-common</artifactId> <version>${revision}</version> - <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> + <artifactId>ruoyi-common-social</artifactId> + <description> - ruoyi-common-auth 璁よ瘉妯″潡 + ruoyi-common-social 鎺堟潈璁よ瘉 </description> + <dependencies> <dependency> <groupId>me.zhyd.oauth</groupId> <artifactId>JustAuth</artifactId> </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-autoconfigure</artifactId> - </dependency> + <dependency> <groupId>org.dromara</groupId> <artifactId>ruoyi-common-redis</artifactId> diff --git a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/SocialConfig.java b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/SocialConfig.java index c50c560..7a9a166 100644 --- a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/SocialConfig.java +++ b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/SocialConfig.java @@ -17,7 +17,7 @@ public class SocialConfig { @Bean - public AuthStateCache redis() { + public AuthStateCache authStateCache() { return new AuthRedisStateCache(); } diff --git a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/ConfigProperties.java b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java similarity index 94% rename from ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/ConfigProperties.java rename to ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java index 813b03a..2b63c1e 100644 --- a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/ConfigProperties.java +++ b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java @@ -3,7 +3,7 @@ import lombok.Data; @Data -public class ConfigProperties { +public class SocialLoginConfigProperties { /** * 搴旂敤 ID diff --git a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java index 4240eba..811d821 100644 --- a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java +++ b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java @@ -24,7 +24,7 @@ /** * 鎺堟潈绫诲瀷 */ - private Map<String, ConfigProperties> type; + private Map<String, SocialLoginConfigProperties> type; /** * 鎺堟潈杩囨湡鏃堕棿 diff --git a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/AuthRedisStateCache.java b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/AuthRedisStateCache.java index f438a1c..f7f2392 100644 --- a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/AuthRedisStateCache.java +++ b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/AuthRedisStateCache.java @@ -12,21 +12,7 @@ public class AuthRedisStateCache implements AuthStateCache { - private final SocialProperties socialProperties; - private final RedisTemplate<String, String> redisTemplate; - - private ValueOperations<String, String> valueOperations; - - @PostConstruct - public void init() { - valueOperations = redisTemplate.opsForValue(); - } - - - public AuthRedisStateCache() { - this.socialProperties = new SocialProperties(); - redisTemplate = new RedisTemplate<>(); - } + private SocialProperties socialProperties; /** * 瀛樺叆缂撳瓨 diff --git a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java index b3a1cd1..64e84e7 100644 --- a/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java +++ b/ruoyi-common/ruoyi-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java @@ -19,17 +19,17 @@ AuthRequest authRequest = null; switch (source.toLowerCase()) { case "dingtalk" -> - authRequest = new AuthDingTalkRequest(AuthConfig.builder(). - clientId(clientId). - clientSecret(clientSecret) - .redirectUri(redirectUri). - build()); + authRequest = new AuthDingTalkRequest(AuthConfig.builder() + .clientId(clientId) + .clientSecret(clientSecret) + .redirectUri(redirectUri) + .build()); case "baidu" -> - authRequest = new AuthBaiduRequest(AuthConfig.builder(). - clientId(clientId). - clientSecret(clientSecret) - .redirectUri(redirectUri). - build()); + authRequest = new AuthBaiduRequest(AuthConfig.builder() + .clientId(clientId) + .clientSecret(clientSecret) + .redirectUri(redirectUri) + .build()); case "github" -> authRequest = new AuthGithubRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret) .redirectUri(redirectUri).build()); 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 deleted file mode 100644 index 9199406..0000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.dromara.system.controller.system; - -import java.util.List; - -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.core.domain.R; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.system.domain.vo.SocialUserVo; -import org.dromara.system.domain.bo.SocialUserBo; -import org.dromara.system.service.ISocialUserService; -import org.dromara.common.mybatis.core.page.TableDataInfo; - -/** - * 绀句細鍖栧叧绯� - * - * @author thiszhc - * @date 2023-06-12 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/socialUser") -public class SocialUserController extends BaseController { - - private final ISocialUserService socialUserService; - - /** - * 鏌ヨ绀句細鍖栧叧绯诲垪琛� - */ - @SaCheckPermission("system:user:list") - @GetMapping("/list") - public TableDataInfo<SocialUserVo> list(SocialUserBo bo, PageQuery pageQuery) { - return socialUserService.queryPageList(bo, pageQuery); - } - - /** - * 瀵煎嚭绀句細鍖栧叧绯诲垪琛� - */ - @SaCheckPermission("system:user:export") - @Log(title = "绀句細鍖栧叧绯�", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SocialUserBo bo, HttpServletResponse response) { - List<SocialUserVo> list = socialUserService.queryList(bo); - ExcelUtil.exportExcel(list, "绀句細鍖栧叧绯�", SocialUserVo.class, response); - } - - /** - * 鑾峰彇绀句細鍖栧叧绯昏缁嗕俊鎭� - * - * @param id 涓婚敭 - */ - @SaCheckPermission("system:user:query") - @GetMapping("/{id}") - public R<SocialUserVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") - @PathVariable Long id) { - return R.ok(socialUserService.queryById(id)); - } - - /** - * 鏂板绀句細鍖栧叧绯� - */ - @SaCheckPermission("system:user:add") - @Log(title = "绀句細鍖栧叧绯�", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R<Void> add(@Validated(AddGroup.class) @RequestBody SocialUserBo bo) { - return toAjax(socialUserService.insertByBo(bo)); - } - - /** - * 淇敼绀句細鍖栧叧绯� - */ - @SaCheckPermission("system:user:edit") - @Log(title = "绀句細鍖栧叧绯�", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R<Void> edit(@Validated(EditGroup.class) @RequestBody SocialUserBo bo) { - return toAjax(socialUserService.updateByBo(bo)); - } - - /** - * 鍒犻櫎绀句細鍖栧叧绯� - * - * @param ids 涓婚敭涓� - */ - @SaCheckPermission("system:user:remove") - @Log(title = "绀句細鍖栧叧绯�", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖") - @PathVariable Long[] ids) { - return toAjax(socialUserService.deleteWithValidByIds(List.of(ids), true)); - } -} 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 f16cf16..d9e87f7 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 @@ -20,34 +20,10 @@ public interface ISocialUserService { /** - * 鏌ヨ鎺堟潈鍏崇郴 - */ - SocialUserVo queryById(Long id); - - /** - * 鏌ヨ鎺堟潈鍒楄〃 - */ - TableDataInfo<SocialUserVo> queryPageList(SocialUserBo bo, PageQuery pageQuery); - - /** - * 鏌ヨ鎺堟潈鍒楄〃 - */ - List<SocialUserVo> queryList(SocialUserBo bo); - - /** * 鏂板鎺堟潈鍏崇郴 */ Boolean insertByBo(SocialUserBo bo); - /** - * 淇敼鎺堟潈鍏崇郴 - */ - Boolean updateByBo(SocialUserBo bo); - - /** - * 鏍¢獙骞舵壒閲忓垹闄ょぞ浼氬寲鍏崇郴淇℃伅 - */ - Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); /** * 鍒犻櫎绀句細鍖栧叧绯讳俊鎭� 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 c130fb7..fc34244 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 @@ -34,56 +34,6 @@ private final SocialUserMapper baseMapper; /** - * 鏌ヨ绀句細鍖栧叧绯� - */ - @Override - public SocialUserVo queryById(Long id) { - return baseMapper.selectVoById(id); - } - - /** - * 鏌ヨ绀句細鍖栧叧绯诲垪琛� - */ - @Override - public TableDataInfo<SocialUserVo> queryPageList(SocialUserBo bo, PageQuery pageQuery) { - LambdaQueryWrapper<SocialUser> lqw = buildQueryWrapper(bo); - Page<SocialUserVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 鏌ヨ绀句細鍖栧叧绯诲垪琛� - */ - @Override - public List<SocialUserVo> queryList(SocialUserBo bo) { - LambdaQueryWrapper<SocialUser> lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper<SocialUser> buildQueryWrapper(SocialUserBo bo) { - Map<String, Object> params = bo.getParams(); - LambdaQueryWrapper<SocialUser> lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getAuthId()), SocialUser::getAuthId, bo.getAuthId()); - lqw.eq(StringUtils.isNotBlank(bo.getSource()), SocialUser::getSource, bo.getSource()); - lqw.eq(StringUtils.isNotBlank(bo.getAccessToken()), SocialUser::getAccessToken, bo.getAccessToken()); - lqw.eq(bo.getExpireIn() != 0, SocialUser::getExpireIn, bo.getExpireIn()); - lqw.eq(StringUtils.isNotBlank(bo.getRefreshToken()), SocialUser::getRefreshToken, bo.getRefreshToken()); - lqw.eq(StringUtils.isNotBlank(bo.getOpenId()), SocialUser::getOpenId, bo.getOpenId()); - lqw.eq(StringUtils.isNotBlank(bo.getScope()), SocialUser::getScope, bo.getScope()); - lqw.eq(StringUtils.isNotBlank(bo.getAccessCode()), SocialUser::getAccessCode, bo.getAccessCode()); - lqw.eq(StringUtils.isNotBlank(bo.getUnionId()), SocialUser::getUnionId, bo.getUnionId()); - lqw.eq(StringUtils.isNotBlank(bo.getScope()), SocialUser::getScope, bo.getScope()); - lqw.eq(StringUtils.isNotBlank(bo.getTokenType()), SocialUser::getTokenType, bo.getTokenType()); - lqw.eq(StringUtils.isNotBlank(bo.getIdToken()), SocialUser::getIdToken, bo.getIdToken()); - lqw.eq(StringUtils.isNotBlank(bo.getMacAlgorithm()), SocialUser::getMacAlgorithm, bo.getMacAlgorithm()); - lqw.eq(StringUtils.isNotBlank(bo.getMacKey()), SocialUser::getMacKey, bo.getMacKey()); - lqw.eq(StringUtils.isNotBlank(bo.getCode()), SocialUser::getCode, bo.getCode()); - lqw.eq(StringUtils.isNotBlank(bo.getOauthToken()), SocialUser::getOauthToken, bo.getOauthToken()); - lqw.eq(StringUtils.isNotBlank(bo.getOauthTokenSecret()), SocialUser::getOauthTokenSecret, bo.getOauthTokenSecret()); - return lqw; - } - - /** * 鏂板绀句細鍖栧叧绯� */ @Override @@ -97,15 +47,6 @@ return flag; } - /** - * 淇敼绀句細鍖栧叧绯� - */ - @Override - public Boolean updateByBo(SocialUserBo bo) { - SocialUser update = MapstructUtils.convert(bo, SocialUser.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } /** * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙 @@ -114,16 +55,6 @@ //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫 } - /** - * 鎵归噺鍒犻櫎绀句細鍖栧叧绯� - */ - @Override - public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { - if (isValid) { - //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠� - } - return baseMapper.deleteBatchIds(ids) > 0; - } /** * 鍒犻櫎绀句細鍖栧叧绯� diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SocialUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SocialUserMapper.xml index fb636b1..0c50ee6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SocialUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SocialUserMapper.xml @@ -8,61 +8,17 @@ <id property="id" column="id"/> </resultMap> - <sql id="selectSocialUser"> - select id, - user_id, - tenant_id, - auth_id, - source, - open_id, - access_token, - expire_in, - refresh_token, - access_code, - union_id, - scope, - token_type, - id_token, - mac_algorithm, - mac_key, - code, - oauth_token, - oauth_token_secret, - create_dept, - create_by, - create_time, - update_by, - update_time - from social_user - </sql> - - <!-- 鏍规嵁userId鏌ヨSocialUser琛ㄥ搴攗serId鐨凷ysUser锛岃繑鍥濻ysUserBo鐨勫璞� --> - <select id="selectSocialUserByUserId" parameterType="String" resultMap="SocialUserAuthResult"> - select b.* - from social_user a - left join sys_user b on a.user_id = b.user_id - where a.user_id = #{userId} - </select> - - <!-- 鏍规嵁authId鏌ヨSocialUser琛ㄥ拰SysUser琛紝杩斿洖SocialUserAuthResult鏄犲皠鐨勫璞� --> <select id="selectSocialUserByAuthId" parameterType="String" resultMap="SocialUserAuthResult"> - select b.user_id as userId, - b.tenant_id as tenantId, - b.user_name as userName, - b.password as password, - a.auth_id as authId, - a.source as source + select b.user_id, + b.tenant_id, + b.user_name, + b.password, + a.auth_id, + a.source from social_user a - left join sys_user b on a.user_id = b.user_id + left join sys_user b on a.user_id = b.user_id where a.auth_id = #{authId} - </select> - - <!-- 鏍规嵁userId鍜宻ource鏌ヨSocialUser琛紝杩斿洖int绫诲瀷鐨勭粨鏋� --> - <select id="checkSocialUser" parameterType="org.dromara.system.domain.vo.SocialUserVo" resultType="int"> - select count(*) - from social_user - where user_id = #{userId} and source = #{source} limit 1 </select> </mapper> diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql index 8c10bb2..94b8765 100644 --- a/script/sql/ry_vue_5.X.sql +++ b/script/sql/ry_vue_5.X.sql @@ -1,43 +1,40 @@ - -- ---------------------------- -- 绗笁鏂瑰钩鍙版巿鏉冭〃 -- ---------------------------- -CREATE TABLE `social_user` +DROP TABLE IF EXISTS social_user; +CREATE TABLE social_user ( - `id` bigint unsigned 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 '鐢ㄦ埛鐨勬巿鏉僣ode锛岄儴鍒嗗钩鍙板彲鑳芥病鏈�', - `oauth_token` varchar(255) DEFAULT NULL COMMENT 'Twitter骞冲彴鐢ㄦ埛鐨勯檮甯﹀睘鎬э紝閮ㄥ垎骞冲彴鍙兘娌℃湁', - `oauth_token_secret` varchar(255) DEFAULT NULL COMMENT 'Twitter骞冲彴鐢ㄦ埛鐨勯檮甯﹀睘鎬э紝閮ㄥ垎骞冲彴鍙兘娌℃湁', - `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓閮ㄩ棬', - `create_by` bigint NOT NULL COMMENT '鍒涘缓浜�', - `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿', - `update_by` bigint NOT NULL COMMENT '鏇存柊浜�', - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿', - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_general_ci - ROW_FORMAT = DYNAMIC COMMENT ='绀句細鍖栧叧绯昏〃'; + id BIGINT UNSIGNED 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 '鐢ㄦ埛鐨勬巿鏉僣ode锛岄儴鍒嗗钩鍙板彲鑳芥病鏈�', + 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浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�', + PRIMARY KEY (id) +) ENGINE = InnoDB COMMENT ='绀句細鍖栧叧绯昏〃'; -- ---------------------------- -- 绉熸埛琛� -- Gitblit v1.9.3