Browse Source

管理端列表bug更改

caojp 1 tháng trước cách đây
mục cha
commit
d98924de73

+ 3 - 0
service/admin/src/main/java/com/zhentao/entity/AdminUser.java

@@ -1,6 +1,7 @@
 package com.zhentao.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -57,7 +58,9 @@ public class AdminUser {
 
     /**
      * 角色:admin-普通管理员 super-超级管理员
+     * 注意:此字段已废弃,角色信息现在通过 admin_user_role 关联表获取
      */
+    @TableField(exist = false)
     private String role;
 
     /**

+ 5 - 107
service/admin/src/main/java/com/zhentao/service/AdminSecurityService.java

@@ -1,126 +1,24 @@
 package com.zhentao.service;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.zhentao.entity.AdminPermission;
-import com.zhentao.entity.AdminRole;
-import com.zhentao.entity.AdminRolePermission;
-import com.zhentao.entity.AdminUserRole;
-import com.zhentao.mapper.AdminPermissionMapper;
-import com.zhentao.mapper.AdminRoleMapper;
-import com.zhentao.mapper.AdminRolePermissionMapper;
-import com.zhentao.mapper.AdminUserRoleMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
- * 管理员权限服务
+ * 管理员权限服务接口
  */
-@Service
-public class AdminSecurityService {
-    
-    @Autowired
-    private AdminUserRoleMapper adminUserRoleMapper;
-    
-    @Autowired
-    private AdminRoleMapper adminRoleMapper;
-    
-    @Autowired
-    private AdminRolePermissionMapper adminRolePermissionMapper;
-    
-    @Autowired
-    private AdminPermissionMapper adminPermissionMapper;
+public interface AdminSecurityService {
     
     /**
      * 检查用户是否是超级管理员
      */
-    public boolean isSuperAdmin(Integer userId) {
-        QueryWrapper<AdminUserRole> wrapper = new QueryWrapper<>();
-        wrapper.eq("user_id", userId);
-        List<AdminUserRole> userRoles = adminUserRoleMapper.selectList(wrapper);
-        
-        for (AdminUserRole userRole : userRoles) {
-            AdminRole role = adminRoleMapper.selectById(userRole.getRoleId());
-            if (role != null && "超级管理员".equals(role.getRoleName())) {
-                return true;
-            }
-        }
-        return false;
-    }
+    boolean isSuperAdmin(Integer userId);
     
     /**
      * 获取用户的所有权限编码列表
      */
-    public List<String> getUserPermissions(Integer userId) {
-        List<String> permissions = new ArrayList<>();
-        
-        // 检查是否是超级管理员
-        if (isSuperAdmin(userId)) {
-            permissions.add("*");
-            return permissions;
-        }
-        
-        // 查询用户角色
-        QueryWrapper<AdminUserRole> userRoleWrapper = new QueryWrapper<>();
-        userRoleWrapper.eq("user_id", userId);
-        List<AdminUserRole> userRoles = adminUserRoleMapper.selectList(userRoleWrapper);
-        
-        if (userRoles.isEmpty()) {
-            return permissions;
-        }
-        
-        List<Integer> roleIds = userRoles.stream()
-                .map(AdminUserRole::getRoleId)
-                .collect(Collectors.toList());
-        
-        // 查询角色权限
-        QueryWrapper<AdminRolePermission> rolePermissionWrapper = new QueryWrapper<>();
-        rolePermissionWrapper.in("role_id", roleIds);
-        List<AdminRolePermission> rolePermissions = adminRolePermissionMapper.selectList(rolePermissionWrapper);
-        
-        Set<Integer> permissionIds = rolePermissions.stream()
-                .map(AdminRolePermission::getPermissionId)
-                .collect(Collectors.toSet());
-        
-        if (!permissionIds.isEmpty()) {
-            QueryWrapper<AdminPermission> permissionWrapper = new QueryWrapper<>();
-            permissionWrapper.in("id", permissionIds);
-            permissionWrapper.eq("status", 1); // 只查询启用的权限
-            List<AdminPermission> permissionList = adminPermissionMapper.selectList(permissionWrapper);
-            
-            for (AdminPermission permission : permissionList) {
-                if (permission.getPermissionCode() != null) {
-                    permissions.add(permission.getPermissionCode());
-                }
-            }
-        }
-        
-        return permissions;
-    }
+    List<String> getUserPermissions(Integer userId);
     
     /**
      * 获取用户的角色名称列表
      */
-    public List<String> getUserRoles(Integer userId) {
-        List<String> roles = new ArrayList<>();
-        
-        QueryWrapper<AdminUserRole> wrapper = new QueryWrapper<>();
-        wrapper.eq("user_id", userId);
-        List<AdminUserRole> userRoles = adminUserRoleMapper.selectList(wrapper);
-        
-        for (AdminUserRole userRole : userRoles) {
-            AdminRole role = adminRoleMapper.selectById(userRole.getRoleId());
-            if (role != null && role.getStatus() == 1) {
-                roles.add(role.getRoleName());
-            }
-        }
-        
-        return roles;
-    }
+    List<String> getUserRoles(Integer userId);
 }
-

+ 4 - 1
service/admin/src/main/java/com/zhentao/service/impl/AdminSecurityServiceImpl.java

@@ -4,6 +4,7 @@ import com.zhentao.entity.AdminUser;
 import com.zhentao.mapper.AdminUserMapper;
 import com.zhentao.service.AdminSecurityService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -11,7 +12,9 @@ import java.util.Arrays;
 import java.util.List;
 
 /**
- * 管理员安全服务实现类
+ * 管理员安全服务实现类(基于role字段,已废弃)
+ * 注意:此实现已废弃,因为数据库表中没有role字段
+ * 请使用 RolePermissionBasedAdminSecurityServiceImpl
  */
 @Service
 public class AdminSecurityServiceImpl implements AdminSecurityService {

+ 122 - 0
service/admin/src/main/java/com/zhentao/service/impl/RolePermissionBasedAdminSecurityServiceImpl.java

@@ -0,0 +1,122 @@
+package com.zhentao.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.zhentao.entity.AdminPermission;
+import com.zhentao.entity.AdminRole;
+import com.zhentao.entity.AdminRolePermission;
+import com.zhentao.entity.AdminUserRole;
+import com.zhentao.mapper.AdminPermissionMapper;
+import com.zhentao.mapper.AdminRoleMapper;
+import com.zhentao.mapper.AdminRolePermissionMapper;
+import com.zhentao.mapper.AdminUserRoleMapper;
+import com.zhentao.service.AdminSecurityService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * 基于角色权限表的管理员权限服务实现(默认实现)
+ */
+@Service
+@Primary
+public class RolePermissionBasedAdminSecurityServiceImpl implements AdminSecurityService {
+    
+    @Autowired
+    private AdminUserRoleMapper adminUserRoleMapper;
+    
+    @Autowired
+    private AdminRoleMapper adminRoleMapper;
+    
+    @Autowired
+    private AdminRolePermissionMapper adminRolePermissionMapper;
+    
+    @Autowired
+    private AdminPermissionMapper adminPermissionMapper;
+    
+    @Override
+    public boolean isSuperAdmin(Integer userId) {
+        QueryWrapper<AdminUserRole> wrapper = new QueryWrapper<>();
+        wrapper.eq("user_id", userId);
+        List<AdminUserRole> userRoles = adminUserRoleMapper.selectList(wrapper);
+        
+        for (AdminUserRole userRole : userRoles) {
+            AdminRole role = adminRoleMapper.selectById(userRole.getRoleId());
+            if (role != null && ("SUPER_ADMIN".equals(role.getRoleCode()) || "超级管理员".equals(role.getRoleName()))) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    @Override
+    public List<String> getUserPermissions(Integer userId) {
+        List<String> permissions = new ArrayList<>();
+        
+        // 检查是否是超级管理员
+        if (isSuperAdmin(userId)) {
+            permissions.add("*");
+            return permissions;
+        }
+        
+        // 查询用户角色
+        QueryWrapper<AdminUserRole> userRoleWrapper = new QueryWrapper<>();
+        userRoleWrapper.eq("user_id", userId);
+        List<AdminUserRole> userRoles = adminUserRoleMapper.selectList(userRoleWrapper);
+        
+        if (userRoles.isEmpty()) {
+            return permissions;
+        }
+        
+        List<Integer> roleIds = userRoles.stream()
+                .map(AdminUserRole::getRoleId)
+                .collect(Collectors.toList());
+        
+        // 查询角色权限
+        QueryWrapper<AdminRolePermission> rolePermissionWrapper = new QueryWrapper<>();
+        rolePermissionWrapper.in("role_id", roleIds);
+        List<AdminRolePermission> rolePermissions = adminRolePermissionMapper.selectList(rolePermissionWrapper);
+        
+        Set<Integer> permissionIds = rolePermissions.stream()
+                .map(AdminRolePermission::getPermissionId)
+                .collect(Collectors.toSet());
+        
+        if (!permissionIds.isEmpty()) {
+            QueryWrapper<AdminPermission> permissionWrapper = new QueryWrapper<>();
+            permissionWrapper.in("id", permissionIds);
+            permissionWrapper.eq("status", 1); // 只查询启用的权限
+            List<AdminPermission> permissionList = adminPermissionMapper.selectList(permissionWrapper);
+            
+            for (AdminPermission permission : permissionList) {
+                if (permission.getPermissionCode() != null) {
+                    permissions.add(permission.getPermissionCode());
+                }
+            }
+        }
+        
+        return permissions;
+    }
+    
+    @Override
+    public List<String> getUserRoles(Integer userId) {
+        List<String> roles = new ArrayList<>();
+        
+        QueryWrapper<AdminUserRole> wrapper = new QueryWrapper<>();
+        wrapper.eq("user_id", userId);
+        List<AdminUserRole> userRoles = adminUserRoleMapper.selectList(wrapper);
+        
+        for (AdminUserRole userRole : userRoles) {
+            AdminRole role = adminRoleMapper.selectById(userRole.getRoleId());
+            if (role != null && role.getStatus() == 1) {
+                roles.add(role.getRoleName());
+            }
+        }
+        
+        return roles;
+    }
+}
+

+ 6 - 6
service/homePage/src/main/java/com/zhentao/controller/ActivityController.java

@@ -62,12 +62,12 @@ public class ActivityController {
      */
     @GetMapping("/list")
     public Result<?> getActivityList(
-            @RequestParam(required = false) String type,
-            @RequestParam(required = false) Integer status,
-            @RequestParam(required = false) String keyword,
-            @RequestParam(required = false) Integer page,
-            @RequestParam(required = false) Integer pageSize,
-            @RequestParam(required = false) Integer limit) {
+            @RequestParam(value = "type", required = false) String type,
+            @RequestParam(value = "status", required = false) Integer status,
+            @RequestParam(value = "keyword", required = false) String keyword,
+            @RequestParam(value = "page", required = false) Integer page,
+            @RequestParam(value = "pageSize", required = false) Integer pageSize,
+            @RequestParam(value = "limit", required = false) Integer limit) {
         try {
             // 如果提供了分页参数,使用分页查询
             if (page != null && pageSize != null && page > 0 && pageSize > 0) {