|
|
@@ -1,9 +1,10 @@
|
|
|
package cn.reghao.devops.web.account.controller.page;
|
|
|
|
|
|
-import cn.reghao.devops.web.account.db.query.MenuQuery;
|
|
|
-import cn.reghao.devops.web.account.model.dto.MenuDTO;
|
|
|
+import cn.reghao.devops.web.account.model.dto.MenuDto;
|
|
|
import cn.reghao.devops.web.account.model.po.Role;
|
|
|
import cn.reghao.devops.web.account.model.po.Menu;
|
|
|
+import cn.reghao.devops.web.account.model.vo.RoleVO;
|
|
|
+import cn.reghao.devops.web.account.service.MenuService;
|
|
|
import cn.reghao.devops.web.account.service.RoleService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
@@ -12,6 +13,7 @@ import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author reghao
|
|
|
@@ -21,40 +23,29 @@ import java.util.*;
|
|
|
@RequestMapping("/rbac/menu")
|
|
|
@Controller
|
|
|
public class MenuPageController {
|
|
|
+ private final MenuService menuService;
|
|
|
private final RoleService roleService;
|
|
|
- private final MenuQuery menuQuery;
|
|
|
|
|
|
- public MenuPageController(RoleService roleService, MenuQuery menuQuery) {
|
|
|
+ public MenuPageController(MenuService menuService, RoleService roleService) {
|
|
|
+ this.menuService = menuService;
|
|
|
this.roleService = roleService;
|
|
|
- this.menuQuery = menuQuery;
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "资源列表页面")
|
|
|
@GetMapping
|
|
|
- public String menuPage(@RequestParam(value = "enabled", required = false) Boolean enabled, Model model) {
|
|
|
- if (enabled == null) {
|
|
|
- enabled = true;
|
|
|
- }
|
|
|
-
|
|
|
+ public String menuPage(@RequestParam(value = "enabled") Boolean enabled, Model model) {
|
|
|
model.addAttribute("enabled", enabled);
|
|
|
return "/rbac/menu/index";
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "资源添加页面")
|
|
|
- @GetMapping({"/add", "/add/{pid}"})
|
|
|
- public String toAdd(@PathVariable(value = "pid", required = false) Integer pid, Model model) {
|
|
|
- // 父级菜单
|
|
|
- Menu pMenu = null;
|
|
|
- if (pid != null) {
|
|
|
- pMenu = menuQuery.findById(pid);
|
|
|
- }
|
|
|
-
|
|
|
+ @GetMapping(value = "/add")
|
|
|
+ public String addMenuPage(Model model) {
|
|
|
Set<Role> allRoles = new HashSet<>(roleService.getAllRoles());
|
|
|
Set<Role> menuRoles = Collections.emptySet();
|
|
|
|
|
|
model.addAttribute("allRoles", allRoles);
|
|
|
model.addAttribute("menuRoles", menuRoles);
|
|
|
- model.addAttribute("pMenu", pMenu);
|
|
|
return "/rbac/menu/add";
|
|
|
}
|
|
|
|
|
|
@@ -66,33 +57,25 @@ public class MenuPageController {
|
|
|
if (pid == 0) {
|
|
|
pMenu = new Menu(pid, "根菜单");
|
|
|
} else {
|
|
|
- pMenu = menuQuery.findById(pid);
|
|
|
+ pMenu = menuService.getById(pid);
|
|
|
}
|
|
|
|
|
|
Set<Role> allRoles = new HashSet<>(roleService.getAllRoles());
|
|
|
- //Set<Role> menuRoles = menu.getRoles();
|
|
|
Set<Role> menuRoles = Collections.emptySet();
|
|
|
|
|
|
model.addAttribute("allRoles", allRoles);
|
|
|
model.addAttribute("menuRoles", menuRoles);
|
|
|
- model.addAttribute("menu", new MenuDTO(menu));
|
|
|
+ model.addAttribute("menu", new MenuDto(menu));
|
|
|
model.addAttribute("pMenu", pMenu);
|
|
|
return "/rbac/menu/edit";
|
|
|
}
|
|
|
|
|
|
// TODO Hibernate 会根据传入的 id 自动查找相应的 Menu
|
|
|
@ApiOperation(value = "可访问资源的角色列表页面")
|
|
|
- @GetMapping("/roleList/{id}")
|
|
|
+ @GetMapping("/{id}/roles")
|
|
|
public String roleListWithResource(@PathVariable("id") Menu menu, Model model) {
|
|
|
- List<Role> list = new ArrayList<>(menu.getRoles());
|
|
|
+ List<RoleVO> list = menu.getRoles().stream().map(RoleVO::new).collect(Collectors.toList());
|
|
|
model.addAttribute("list", list);
|
|
|
return "/rbac/menu/roles";
|
|
|
}
|
|
|
-
|
|
|
- @ApiOperation(value = "资源详细信息页面")
|
|
|
- @GetMapping("/detail/{id}")
|
|
|
- public String toDetail(@PathVariable("id") Menu menu, Model model) {
|
|
|
- model.addAttribute("menu", menu);
|
|
|
- return "/rbac/menu/detail";
|
|
|
- }
|
|
|
}
|