@Controller
@RequestMapping("/role")
public class RoleController {
@Resource
private RoleService roleService;
// 查询角色列表
@RequestMapping("/query")
public String queryUserList(Model model, RolePO roleQuery) {
List<RolePO> roleList = roleService.selectRoles(roleQuery);
model.addAttribute("roleList", roleList);
// 保持条件
model.addAttribute("query", roleQuery);
return "Role/index";
}
// 跳转到添加页面
@GetMapping("/add")
public String toAdd(Model model) {
return "Role/add";
}
// 添加角色
@PostMapping("/add")
public String addUser(Model model, RolePO rolePO) {
roleService.insert(rolePO);
return "redirect:/role/query";
}
// 跳转到编辑页面
@GetMapping("/edit")
public String toEdit(Model model, Integer roleId) {
// 查询用户对应基础数据
RolePO editRole = roleService.selectByPrimaryKey(roleId);
model.addAttribute("editRole", editRole);
return "Role/edit";
}
// 修改角色
// 使用Dto对象来传递参数
@PostMapping("/edit")
public String editUser(Model model, RolePO rolePO) {
roleService.updateByPrimaryKey(rolePO);
return "redirect:/role/query";
}
@Resource
private MenuService menuService;
// 跳转到分配菜单权限的页面
@GetMapping("/assignMenu")
public String toAssignMenuPage(Model model,Integer roleId) {
// 查找到所有的菜单权限列表
List<MenuPO> menuList = menuService.queryMenusByRoleId(roleId);
model.addAttribute("menuList", menuList);
// 查询角色数据
RolePO role = roleService.selectByPrimaryKey(roleId);
model.addAttribute("role", role);
return "Role/assign";
}
/**
* 分配菜单
* @param model
* @param roleId - 分配菜单权限角色id
* @param checkMenuIds - 分配的权限id
* @return
*/
@PostMapping("/assignMenu")
public String assignMenu(Model model,Integer roleId,Integer[] checkMenuIds) {
roleService.assign(roleId,checkMenuIds);
return "redirect:/role/query";
}
/**
* 删除角色
* @param model
* @param roleId
* @return
*/
@PostMapping("/delete")
@ResponseBody
public ResponseData deleteRole(Model model,Integer roleId) {
// 判断角色是否有被用户使用
// 获取角色使用过用户数量
Integer userCount = roleService.getUserCountUseRole(roleId);
System.out.println("userCount========"+userCount);
// 如果没有使用采取删除角色和角色相关信息
if (userCount == 0) {
// 删除角色和角色相关信息
roleService.deleteRoleInfo(roleId);
return ResponseData.success();
}
else {
// 响应给用户这个角色正在被人使用
return ResponseData.fail(2, "用户使用了此角色");
}
}
}