JAVA全系列 教程
3762个小节阅读:7095.2k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
序号 | 接口名称 | 接口地址 | 请求类型 |
---|---|---|---|
1 | 查询所有菜单及权限 | /system/menu/listAllMenus | get |
2 | 根据角色ID查询已分配菜单ID | /system/menu/getMenuIdsByRoleId/{roleId} | get |
3 | 查询菜单下拉树 | /system/menu/selectMenuTree | get |
4 | 添加菜单和权限信息 | /system/menu/addMenu | post |
5 | 删除菜单和权限信息 | /system/menu/deleteMenuById/{menuId} | delete |
6 | 修改菜单和权限信息 | /system/menu/updateMenu | put |
7 | 根据ID查询菜单及权限 | /system/menu/getMenuById/{menuId} | get |
参数名称 | 是否必须 |
---|---|
pageNum | 否 |
pageSize | 否 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int | |
data | object [] | item 类型: object |
├─ menuId | number | |
├─ parentId | number | |
├─ parentIds | String | |
├─ menuName | String | |
├─ menuType | String | |
├─ percode | int | |
├─ path | String | |
├─ remark | String | |
├─ status | String | |
├─ createTime | String | |
├─ createBy | String |
system-domain工程下创建Menu类,以及值对象MenuDto
xxxxxxxxxx
package com.bjsxt.dto;
import ...
/**
* 菜单权限表
*/
value="com-bjsxt-dto-MenuDto") (
callSuper=true) (
public class MenuDto extends BaseDto {
/**
* 菜单ID
*/
value="菜单ID") (
private Long menuId;
/**
* 父菜单ID
*/
value="父菜单ID") (
private Long parentId;
/**
* 父节点ID集合
*/
value="父节点ID集合") (
private String parentIds;
/**
* 菜单名称
*/
message = "菜单名称不能为空") (
value="菜单名称") (
private String menuName;
/**
* 菜单类型(M目录 C菜单 F按钮)
*/
message = "菜单类型不能为空") (
value="菜单类型(M目录 C菜单 F按钮)") (
private String menuType;
/**
* 权限标识
*/
value="权限标识") (
private String percode;
/**
* 路由地址
*/
value="路由地址") (
private String path;
/**
* 备注
*/
value="备注") (
private String remark;
/**
* 菜单状态(0正常 1停用)
*/
message = "菜单状态不能为空") (
value="菜单状态(0正常 1停用)") (
private String status;
}
xxxxxxxxxx
package com.bjsxt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bjsxt.domain.Menu;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface MenuMapper extends BaseMapper<Menu> {
/**
* 根据菜单ID查询当前菜单的子节点的个数
*
* @param menuId
* @return
*/
Long queryChildCountByMenuId( ("menuId") Long menuId);
/**
* 根据角色ID查询所有选中的权限菜单ID【只查子节点的】
*
* @param roleId
* @return
*/
List<Long> queryMenuIdsByRoleId( ("roleId") Long roleId);
}
MenuMapper.xml
xxxxxxxxxx
<mapper namespace="com.bjsxt.mapper.MenuMapper">
<resultMap id="BaseResultMap" type="com.bjsxt.domain.Menu">
<!--@mbg.generated-->
<!--@Table sys_menu-->
<id column="menu_id" jdbcType="BIGINT" property="menuId"/>
<result column="parent_id" jdbcType="BIGINT" property="parentId"/>
<result column="parent_ids" jdbcType="VARCHAR" property="parentIds"/>
<result column="menu_name" jdbcType="VARCHAR" property="menuName"/>
<result column="menu_type" jdbcType="CHAR" property="menuType"/>
<result column="percode" jdbcType="VARCHAR" property="percode"/>
<result column="path" jdbcType="VARCHAR" property="path"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/>
<result column="status" jdbcType="CHAR" property="status"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="create_by" jdbcType="VARCHAR" property="createBy"/>
<result column="update_by" jdbcType="VARCHAR" property="updateBy"/>
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
menu_id, parent_id, parent_ids, menu_name, menu_type, percode, `path`, remark, `status`,
create_time, update_time, create_by, update_by
</sql>
<select id="queryChildCountByMenuId" resultType="java.lang.Long">
select count(1) from sys_menu where parent_id=#{menuId}
</select>
<select id="queryMenuIdsByRoleId" resultType="java.lang.Long">
select main.menu_id from sys_role_menu main where main.role_id=#{roleId}
and main.menu_id not in
(select m.parent_id from sys_menu m inner join sys_role_menu rm
on m.menu_id=rm.menu_id and rm.role_id=#{roleId})
</select>
</mapper>
xxxxxxxxxx
package com.bjsxt.service;
import ...
public interface MenuService {
/**
* 查询菜单信息
* 如查用户是超级管理员,那么查询所以菜单和权限
* 如果用户是普通用户,那么根据用户ID关联角色和权限
* @param isAdmin 是否是超级管理员
* @param simpleUser 如果isAdmin=true simpleUser可以为空
*/
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser);
}
xxxxxxxxxx
package com.bjsxt.service.impl;
import ...
public class MenuServiceImpl implements MenuService{
private MenuMapper menuMapper;
private RoleMapper roleMapper;
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.eq(Menu.COL_STATUS, Constants.STATUS_TRUE);
qw.in(Menu.COL_MENU_TYPE,Constants.MENU_TYPE_M,Constants.MENU_TYPE_C);
qw.orderByAsc(Menu.COL_PARENT_ID);
if(isAdmin){
return menuMapper.selectList(qw);
}else{
//根据用户id查询用户拥有的菜单信息
return menuMapper.selectList(qw);
}
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
"system/menu") (
public class MenuController {
private MenuService menuService;
/**
* 查询所有菜单及权限信息
*/
"listAllMenus") (
public AjaxResult listAllMenus(MenuDto menuDto){
List<Menu> list=this.menuService.listAllMenus(menuDto);
return AjaxResult.success(list);
}
}
查询所有菜单及权限 /system/menu/listAllMenus
参数名称 | 是否必须 |
---|---|
roleId | 是 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int | |
data | int[] | |
├─ | int |
xxxxxxxxxx
package com.bjsxt.service;
import com.bjsxt.domain.Menu;
import com.bjsxt.domain.SimpleUser;
import com.bjsxt.dto.MenuDto;
import java.util.List;
/**
* @Author:
*/
public interface MenuService {
/**
* 查询菜单数据
* @param menuDto
* @return
*/
List<Menu> listAllMenus(MenuDto menuDto);
/**
* 根据角色ID查询菜单权限ID数据
* @param roleId
* @return
*/
List<Long> getMenusIdsByRoleId(Long roleId);
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
"system/menu") (
public class MenuController {
private MenuService menuService;
/**
* 查询所有菜单及权限信息
*/
"listAllMenus") (
public AjaxResult listAllMenus(MenuDto menuDto){
List<Menu> list=this.menuService.listAllMenus(menuDto);
return AjaxResult.success(list);
}
/**
* 根据角色ID查询菜单权限ID数据
*/
"getMenuIdsByRoleId/{roleId}") (
public AjaxResult getMenuIdsByRoleId( Long roleId){
List<Long> ids=this.menuService.getMenusIdsByRoleId(roleId);
return AjaxResult.success(ids);
}
}
/system/menu/getMenuIdsByRoleId/{roleId},图片
无
返回JSON数据
名称 | 类型 | 是否必须 | 其他信息 |
---|---|---|---|
msg | String | 非必须 | |
code | int | 非必须 | |
data | object [] | 非必须 | item 类型: object |
├─ menuId | int | 必须 | |
├─ parentId | int | 必须 | |
├─ parentIds | String | 必须 | |
├─ menuName | String | 必须 | |
├─ menuType | string | 必须 | |
├─ percode | int | 必须 | |
├─ path | String | 必须 | |
├─ remark | String | 必须 | |
├─ status | String | 必须 | |
├─ createTime | String | 必须 | |
├─ createBy | String | 必须 |
system-domain工程下创建Menu类,以及值对象MenuDto
创建MenuMapper、MenuMapper.xml
xxxxxxxxxx
package com.bjsxt.service;
import ...
public interface MenuService {
/**
* 查询菜单信息
* 如查用户是超级管理员,那么查询所以菜单和权限
* 如果用户是普通用户,那么根据用户ID关联角色和权限
* @param isAdmin 是否是超级管理员
* @param simpleUser 如果isAdmin=true simpleUser可以为空
*/
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser);
/**
* 查询菜单数据
* @param menuDto
* @return
*/
List<Menu> listAllMenus(MenuDto menuDto);
}
xxxxxxxxxx
package com.bjsxt.service.impl;
import ...
public class MenuServiceImpl implements MenuService{
private MenuMapper menuMapper;
private RoleMapper roleMapper;
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.eq(Menu.COL_STATUS, Constants.STATUS_TRUE);
qw.in(Menu.COL_MENU_TYPE,Constants.MENU_TYPE_M,Constants.MENU_TYPE_C);
qw.orderByAsc(Menu.COL_PARENT_ID);
if(isAdmin){
return menuMapper.selectList(qw);
}else{
//根据用户id查询用户拥有的菜单信息
return menuMapper.selectList(qw);
}
}
public List<Menu> listAllMenus(MenuDto menuDto) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.like(StringUtils.isNotBlank(menuDto.getMenuName()),
Menu.COL_MENU_NAME,menuDto.getMenuName());
qw.eq(StringUtils.isNotBlank(menuDto.getStatus()),
Menu.COL_STATUS,menuDto.getStatus());
return this.menuMapper.selectList(qw);
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
"system/menu") (
public class MenuController {
private MenuService menuService;
/**
* 查询所有菜单及权限信息
*/
"listAllMenus") (
public AjaxResult listAllMenus(MenuDto menuDto){
List<Menu> list=this.menuService.listAllMenus(menuDto);
return AjaxResult.success(list);
}
/**
* 查询菜单的下拉树
*/
"selectMenuTree") (
public AjaxResult selectMenuTree(){
MenuDto menuDto=new MenuDto();
menuDto.setStatus(Constants.STATUS_TRUE);//只查询可用的
return AjaxResult.success(this.menuService.listAllMenus(menuDto));
}
}
查询菜单下拉树 /system/menu/selectMenuTree
参数名称 | 是否必须 |
---|---|
menuName | 是 |
menuType | 是 |
status | 是 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int |
system-domain工程下创建Menu类,以及值对象MenuDto
创建MenuMapper、MenuMapper.xml
xxxxxxxxxx
package com.bjsxt.service;
import ...
public interface MenuService {
/**
* 查询菜单信息
* 如查用户是超级管理员,那么查询所以菜单和权限
* 如果用户是普通用户,那么根据用户ID关联角色和权限
* @param isAdmin 是否是超级管理员
* @param simpleUser 如果isAdmin=true simpleUser可以为空
*/
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser);
/**
* 查询菜单数据
* @param menuDto
* @return
*/
List<Menu> listAllMenus(MenuDto menuDto);
/**
* 添加菜单
* @param menuDto
* @return
*/
int addMenu(MenuDto menuDto);
}
xxxxxxxxxx
package com.bjsxt.service.impl;
import ...
public class MenuServiceImpl implements MenuService{
private MenuMapper menuMapper;
private RoleMapper roleMapper;
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.eq(Menu.COL_STATUS, Constants.STATUS_TRUE);
qw.in(Menu.COL_MENU_TYPE,Constants.MENU_TYPE_M,Constants.MENU_TYPE_C);
qw.orderByAsc(Menu.COL_PARENT_ID);
if(isAdmin){
return menuMapper.selectList(qw);
}else{
//根据用户id查询用户拥有的菜单信息
return menuMapper.selectList(qw);
}
}
public List<Menu> listAllMenus(MenuDto menuDto) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.like(StringUtils.isNotBlank(menuDto.getMenuName()),
Menu.COL_MENU_NAME,menuDto.getMenuName());
qw.eq(StringUtils.isNotBlank(menuDto.getStatus()),
Menu.COL_STATUS,menuDto.getStatus());
return this.menuMapper.selectList(qw);
}
public int addMenu(MenuDto menuDto) {
Menu menu=new Menu();
BeanUtil.copyProperties(menuDto,menu);
//设置创建人和创建时间
menu.setCreateTime(DateUtil.date());
menu.setCreateBy(menuDto.getSimpleUser().getUserName());
return this.menuMapper.insert(menu);
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
"system/menu") (
public class MenuController {
private MenuService menuService;
/**
* 查询所有菜单及权限信息
*/
"listAllMenus") (
public AjaxResult listAllMenus(MenuDto menuDto){
List<Menu> list=this.menuService.listAllMenus(menuDto);
return AjaxResult.success(list);
}
/**
* 查询菜单的下拉树
*/
"selectMenuTree") (
public AjaxResult selectMenuTree(){
MenuDto menuDto=new MenuDto();
menuDto.setStatus(Constants.STATUS_TRUE);//只查询可用的
return AjaxResult.success(this.menuService.listAllMenus(menuDto));
}
/**
* 添加菜单
*/
"addMenu") (
public AjaxResult addMenu( MenuDto menuDto){
menuDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.menuService.addMenu(menuDto));
}
}
添加菜单 /system/menu/addMenu
参数名称 | 是否必须 |
---|---|
menuId | 是 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int |
system-domain工程下创建Menu类,以及值对象MenuDto
创建MenuMapper、MenuMapper.xml
xxxxxxxxxx
package com.bjsxt.service;
import ...
public interface MenuService {
/**
* 查询菜单信息
* 如查用户是超级管理员,那么查询所以菜单和权限
* 如果用户是普通用户,那么根据用户ID关联角色和权限
* @param isAdmin 是否是超级管理员
* @param simpleUser 如果isAdmin=true simpleUser可以为空
*/
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser);
/**
* 查询菜单数据
* @param menuDto
* @return
*/
List<Menu> listAllMenus(MenuDto menuDto);
/**
* 添加菜单
* @param menuDto
* @return
*/
int addMenu(MenuDto menuDto);
/**
* 根据菜单ID删除菜单
* @param menuId
* @return
*/
int deleteMenuById(Long menuId);
}
xxxxxxxxxx
package com.bjsxt.service.impl;
import ...
public class MenuServiceImpl implements MenuService{
private MenuMapper menuMapper;
private RoleMapper roleMapper;
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.eq(Menu.COL_STATUS, Constants.STATUS_TRUE);
qw.in(Menu.COL_MENU_TYPE,Constants.MENU_TYPE_M,Constants.MENU_TYPE_C);
qw.orderByAsc(Menu.COL_PARENT_ID);
if(isAdmin){
return menuMapper.selectList(qw);
}else{
//根据用户id查询用户拥有的菜单信息
return menuMapper.selectList(qw);
}
}
public List<Menu> listAllMenus(MenuDto menuDto) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.like(StringUtils.isNotBlank(menuDto.getMenuName()),
Menu.COL_MENU_NAME,menuDto.getMenuName());
qw.eq(StringUtils.isNotBlank(menuDto.getStatus()),
Menu.COL_STATUS,menuDto.getStatus());
return this.menuMapper.selectList(qw);
}
public int addMenu(MenuDto menuDto) {
Menu menu=new Menu();
BeanUtil.copyProperties(menuDto,menu);
//设置创建人和创建时间
menu.setCreateTime(DateUtil.date());
menu.setCreateBy(menuDto.getSimpleUser().getUserName());
return this.menuMapper.insert(menu);
}
public int deleteMenuById(Long menuId) {
//删除sys_role_menu中间表的数据[后面完成]
this.roleMapper.deleteRoleMenuByMenuIds(Arrays.asList(menuId));
return this.menuMapper.deleteById(menuId);
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
"system/menu") (
public class MenuController {
private MenuService menuService;
/**
* 查询所有菜单及权限信息
*/
"listAllMenus") (
public AjaxResult listAllMenus(MenuDto menuDto){
List<Menu> list=this.menuService.listAllMenus(menuDto);
return AjaxResult.success(list);
}
/**
* 查询菜单的下拉树
*/
"selectMenuTree") (
public AjaxResult selectMenuTree(){
MenuDto menuDto=new MenuDto();
menuDto.setStatus(Constants.STATUS_TRUE);//只查询可用的
return AjaxResult.success(this.menuService.listAllMenus(menuDto));
}
/**
* 添加菜单
*/
"addMenu") (
public AjaxResult addMenu( MenuDto menuDto){
menuDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.menuService.addMenu(menuDto));
}
/**
* 根据菜单ID删除
*/
"deleteMenuById/{menuId}") (
public AjaxResult deleteMenuById( Long menuId){
//删除之前要判断当前菜单有没有子节点
if(this.menuService.hasChildByMenuId(menuId)){
return AjaxResult.fail("当前要删除的菜单有子节点,请先删除子节点");
}
return AjaxResult.toAjax(this.menuService.deleteMenuById(menuId));
}
}
删除菜单 /system/menu/deleteMenuById/{menuId}
参数名称 | 是否必须 |
---|---|
menuId | 是 |
menuName | 是 |
menuType | 是 |
parentId | 是 |
path | 是 |
percode | 是 |
remark | 否 |
status | 是 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int |
xxxxxxxxxx
package com.bjsxt.service;
import ...
public interface MenuService {
/**
* 查询菜单信息
* 如查用户是超级管理员,那么查询所以菜单和权限
* 如果用户是普通用户,那么根据用户ID关联角色和权限
* @param isAdmin 是否是超级管理员
* @param simpleUser 如果isAdmin=true simpleUser可以为空
*/
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser);
/**
* 查询菜单数据
* @param menuDto
* @return
*/
List<Menu> listAllMenus(MenuDto menuDto);
/**
* 添加菜单
* @param menuDto
* @return
*/
int addMenu(MenuDto menuDto);
/**
* 修改菜单
* @param menuDto
* @return
*/
int updateMenu(MenuDto menuDto);
/**
* 根据菜单ID删除菜单
* @param menuId
* @return
*/
int deleteMenuById(Long menuId);
}
xxxxxxxxxx
package com.bjsxt.service.impl;
import ...
public class MenuServiceImpl implements MenuService{
private MenuMapper menuMapper;
private RoleMapper roleMapper;
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.eq(Menu.COL_STATUS, Constants.STATUS_TRUE);
qw.in(Menu.COL_MENU_TYPE,Constants.MENU_TYPE_M,Constants.MENU_TYPE_C);
qw.orderByAsc(Menu.COL_PARENT_ID);
if(isAdmin){
return menuMapper.selectList(qw);
}else{
//根据用户id查询用户拥有的菜单信息
return menuMapper.selectList(qw);
}
}
public List<Menu> listAllMenus(MenuDto menuDto) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.like(StringUtils.isNotBlank(menuDto.getMenuName()),
Menu.COL_MENU_NAME,menuDto.getMenuName());
qw.eq(StringUtils.isNotBlank(menuDto.getStatus()),
Menu.COL_STATUS,menuDto.getStatus());
return this.menuMapper.selectList(qw);
}
public int addMenu(MenuDto menuDto) {
Menu menu=new Menu();
BeanUtil.copyProperties(menuDto,menu);
//设置创建人和创建时间
menu.setCreateTime(DateUtil.date());
menu.setCreateBy(menuDto.getSimpleUser().getUserName());
return this.menuMapper.insert(menu);
}
public int updateMenu(MenuDto menuDto) {
Menu menu=new Menu();
BeanUtil.copyProperties(menuDto,menu);
//设置修改人
menu.setUpdateBy(menuDto.getSimpleUser().getUserName());
return this.menuMapper.updateById(menu);
}
public int deleteMenuById(Long menuId) {
//删除sys_role_menu中间表的数据[后面完成]
this.roleMapper.deleteRoleMenuByMenuIds(Arrays.asList(menuId));
return this.menuMapper.deleteById(menuId);
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
"system/menu") (
public class MenuController {
private MenuService menuService;
/**
* 查询所有菜单及权限信息
*/
"listAllMenus") (
public AjaxResult listAllMenus(MenuDto menuDto){
List<Menu> list=this.menuService.listAllMenus(menuDto);
return AjaxResult.success(list);
}
/**
* 查询菜单的下拉树
*/
"selectMenuTree") (
public AjaxResult selectMenuTree(){
MenuDto menuDto=new MenuDto();
menuDto.setStatus(Constants.STATUS_TRUE);//只查询可用的
return AjaxResult.success(this.menuService.listAllMenus(menuDto));
}
/**
* 添加菜单
*/
"addMenu") (
public AjaxResult addMenu( MenuDto menuDto){
menuDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.menuService.addMenu(menuDto));
}
/**
* 修改菜单
*/
"updateMenu") (
public AjaxResult updateMenu( MenuDto menuDto){
menuDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.menuService.updateMenu(menuDto));
}
/**
* 根据菜单ID删除
*/
"deleteMenuById/{menuId}") (
public AjaxResult deleteMenuById( Long menuId){
//删除之前要判断当前菜单有没有子节点
if(this.menuService.hasChildByMenuId(menuId)){
return AjaxResult.fail("当前要删除的菜单有子节点,请先删除子节点");
}
return AjaxResult.toAjax(this.menuService.deleteMenuById(menuId));
}
}
/system/menu/updateMenu,图片
参数名称 | 是否必须 |
---|---|
menuId | 是 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int | |
data | object | |
├─ menuId | int | |
├─ parentId | int | |
├─ parentIds | String | |
├─ menuName | String | |
├─ menuType | string | |
├─ percode | String | |
├─ path | String | |
├─ remark | String | |
├─ status | String | |
├─ createTime | String | |
├─ createBy | String |
system-domain工程下创建Menu类,以及值对象MenuDto
创建MenuMapper、MenuMapper.xml
xxxxxxxxxx
package com.bjsxt.service;
import ...
public interface MenuService {
/**
* 查询菜单信息
* 如查用户是超级管理员,那么查询所以菜单和权限
* 如果用户是普通用户,那么根据用户ID关联角色和权限
* @param isAdmin 是否是超级管理员
* @param simpleUser 如果isAdmin=true simpleUser可以为空
*/
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser);
/**
* 查询菜单数据
* @param menuDto
* @return
*/
List<Menu> listAllMenus(MenuDto menuDto);
/**
* 添加菜单
* @param menuDto
* @return
*/
int addMenu(MenuDto menuDto);
/**
* 根据菜单ID删除菜单
* @param menuId
* @return
*/
int deleteMenuById(Long menuId);
/**
* 根据菜单ID查询一个
* @param menuId
* @return
*/
Menu getOne(Long menuId);
}
xxxxxxxxxx
package com.bjsxt.service.impl;
import ...
public class MenuServiceImpl implements MenuService{
private MenuMapper menuMapper;
private RoleMapper roleMapper;
public List<Menu> selectMenuTree(boolean isAdmin, SimpleUser simpleUser) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.eq(Menu.COL_STATUS, Constants.STATUS_TRUE);
qw.in(Menu.COL_MENU_TYPE,Constants.MENU_TYPE_M,Constants.MENU_TYPE_C);
qw.orderByAsc(Menu.COL_PARENT_ID);
if(isAdmin){
return menuMapper.selectList(qw);
}else{
//根据用户id查询用户拥有的菜单信息
return menuMapper.selectList(qw);
}
}
public List<Menu> listAllMenus(MenuDto menuDto) {
QueryWrapper<Menu> qw=new QueryWrapper<>();
qw.like(StringUtils.isNotBlank(menuDto.getMenuName()),
Menu.COL_MENU_NAME,menuDto.getMenuName());
qw.eq(StringUtils.isNotBlank(menuDto.getStatus()),
Menu.COL_STATUS,menuDto.getStatus());
return this.menuMapper.selectList(qw);
}
public int addMenu(MenuDto menuDto) {
Menu menu=new Menu();
BeanUtil.copyProperties(menuDto,menu);
//设置创建人和创建时间
menu.setCreateTime(DateUtil.date());
menu.setCreateBy(menuDto.getSimpleUser().getUserName());
return this.menuMapper.insert(menu);
}
public int deleteMenuById(Long menuId) {
//删除sys_role_menu中间表的数据[后面完成]
this.roleMapper.deleteRoleMenuByMenuIds(Arrays.asList(menuId));
return this.menuMapper.deleteById(menuId);
}
public Menu getOne(Long menuId) {
return this.menuMapper.selectById(menuId);
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
"system/menu") (
public class MenuController {
private MenuService menuService;
/**
* 查询所有菜单及权限信息
*/
"listAllMenus") (
public AjaxResult listAllMenus(MenuDto menuDto){
List<Menu> list=this.menuService.listAllMenus(menuDto);
return AjaxResult.success(list);
}
/**
* 查询菜单的下拉树
*/
"selectMenuTree") (
public AjaxResult selectMenuTree(){
MenuDto menuDto=new MenuDto();
menuDto.setStatus(Constants.STATUS_TRUE);//只查询可用的
return AjaxResult.success(this.menuService.listAllMenus(menuDto));
}
/**
* 添加菜单
*/
"addMenu") (
public AjaxResult addMenu( MenuDto menuDto){
menuDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.menuService.addMenu(menuDto));
}
/**
* 根据菜单ID删除
*/
"deleteMenuById/{menuId}") (
public AjaxResult deleteMenuById( Long menuId){
//删除之前要判断当前菜单有没有子节点
if(this.menuService.hasChildByMenuId(menuId)){
return AjaxResult.fail("当前要删除的菜单有子节点,请先删除子节点");
}
return AjaxResult.toAjax(this.menuService.deleteMenuById(menuId));
}
/**
* 根据菜单ID查询一个
*/
"getMenuById/{menuId}") (
public AjaxResult getMenuById( Long menuId){
Menu menu=this.menuService.getOne(menuId);
return AjaxResult.success(menu);
}
}
根据ID查询菜单及权限 /system/menu/getMenuById/{menuId}