From bbe672208fa862b3a01473336e5711b679279293 Mon Sep 17 00:00:00 2001
From: zlyx <1242874891@qq.com>
Date: 星期三, 02 八月 2023 14:51:23 +0800
Subject: [PATCH] add 新增 SysSocialServiceImpl#updateByBo 更新社会化关系 ; update 优化 SysLoginService#socialRegister 对已绑定用户进行更新 ; reset 回滚上一提交中 SysSocialServiceImpl#selectByAuthId 会导致多种数据库不兼容 ;

---
 ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java                             |   19 ++++++++++++-------
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java |   16 ++++++++++------
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java         |    4 ++++
 3 files changed, 26 insertions(+), 13 deletions(-)

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 ba5840a..ad8a41e 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
@@ -71,18 +71,23 @@
      */
     public void socialRegister(AuthUser authUserData) {
         String authId = authUserData.getSource() + authUserData.getUuid();
+        // 绗笁鏂圭敤鎴蜂俊鎭�
+        SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
+        BeanUtil.copyProperties(authUserData.getToken(), bo);
+        bo.setUserId(LoginHelper.getUserId());
+        bo.setAuthId(authId);
+        bo.setOpenId(authUserData.getUuid());
+        bo.setUserName(authUserData.getUsername());
+        bo.setNickName(authUserData.getNickname());
         // 鏌ヨ鏄惁宸茬粡缁戝畾鐢ㄦ埛
         SysSocialVo vo = sysSocialService.selectByAuthId(authId);
         if (ObjectUtil.isEmpty(vo)) {
             // 娌℃湁缁戝畾鐢ㄦ埛, 鏂板鐢ㄦ埛淇℃伅
-            SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
-            BeanUtil.copyProperties(authUserData.getToken(), bo);
-            bo.setUserId(LoginHelper.getUserId());
-            bo.setAuthId(authId);
-            bo.setOpenId(authUserData.getUuid());
-            bo.setUserName(authUserData.getUsername());
-            bo.setNickName(authUserData.getNickname());
             sysSocialService.insertByBo(bo);
+        } else {
+            // 鏇存柊鐢ㄦ埛淇℃伅
+            bo.setId(vo.getId());
+            sysSocialService.updateByBo(bo);
         }
     }
 
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 9c8275e..5f2014d 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,10 @@
      */
     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 14ad934..bd7248f 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
@@ -3,7 +3,6 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.system.domain.SysSocial;
 import org.dromara.system.domain.bo.SysSocialBo;
 import org.dromara.system.domain.vo.SysSocialVo;
@@ -66,6 +65,15 @@
         return flag;
     }
 
+    /**
+     * 鏇存柊绀句細鍖栧叧绯�
+     */
+    @Override
+    public Boolean updateByBo(SysSocialBo bo) {
+        SysSocial update = MapstructUtils.convert(bo, SysSocial.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
 
     /**
      * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
@@ -92,11 +100,7 @@
      */
     @Override
     public SysSocialVo selectByAuthId(String authId) {
-        return baseMapper.selectVoOne(
-            new LambdaQueryWrapper<SysSocial>()
-                .eq(SysSocial::getAuthId, authId)
-                .orderByDesc(BaseEntity::getCreateTime)
-                .last("limit 1"));
+        return baseMapper.selectVoOne(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getAuthId, authId));
     }
 
 }

--
Gitblit v1.9.3