Răsfoiți Sursa

Add selectUserModule

tsurumure 10 luni în urmă
părinte
comite
7e01d8e431

+ 1 - 1
db/sys_user_role_module.sql

@@ -52,7 +52,7 @@ INSERT INTO sys_user_role_module(id, parent_id, module_name, sort) VALUES
             ('3.3.8', '3.3', '系统用户-操作积分', null),
             ('3.3.9', '3.3', '系统用户-查询积分', null),
             ('3.3.10', '3.3', '系统用户-查询积分操作记录', null),
-
+        ('3.4', '3', '系统用户权限', null),
         -- ('3.3', '3', '会员用户-列表'),
         --     ('3.3.1', '3.3', '会员用户-详情'),
         --     ('3.3.2', '3.3', '会员用户-创建'),

+ 1 - 0
db/sys_user_role_module_relation.sql

@@ -50,6 +50,7 @@ INSERT INTO sys_user_role_module_relation(role_id, module_id) VALUES
         (1, '3.3'),
             (1, '3.3.8'), (1, '3.3.9'), (1, '3.3.10'),
 #             (1, '3.3.1'), (1, '3.3.2'), (1, '3.3.3'), (1, '3.3.4'), (1, '3.3.5'), (1, '3.3.6'), (1, '3.3.7'),
+        (1, '3.4'),
     (1, '4'),
         (1, '4.1'),
             (1, '4.1.1'), (1, '4.1.2'), (1, '4.1.3'), (1, '4.1.4'), (1, '4.1.5'),

+ 18 - 10
src/main/java/com/backendsys/modules/system/controller/SysUserV2Controller.java

@@ -9,12 +9,12 @@ import com.backendsys.modules.system.service.SysUserV2Service;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.constraints.NotEmpty;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-
 @Validated
 @RestController
 @Tag(name = "系统用户")
@@ -36,8 +36,10 @@ public class SysUserV2Controller {
         // 查询自身的用户信息 (不传参数)
         user_id = (user_id == null) ? SecurityUtil.getUserId() : user_id;
 
-        // 查询他人的用户信息,需要具备权限 (非管理员,非当前用户,不具备权限)
-        if (!SecurityUtil.isSuper() && user_id != SecurityUtil.getUserId() && !SecurityUtil.hasPermission("3.2.1.2")) {
+        // 查询他人的用户信息
+        // - 查询自己 (无需权限)
+        // - 查询他人 (需要权限或超级管理员)
+        if (user_id != SecurityUtil.getUserId() && !SecurityUtil.hasPermission("3.2.1.2") && !SecurityUtil.isSuper()) {
             throw new CustException(SecurityEnum.NOAUTH);
         }
 
@@ -46,17 +48,23 @@ public class SysUserV2Controller {
 
 
     @Operation(summary = "获得系统用户权限")
-//    @PreAuthorize("@sr.hasPermission('3.2.1')")
+    @PreAuthorize("@sr.hasPermission('3.4')")
     @GetMapping("/api/v2/system/user/getUserPermission")
-    public Result getUserPermission(@Validated(SysUserInfo.Primarys.class) @ModelAttribute SysUserInfo userInfo) {
-
-        // GetMapping 识别不了 @Validated ?
+//    public Result getUserPermission(@Validated(SysUserInfo.Primarys.class) SysUserInfo userInfo) {
+//    public Result getUserPermission(@NotEmpty(message = "user_id 不能为空") String user_id) {
+    public Result getUserPermission(@Parameter(description = "用户ID") Long user_id) {
 
-    // public Result getUserPermission(@NotBlank(message = "user_id 不能为空") String user_id) {
+        // 查询自身的用户信息 (不传参数)
+        user_id = (user_id == null) ? SecurityUtil.getUserId() : user_id;
 
-        System.out.println(userInfo);
+        // 查询他人的用户信息
+        // - 查询自己 (无需权限)
+        // - 查询他人 (需要权限或超级管理员)
+        if (user_id != SecurityUtil.getUserId() && !SecurityUtil.hasPermission("3.4") && !SecurityUtil.isSuper()) {
+            throw new CustException(SecurityEnum.NOAUTH);
+        }
 
-        return Result.success().put("data", null);
+        return Result.success().put("data", sysUserV2Service.selectUserModule(user_id));
     }
 
 }

+ 12 - 0
src/main/java/com/backendsys/modules/system/dao/SysUserModuleDao.java

@@ -0,0 +1,12 @@
+package com.backendsys.modules.system.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface SysUserModuleDao {
+
+    List<Long> selectUserModule(Long user_id);
+
+}

+ 9 - 0
src/main/java/com/backendsys/modules/system/dao/SysUserRoleRelationDao.java

@@ -0,0 +1,9 @@
+package com.backendsys.modules.system.dao;
+
+import com.backendsys.modules.system.entity.SysUser.SysUserRoleRelation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysUserRoleRelationDao extends BaseMapper<SysUserRoleRelation> {
+}

+ 1 - 4
src/main/java/com/backendsys/modules/system/entity/SysUser/SysUserInfo.java

@@ -6,19 +6,16 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Data
 @TableName("sys_user_info")
 public class SysUserInfo {
 
-    public static interface Primarys{}
-
     @TableId(type = IdType.AUTO)
     private Long id;
 
-    @NotNull(message = "user_id 不能为空")
     private Long user_id;
 
     @TableField(exist = false)

+ 19 - 0
src/main/java/com/backendsys/modules/system/entity/SysUser/SysUserRoleRelation.java

@@ -0,0 +1,19 @@
+package com.backendsys.modules.system.entity.SysUser;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("sys_user_role_relation")
+public class SysUserRoleRelation {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Long user_id;
+    private Long role_id;
+
+}

+ 6 - 1
src/main/java/com/backendsys/modules/system/service/SysUserV2Service.java

@@ -4,9 +4,14 @@ import com.backendsys.modules.system.entity.SysUser.SysUser;
 import com.backendsys.modules.system.entity.SysUser.SysUserInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 public interface SysUserV2Service extends IService<SysUser> {
 
     // 获得系统用户详情
-    public SysUserInfo selectUserInfo(Long user_id);
+    SysUserInfo selectUserInfo(Long user_id);
+
+    // 获得系统用户权限
+    List<Long> selectUserModule(Long user_id);
 
 }

+ 23 - 0
src/main/java/com/backendsys/modules/system/service/impl/SysUserV2ServiceImpl.java

@@ -3,9 +3,11 @@ package com.backendsys.modules.system.service.impl;
 import com.backendsys.modules.system.dao.SysUserDao;
 import com.backendsys.modules.system.dao.SysUserInfoDao;
 import com.backendsys.modules.system.dao.SysUserRoleDao;
+import com.backendsys.modules.system.dao.SysUserRoleRelationDao;
 import com.backendsys.modules.system.entity.SysUser.SysUser;
 import com.backendsys.modules.system.entity.SysUser.SysUserInfo;
 import com.backendsys.modules.system.entity.SysUser.SysUserRole;
+import com.backendsys.modules.system.entity.SysUser.SysUserRoleRelation;
 import com.backendsys.modules.system.service.SysUserV2Service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -15,6 +17,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Service
 public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> implements SysUserV2Service {
@@ -25,6 +28,8 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
     private SysUserInfoDao sysUserInfoDao;
     @Autowired
     private SysUserRoleDao sysUserRoleDao;
+    @Autowired
+    private SysUserRoleRelationDao sysUserRoleRelationDao;
 
     /**
      * 获得系统用户详情
@@ -50,4 +55,22 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
         return sysUserInfo;
     }
 
+    /**
+     * 获得系统用户权限
+     */
+    @Override
+    public List<Long> selectUserModule(Long user_id) {
+
+        // 获得当前角色关系
+        QueryWrapper<SysUserRoleRelation> wrapper = new QueryWrapper<>();
+        wrapper.eq("user_id", user_id);
+        List<SysUserRoleRelation> userRoleList = sysUserRoleRelationDao.selectList(wrapper);
+        List<Long> userRoleIds = userRoleList.stream().map(SysUserRoleRelation::getRole_id).collect(Collectors.toList());
+        System.out.println("userRoleIds = " + userRoleIds);
+        
+
+        return null;
+    }
+
+
 }

+ 13 - 0
src/main/resources/mapper/system/SysUserModuleDao.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.backendsys.modules.system.dao.SysUserModuleDao">
+
+<!--    <select id="selectUserModule" resultType="com.backendsys.modules.system.entity.SysUser.SysUserRole">-->
+<!--        SELECT *-->
+<!--        FROM sys_user_role_relation surr-->
+<!--        LEFT JOIN sys_user_role sur ON sur.id = sumr.role_id-->
+<!--        LEFT JOIN sys_user_module_relation ON su.id = sumr.role_id-->
+<!--        WHERE surr.user_id = #{user_id}-->
+<!--    </select>-->
+
+</mapper>