角色菜单id获取接口

This commit is contained in:
张松 2025-02-17 11:13:48 +08:00
parent 26a3aab8cb
commit 919f727049
3 changed files with 26 additions and 0 deletions

View File

@ -8,11 +8,14 @@ import com.czg.account.entity.SysRole;
import com.czg.account.service.SysRoleService; import com.czg.account.service.SysRoleService;
import com.czg.annotation.SaAdminCheckPermission; import com.czg.annotation.SaAdminCheckPermission;
import com.czg.resp.CzgResult; import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* *
* 角色管理 * 角色管理
@ -37,6 +40,18 @@ public class RoleController {
return CzgResult.success(roleService.getList(pageDTO, key, startTime, endTime)); return CzgResult.success(roleService.getList(pageDTO, key, startTime, endTime));
} }
/**
* 获取角色对应的菜单
* 权限标识: role:menu
* @param id 角色id
* @return 分页数据
*/
@SaAdminCheckPermission(value = "role:menu")
@GetMapping("/menu")
public CzgResult<List<Long>> getRoleMenu(@RequestParam Integer id) {
return CzgResult.success(roleService.getRoleMenu(StpKit.USER.getLoginIdAsLong(), id));
}
/** /**
* 新增角色 * 新增角色
* 权限标识: role:add * 权限标识: role:add

View File

@ -24,4 +24,6 @@ public interface SysRoleService extends IService<SysRole> {
Boolean add(RoleAddDTO roleAddDTO); Boolean add(RoleAddDTO roleAddDTO);
Boolean edit(RoleEditDTO roleEditDTO); Boolean edit(RoleEditDTO roleEditDTO);
List<Long> getRoleMenu(long loginIdAsLong, Integer id);
} }

View File

@ -67,6 +67,15 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> imp
return page(new Page<>(pageDTO.page(), pageDTO.size()), queryWrapper); return page(new Page<>(pageDTO.page(), pageDTO.size()), queryWrapper);
} }
@Override
public List<Long> getRoleMenu(long userId, Integer id) {
SysRole role = queryChain().eq(SysRole::getId, id).eq(SysRole::getCreateUserId, userId).one();
if (role == null) {
throw new ApiNotPrintException("角色不存在");
}
return sysRolesMenusService.queryChain().eq(SysRolesMenus::getRoleId, id).list().stream().map(SysRolesMenus::getMenuId).toList();
}
public boolean addMenu(Long roleId, List<Long> menuIds) { public boolean addMenu(Long roleId, List<Long> menuIds) {
long count = sysMenuService.queryChain().in(SysMenu::getMenuId, menuIds).count(); long count = sysMenuService.queryChain().in(SysMenu::getMenuId, menuIds).count();
if (count != menuIds.size()) { if (count != menuIds.size()) {