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 1/2] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20SysLoginServi?= =?UTF-8?q?ce#socialRegister=20=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E7=BB=91=E5=AE=9A=E7=94=A8=E6=88=B7=20;=20ad?= =?UTF-8?q?d=20=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); + } + /** * 删除社会化关系 */ From 79f3f87a6b34155325f492b0e9cc6d9406f9500d Mon Sep 17 00:00:00 2001 From: "Michelle.Chung" <1242874891@qq.com> Date: Wed, 2 Aug 2023 15:23:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=20SysSocialService?= =?UTF-8?q?Impl#updateByBo=20=E6=9B=B4=E6=96=B0=E7=A4=BE=E4=BC=9A=E5=8C=96?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=20;=20update=20=E6=9B=B4=E6=96=B0=20RemoteSo?= =?UTF-8?q?cialServiceImpl#updateByBo=20;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/system/dubbo/RemoteSocialServiceImpl.java | 3 +-- .../org/dromara/system/service/ISysSocialService.java | 5 +++++ .../system/service/impl/SysSocialServiceImpl.java | 10 ++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) 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 c67fc1e4..85bb43cf 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 @@ -48,8 +48,7 @@ public class RemoteSocialServiceImpl implements RemoteSocialService { */ @Override public void updateByBo(RemoteSocialBo bo) { - SysSocial update = MapstructUtils.convert(bo, SysSocial.class); - sysSocialMapper.updateById(update); + sysSocialService.updateByBo(MapstructUtils.convert(bo, SysSocialBo.class)); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java index 9c8275ef..abcf6d1f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java @@ -33,6 +33,11 @@ public interface ISysSocialService { */ Boolean insertByBo(SysSocialBo bo); + /** + * 更新社会化关系 + */ + + Boolean updateByBo(SysSocialBo bo); /** * 删除社会化关系信息 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java index 065dea0d..83834efa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java @@ -65,6 +65,16 @@ public class SysSocialServiceImpl implements ISysSocialService { return flag; } + /** + * 更新社会化关系 + */ + @Override + public Boolean updateByBo(SysSocialBo bo) { + SysSocial update = MapstructUtils.convert(bo, SysSocial.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + /** * 保存前的数据校验