From eb844e3260657b6bb9de03c1e5feca50bdf8190d Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 17 十一月 2021 13:50:58 +0800
Subject: [PATCH] fix 修复 OssFactory 在程序启动未调用api 没有初始化 导致无法订阅配置更改问题

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |   83 +++++++++++++++++++++++++----------------
 1 files changed, 51 insertions(+), 32 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 3ece47e..08724cb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -12,6 +12,7 @@
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
 import com.ruoyi.system.domain.SysUserRole;
@@ -30,7 +31,7 @@
 /**
  * 鐢ㄦ埛 涓氬姟灞傚鐞�
  *
- * @author ruoyi
+ * @author Lion Li
  */
 @Slf4j
 @Service
@@ -78,7 +79,7 @@
     @Override
     @DataScope(deptAlias = "d", userAlias = "u", isUser = true)
     public TableDataInfo<SysUser> selectAllocatedList(SysUser user) {
-		return PageUtils.buildDataInfo(baseMapper.selectAllocatedList(PageUtils.buildPage(), user));
+        return PageUtils.buildDataInfo(baseMapper.selectAllocatedList(PageUtils.buildPage(), user));
     }
 
     /**
@@ -90,7 +91,7 @@
     @Override
     @DataScope(deptAlias = "d", userAlias = "u", isUser = true)
     public TableDataInfo<SysUser> selectUnallocatedList(SysUser user) {
-		return PageUtils.buildDataInfo(baseMapper.selectUnallocatedList(PageUtils.buildPage(), user));
+        return PageUtils.buildDataInfo(baseMapper.selectUnallocatedList(PageUtils.buildPage(), user));
     }
 
     /**
@@ -161,7 +162,7 @@
      */
     @Override
     public String checkUserNameUnique(String userName) {
-        int count = count(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName).last("limit 1"));
+        long count = count(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName));
         if (count > 0) {
             return UserConstants.NOT_UNIQUE;
         }
@@ -169,7 +170,7 @@
     }
 
     /**
-     * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴
+     * 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴
      *
      * @param user 鐢ㄦ埛淇℃伅
      * @return
@@ -177,10 +178,11 @@
     @Override
     public String checkPhoneUnique(SysUser user) {
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
-        SysUser info = getOne(new LambdaQueryWrapper<SysUser>()
+        long count = count(new LambdaQueryWrapper<SysUser>()
                 .select(SysUser::getUserId, SysUser::getPhonenumber)
-                .eq(SysUser::getPhonenumber, user.getPhonenumber()).last("limit 1"));
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
+                .eq(SysUser::getPhonenumber, user.getPhonenumber())
+                .ne(SysUser::getUserId, userId));
+        if (count > 0) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -195,10 +197,11 @@
     @Override
     public String checkEmailUnique(SysUser user) {
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
-        SysUser info = getOne(new LambdaQueryWrapper<SysUser>()
+        long count = count(new LambdaQueryWrapper<SysUser>()
                 .select(SysUser::getUserId, SysUser::getEmail)
-                .eq(SysUser::getEmail, user.getEmail()).last("limit 1"));
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
+                .eq(SysUser::getEmail, user.getEmail())
+                .ne(SysUser::getUserId, userId));
+        if (count > 0) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -213,6 +216,23 @@
     public void checkUserAllowed(SysUser user) {
         if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
             throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛");
+        }
+    }
+
+    /**
+     * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄�
+     *
+     * @param userId 鐢ㄦ埛id
+     */
+    @Override
+    public void checkUserDataScope(Long userId) {
+        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+            SysUser user = new SysUser();
+            user.setUserId(userId);
+            List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
+            if (StringUtils.isEmpty(users)) {
+                throw new ServiceException("娌℃湁鏉冮檺璁块棶鐢ㄦ埛鏁版嵁锛�");
+            }
         }
     }
 
@@ -240,7 +260,7 @@
      * @param user 鐢ㄦ埛淇℃伅
      * @return 缁撴灉
      */
-	@Override
+    @Override
     public boolean registerUser(SysUser user) {
         return baseMapper.insert(user) > 0;
     }
@@ -256,11 +276,11 @@
     public int updateUser(SysUser user) {
         Long userId = user.getUserId();
         // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
-        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId,userId));
+        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
         // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
         insertUserRole(user);
         // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱�
-        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId,userId));
+        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId));
         // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞�
         insertUserPost(user);
         return baseMapper.updateById(user);
@@ -269,15 +289,14 @@
     /**
      * 鐢ㄦ埛鎺堟潈瑙掕壊
      *
-     * @param userId 鐢ㄦ埛ID
+     * @param userId  鐢ㄦ埛ID
      * @param roleIds 瑙掕壊缁�
      */
     @Override
     @Transactional
-    public void insertUserAuth(Long userId, Long[] roleIds)
-    {
+    public void insertUserAuth(Long userId, Long[] roleIds) {
         userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>()
-			.eq(SysUserRole::getUserId, userId));
+                .eq(SysUserRole::getUserId, userId));
         insertUserRole(userId, roleIds);
     }
 
@@ -307,15 +326,15 @@
      * 淇敼鐢ㄦ埛澶村儚
      *
      * @param userName 鐢ㄦ埛鍚�
-     * @param avatar 澶村儚鍦板潃
+     * @param avatar   澶村儚鍦板潃
      * @return 缁撴灉
      */
     @Override
     public boolean updateUserAvatar(String userName, String avatar) {
         return baseMapper.update(null,
                 new LambdaUpdateWrapper<SysUser>()
-                        .set(SysUser::getAvatar,avatar)
-                        .eq(SysUser::getUserName,userName)) > 0;
+                        .set(SysUser::getAvatar, avatar)
+                        .eq(SysUser::getUserName, userName)) > 0;
     }
 
     /**
@@ -340,8 +359,8 @@
     public int resetUserPwd(String userName, String password) {
         return baseMapper.update(null,
                 new LambdaUpdateWrapper<SysUser>()
-                        .set(SysUser::getPassword,password)
-                        .eq(SysUser::getUserName,userName));
+                        .set(SysUser::getPassword, password)
+                        .eq(SysUser::getUserName, userName));
     }
 
     /**
@@ -361,7 +380,7 @@
                 list.add(ur);
             }
             if (list.size() > 0) {
-				userRoleMapper.insertAll(list);
+                userRoleMapper.insertAll(list);
             }
         }
     }
@@ -383,7 +402,7 @@
                 list.add(up);
             }
             if (list.size() > 0) {
-				userPostMapper.insertAll(list);
+                userPostMapper.insertAll(list);
             }
         }
     }
@@ -391,7 +410,7 @@
     /**
      * 鏂板鐢ㄦ埛瑙掕壊淇℃伅
      *
-     * @param userId 鐢ㄦ埛ID
+     * @param userId  鐢ㄦ埛ID
      * @param roleIds 瑙掕壊缁�
      */
     public void insertUserRole(Long userId, Long[] roleIds) {
@@ -420,9 +439,9 @@
     @Transactional
     public int deleteUserById(Long userId) {
         // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
-        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId,userId));
+        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
         // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶈〃
-        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId,userId));
+        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId));
         return baseMapper.deleteById(userId);
     }
 
@@ -440,18 +459,18 @@
         }
         List<Long> ids = Arrays.asList(userIds);
         // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
-        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId,ids));
+        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId, ids));
         // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶈〃
-        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().in(SysUserPost::getUserId,ids));
+        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().in(SysUserPost::getUserId, ids));
         return baseMapper.deleteBatchIds(ids);
     }
 
     /**
      * 瀵煎叆鐢ㄦ埛鏁版嵁
      *
-     * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃
+     * @param userList        鐢ㄦ埛鏁版嵁鍒楄〃
      * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁
-     * @param operName 鎿嶄綔鐢ㄦ埛
+     * @param operName        鎿嶄綔鐢ㄦ埛
      * @return 缁撴灉
      */
     @Override

--
Gitblit v1.9.3