Ver Fonte

更新菜单管理员查询权限

谭斌 há 2 anos atrás
pai
commit
52d00c6a2f

+ 9 - 0
authorize-api-service/src/main/java/com/xy/service/SysRoleMenuService.java

@@ -1,6 +1,7 @@
 package com.xy.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.xy.dto.SysRoleDto;
 import com.xy.entity.SysRoleMenu;
 import com.xy.vo.RoleMenuVo;
 
@@ -29,4 +30,12 @@ public interface SysRoleMenuService extends IService<SysRoleMenu> {
      */
     List<Long> getMenuIdsByRoleId(Long roleId);
 
+    /**
+     * 更新菜单管理员查询权限
+     *
+     * @param updateRoleMenu
+     * @return
+     */
+    Boolean updateAdminRoleMenu(SysRoleDto.UpdateAdminRoleMenu updateRoleMenu);
+
 }

+ 26 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleMenuServiceImpl.java

@@ -4,9 +4,11 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xy.dto.SysRoleDto;
 import com.xy.entity.SysRoleMenu;
 import com.xy.mapper.SysRoleMenuMapper;
 import com.xy.service.SysRoleMenuService;
+import com.xy.utils.Beans;
 import com.xy.vo.RoleMenuVo;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -64,4 +66,28 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
         return menuIds;
     }
 
+    @Override
+    public Boolean updateAdminRoleMenu(SysRoleDto.UpdateAdminRoleMenu updateAdminRoleMenu) {
+        List<SysRoleMenu> sysRoleMenuList = Beans.copy(SysRoleMenu.class, updateAdminRoleMenu.getRoleMenuList());
+        if (CollUtil.isEmpty(sysRoleMenuList)) {
+            return Boolean.TRUE;
+        }
+        List<SysRoleMenu> updateList = new ArrayList<>(16);
+        sysRoleMenuList.forEach(sysRoleMenu -> {
+            SysRoleMenu roleMenu = this.getOne(Wrappers.<SysRoleMenu>lambdaQuery()
+                    .eq(SysRoleMenu::getSysId, sysRoleMenu.getSysId())
+                    .eq(SysRoleMenu::getRoleId, sysRoleMenu.getRoleId())
+                    .eq(SysRoleMenu::getMenuId, sysRoleMenu.getMenuId())
+            );
+            if (roleMenu != null) {
+                roleMenu.setSelectAdmin(sysRoleMenu.getSelectAdmin());
+                updateList.add(roleMenu);
+            }
+        });
+        if (CollUtil.isNotEmpty(updateList)) {
+            saveOrUpdateBatch(updateList);
+        }
+        return Boolean.TRUE;
+    }
+
 }

+ 14 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleServiceImpl.java

@@ -30,6 +30,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -99,6 +100,19 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         return R.ok(sysRole.getId());
     }
 
+
+    /**
+     * 更新菜单管理员查询权限
+     *
+     * @param updateAdminRoleMenu
+     * @return
+     */
+    @ApiOperation(value = "更新菜单管理员查询权限", notes = "更新菜单管理员查询权限")
+    @PostMapping("updateAdminRoleMenu")
+    public R<Boolean> updateAdminRoleMenu(@Valid @RequestBody @Validated SysRoleDto.UpdateAdminRoleMenu updateAdminRoleMenu) {
+        return R.ok(sysRoleMenuService.updateAdminRoleMenu(updateAdminRoleMenu));
+    }
+
     @ApiOperation(value = "删除角色", notes = "删除角色")
     @DeleteMapping("batchDelete")
     public R<Boolean> batchDelete(@Valid @RequestBody BatchDeleteDto batchDeleteDto) {

+ 36 - 0
authorize-api/src/main/java/com/xy/dto/SysRoleDto.java

@@ -104,4 +104,40 @@ public class SysRoleDto {
     }
 
 
+    @Data
+    @ApiModel
+    @Accessors(chain = true)
+    public static class UpdateAdminRoleMenu {
+        @NotNull(message = "角色菜单可为空")
+        @ApiModelProperty("角色菜单")
+        private List<RoleMenuDto> roleMenuList;
+
+    }
+
+
+    @Data
+    @ApiModel
+    @Accessors(chain = true)
+    public static class RoleMenuDto {
+
+        @NotNull(message = "角色ID不可为空")
+        @ApiModelProperty("角色ID")
+        private Long roleId;
+
+        @NotNull(message = "菜单ID不可为空")
+        @ApiModelProperty("菜单")
+        private Long menuId;
+
+        @NotNull(message = "系统ID不可为空")
+        @ApiModelProperty("系统ID")
+        private Long sysId;
+
+        @NotNull(message = "角色ID不可为空")
+        @ApiModelProperty("管理员查询权限;true=管理员查询权限查询某系统所有数据 false=普通查询权限查询某系统自身数据")
+        private Boolean selectAdmin;
+
+
+    }
+
+
 }