From d3460a653e7fe73ed62c66163550a41bd3b1d6bc Mon Sep 17 00:00:00 2001 From: "Michelle.Chung" <1242874891@qq.com> Date: Wed, 2 Aug 2023 15:16:35 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20SysLoginService#s?= =?UTF-8?q?ocialRegister=20=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E7=BB=91=E5=AE=9A=E7=94=A8=E6=88=B7=20;=20add=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20RemoteSocialServiceImpl#updateByBo=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=A4=BE=E4=BC=9A=E5=8C=96=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=20;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/system/api/RemoteSocialService.java | 5 +++++ .../dromara/auth/service/SysLoginService.java | 16 ++++++++++++++-- .../system/dubbo/RemoteSocialServiceImpl.java | 12 ++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSocialService.java b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSocialService.java index 632d92f1..6c348b8c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSocialService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSocialService.java @@ -20,6 +20,11 @@ public interface RemoteSocialService { */ void insertByBo(RemoteSocialBo bo); + /** + * 更新社会化关系 + */ + void updateByBo(RemoteSocialBo bo); + /** * 删除社会化关系 */ diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java index 6284c17b..1631a914 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java @@ -31,6 +31,7 @@ import org.dromara.system.api.RemoteTenantService; import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.domain.bo.RemoteSocialBo; import org.dromara.system.api.domain.bo.RemoteUserBo; +import org.dromara.system.api.domain.vo.RemoteSocialVo; import org.dromara.system.api.domain.vo.RemoteTenantVo; import org.dromara.system.api.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; @@ -66,14 +67,25 @@ public class SysLoginService { * @param authUserData 授权响应实体 */ public void socialRegister(AuthUser authUserData) { + String authId = authUserData.getSource() + authUserData.getUuid(); + // 第三方用户信息 RemoteSocialBo bo = BeanUtil.toBean(authUserData, RemoteSocialBo.class); BeanUtil.copyProperties(authUserData.getToken(), bo); bo.setUserId(LoginHelper.getUserId()); - bo.setAuthId(authUserData.getSource() + authUserData.getUuid()); + bo.setAuthId(authId); bo.setOpenId(authUserData.getUuid()); bo.setUserName(authUserData.getUsername()); bo.setNickName(authUserData.getNickname()); - remoteSocialService.insertByBo(bo); + // 查询是否已经绑定用户 + RemoteSocialVo vo = remoteSocialService.selectByAuthId(authId); + if (ObjectUtil.isEmpty(vo)) { + // 没有绑定用户, 新增用户信息 + remoteSocialService.insertByBo(bo); + } else { + // 更新用户信息 + bo.setId(vo.getId()); + remoteSocialService.updateByBo(bo); + } } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java index 15567492..c67fc1e4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java @@ -6,8 +6,10 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.system.api.RemoteSocialService; import org.dromara.system.api.domain.bo.RemoteSocialBo; import org.dromara.system.api.domain.vo.RemoteSocialVo; +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; @@ -22,6 +24,7 @@ import org.springframework.stereotype.Service; public class RemoteSocialServiceImpl implements RemoteSocialService { private final ISysSocialService sysSocialService; + private final SysSocialMapper sysSocialMapper; /** * 根据 authId 查询用户信息 @@ -40,6 +43,15 @@ public class RemoteSocialServiceImpl implements RemoteSocialService { sysSocialService.insertByBo(MapstructUtils.convert(bo, SysSocialBo.class)); } + /** + * 更新社会化关系 + */ + @Override + public void updateByBo(RemoteSocialBo bo) { + SysSocial update = MapstructUtils.convert(bo, SysSocial.class); + sysSocialMapper.updateById(update); + } + /** * 删除社会化关系 */