瀏覽代碼

Dev sysUser

tsurumure 6 月之前
父節點
當前提交
da13572a9e

+ 0 - 1
db/sys_user_role_permission.sql

@@ -49,7 +49,6 @@ INSERT INTO sys_user_role_permission(id, parent_id, permission_name, sort) VALUE
                 ('3.2.3.3', '3.2', '编辑用户密码', null),
                 ('3.2.3.4', '3.2', '重置用户密码', null),
             ('3.2.4', '3.2', '删除用户', null),
-            ('3.2.5', '3.2', '删除用户(批量)', null),
             ('3.2.6', '3.2', '审核用户', null),
             ('3.2.7', '3.2', '踢出用户', null),
         ('3.3', '3', '系统用户积分列表', null),

+ 3 - 1
db/sys_user_role_permission_relation.sql

@@ -28,7 +28,9 @@ INSERT INTO sys_user_role_permission_relation(role_id, permission_id) VALUES
             (1, '3.2.1'), (1, '3.2.1.2'), (1, '3.2.2'),
             (1, '3.2.3'),
                 (1, '3.2.3.2'), (1, '3.2.3.3'), (1, '3.2.3.4'),
-            (1, '3.2.4'), (1, '3.2.5'), (1, '3.2.6'), (1, '3.2.7'),
+            (1, '3.2.4'),
+            (1, '3.2.6'),
+            (1, '3.2.7'),
         (1, '3.3'),
             (1, '3.3.1'), (1, '3.3.2'), (1, '3.3.3'),
             (1, '3.3.4'),

+ 16 - 0
src/main/java/com/backendsys/modules/system/controller/SysUserController.java

@@ -167,12 +167,26 @@ public class SysUserController {
         Long user_id = sysUserDTO.getUser_id();
         List<Long> user_ids = sysUserDTO.getUser_ids();
         if (user_id == null && (user_ids == null || user_ids.size() == 0)) throw new CustException("user_id 或 user_ids 必填");
+        if (user_id.equals(1L)) throw new CustException("不能删除超管账号");
         if (user_ids != null && user_ids.contains(SecurityUtil.getUserId()) && !user_id.equals(SecurityUtil.getUserId())) throw new CustException("不能删除自己的账号");
         if (user_ids != null && user_ids.contains(1L) && !user_id.equals(1L)) throw new CustException("不能删除超管账号");
 
         return Result.success().put("data", sysUserService.deleteUser(sysUserDTO));
     }
 
+    @SysLog("审核用户")
+    @Operation(summary = "审核用户")
+    @PreAuthorize("@sr.hasPermission('3.2.6')")
+    @PutMapping("/api/system/user/auditUser")
+    public Result auditUser(@Validated(SysUserDTO.Audit.class) @RequestBody SysUserDTO sysUserDTO) {
+
+        Long user_id = sysUserDTO.getUser_id();
+        if (user_id.equals(1L)) throw new CustException("不能审核超管账号");
+        if (user_id.equals(SecurityUtil.getUserId())) throw new CustException("不能审核自己的账号");
+
+        return Result.success().put("data", sysUserService.auditUser(sysUserDTO));
+    }
+
     @SysLog("踢出系统用户")
     @Operation(summary = "踢出系统用户")
     @PreAuthorize("@sr.hasPermission('3.2.7')")
@@ -187,6 +201,8 @@ public class SysUserController {
     }
 
 
+
+
     /**
      * 权限:
      * - 查询用户权限 (3.4.1)

+ 2 - 0
src/main/java/com/backendsys/modules/system/service/SysUserService.java

@@ -37,5 +37,7 @@ public interface SysUserService extends IService<SysUser> {
     Map<String, Object> deleteUser(SysUserDTO sysUserDTO);
     // 踢出系统用户
     Map<String, Object> kickUser(Long user_id);
+    // 审核用户
+    Map<String, Object> auditUser(SysUserDTO sysUserDTO);
 
 }

+ 2 - 2
src/main/java/com/backendsys/modules/system/service/impl/SysAuthServiceImpl.java

@@ -141,8 +141,8 @@ public class SysAuthServiceImpl implements SysAuthService {
 
         // 判断用户是否审核
         Integer audit_status = sysUserInfo.getAudit_status();
-        if (audit_status != null && audit_status.equals(1)) throw new CustException("请等待管理员审核");
-        if (audit_status != null && audit_status.equals(-1)) throw new CustException("审核未通过,请与客服联系");
+        if (audit_status != null && audit_status.equals(1)) throw new CustException("用户审核中");
+        if (audit_status != null && audit_status.equals(-1)) throw new CustException("用户审核未通过,请与客服联系");
 
         // 判断用户是否启用
         Integer status = sysUserInfo.getStatus();

+ 29 - 9
src/main/java/com/backendsys/modules/system/service/impl/SysUserServiceImpl.java

@@ -314,10 +314,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
 
             SysUser entity = new SysUser();
             entity.setId(sysUserDTO.getUser_id());
-            // MD5加密
-            String md5Password = MD5Util.encrypt(sysUserDTO.getPassword());
-            // 加盐加密
-            String encodedPassword = encoder.encode(md5Password);
+
+//            // MD5加密
+//            String md5Password = MD5Util.encrypt(sysUserDTO.getPassword());
+
+            // 加盐加密 (前端会传已加密过的密码)
+            String encodedPassword = encoder.encode(sysUserDTO.getPassword());
             entity.setPassword(encodedPassword);
             //
             System.out.println(entity);
@@ -327,8 +329,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
 
         } catch (InterruptedException e) {
             throw new RuntimeException(e);
-        } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException(e);
         } finally { lock.unlock(); }
     }
 
@@ -362,9 +362,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
             response.put("plain_password", password);
             return response;
 
-        } catch (InterruptedException e) {
-            throw new RuntimeException(e);
-        } catch (NoSuchAlgorithmException e) {
+        } catch (InterruptedException | NoSuchAlgorithmException e) {
             throw new RuntimeException(e);
         } finally { lock.unlock(); }
     }
@@ -428,4 +426,26 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
         } catch (InterruptedException e) { throw new RuntimeException(e);
         } finally { lock.unlock(); }
     }
+
+
+    /**
+     * 审核用户
+     */
+    @Override
+    public Map<String, Object> auditUser(SysUserDTO sysUserDTO) {
+        RLock lock = redissonClient.getLock("auditUser");
+        try { lock.tryLock(3, TimeUnit.SECONDS);
+
+            Long user_id = sysUserDTO.getUser_id();
+
+            SysUserInfo entity = new SysUserInfo();
+            entity.setAudit_status(sysUserDTO.getAudit_status());
+            entity.setAudit_note(sysUserDTO.getAudit_note());
+            sysUserInfoDao.update(entity, new LambdaQueryWrapper<SysUserInfo>().eq(SysUserInfo::getUser_id, user_id));
+
+            return Map.of("user_id", user_id);
+
+        } catch (InterruptedException e) { throw new RuntimeException(e);
+        } finally { lock.unlock(); }
+    }
 }

+ 0 - 1
src/main/resources/mapper/system/SysUserInfoDao.xml

@@ -64,7 +64,6 @@
         LEFT JOIN sys_user_role_relation urr ON uf.user_id = urr.user_id
         LEFT JOIN sys_user_integral ui ON uf.user_id = ui.user_id
         <where>
-            AND u.id != 1
             AND uf.del_flag != 1
             <if test="username != null and username != ''">AND u.username LIKE CONCAT('%', #{username}, '%')</if>
             <if test="phone != null and phone != ''">AND u.phone LIKE CONCAT('%', #{phone}, '%')</if>