diff --git a/common/common-util/pom.xml b/common/common-util/pom.xml index 998d960..9d7061a 100644 --- a/common/common-util/pom.xml +++ b/common/common-util/pom.xml @@ -34,5 +34,11 @@ com.alibaba fastjson + + com.atguigu + model + 1.0-SNAPSHOT + compile + diff --git a/common/common-util/src/main/java/com/atguigu/common/utlis/MenuHelper.java b/common/common-util/src/main/java/com/atguigu/common/utlis/MenuHelper.java new file mode 100644 index 0000000..dcd49de --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/common/utlis/MenuHelper.java @@ -0,0 +1,44 @@ +package com.atguigu.common.utlis; + +import com.atguigu.model.system.SysMenu; + +import java.util.ArrayList; +import java.util.List; + +public class MenuHelper { + /** + * 构建树型结构 + * + * @param sysMenuList 系统菜单列表 + * @return 菜单结构列表 + */ + public static List buildTree(List sysMenuList) { + ArrayList tress = new ArrayList<>(); + // 把菜单数据进行遍历 + sysMenuList.forEach(sysMenu -> { + if (sysMenu.getParentId() == 0) tress.add(getChildren(sysMenu, sysMenuList)); + }); + return tress; + } + + /** + * 构建递归循环 + * + * @param sysMenu 当前菜单对象 + * @param sysMenuList 全部菜单列表 + * @return 菜单 + */ + private static SysMenu getChildren(SysMenu sysMenu, List sysMenuList) { + // 遍历所有菜单数据,判断id和parentID对应关系 + sysMenu.setChildren(new ArrayList<>()); + + sysMenuList.forEach(menu -> { + if (menu.getChildren() == null) menu.setChildren(new ArrayList<>()); + if (sysMenu.getId().equals(menu.getParentId())) { + sysMenu.getChildren().add(getChildren(menu, sysMenuList)); + } + }); + + return sysMenu; + } +} diff --git a/common/service-util/src/main/java/com/atguigu/CodeGet.java b/common/service-util/src/main/java/com/atguigu/CodeGet.java index ac05953..c4cbcc8 100644 --- a/common/service-util/src/main/java/com/atguigu/CodeGet.java +++ b/common/service-util/src/main/java/com/atguigu/CodeGet.java @@ -55,7 +55,7 @@ public class CodeGet { private static StrategyConfig getStrategyConfig() { StrategyConfig strategy = new StrategyConfig(); // TODO 要生成的表 - strategy.setInclude("sys_user", "sys_role","sys_user_role"); + strategy.setInclude("sys_menu", "sys_role_menu"); strategy.setNaming(NamingStrategy.underline_to_camel);// 数据库表映射到实体的命名策略 strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 数据库表字段映射到实体的命名策略 strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作 diff --git a/common/service-util/target/classes/com/atguigu/CodeGet.class b/common/service-util/target/classes/com/atguigu/CodeGet.class index 49d78bb..ab67a02 100644 Binary files a/common/service-util/target/classes/com/atguigu/CodeGet.class and b/common/service-util/target/classes/com/atguigu/CodeGet.class differ diff --git a/service-oa/src/main/java/com/atguigu/auth/controller/SysMenuController.java b/service-oa/src/main/java/com/atguigu/auth/controller/SysMenuController.java new file mode 100644 index 0000000..cab54fd --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/controller/SysMenuController.java @@ -0,0 +1,57 @@ +package com.atguigu.auth.controller; + + +import com.atguigu.auth.service.SysMenuService; +import com.atguigu.common.result.Result; +import com.atguigu.model.system.SysMenu; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + *

+ * 菜单表 前端控制器 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +@Tag(name = "菜单管理") +@RestController +@RequestMapping("/admin/system/sysMenu") +public class SysMenuController { + @Autowired + private SysMenuService sysMenuService; + + @ApiOperation(value = "获取菜单") + @GetMapping("findNodes") + public Result> findNodes() { + List list = sysMenuService.findNodes(); + return Result.success(list); + } + + @ApiOperation(value = "新增菜单") + @PostMapping("save") + public Result save(@RequestBody SysMenu permission) { + sysMenuService.save(permission); + return Result.success(); + } + + @ApiOperation(value = "修改菜单") + @PutMapping("update") + public Result updateById(@RequestBody SysMenu permission) { + sysMenuService.updateById(permission); + return Result.success(); + } + + @ApiOperation(value = "删除菜单") + @DeleteMapping("remove/{id}") + public Result remove(@PathVariable Long id) { + sysMenuService.removeById(id); + return Result.success(); + } +} + diff --git a/service-oa/src/main/java/com/atguigu/auth/controller/SysRoleMenuController.java b/service-oa/src/main/java/com/atguigu/auth/controller/SysRoleMenuController.java new file mode 100644 index 0000000..90f9602 --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/controller/SysRoleMenuController.java @@ -0,0 +1,21 @@ +package com.atguigu.auth.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 角色菜单 前端控制器 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +@RestController +@RequestMapping("/auth/sys-role-menu") +public class SysRoleMenuController { + +} + diff --git a/service-oa/src/main/java/com/atguigu/auth/mapper/SysMenuMapper.java b/service-oa/src/main/java/com/atguigu/auth/mapper/SysMenuMapper.java new file mode 100644 index 0000000..86a3a4e --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/mapper/SysMenuMapper.java @@ -0,0 +1,16 @@ +package com.atguigu.auth.mapper; + +import com.atguigu.model.system.SysMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 菜单表 Mapper 接口 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +public interface SysMenuMapper extends BaseMapper { + +} diff --git a/service-oa/src/main/java/com/atguigu/auth/mapper/SysRoleMenuMapper.java b/service-oa/src/main/java/com/atguigu/auth/mapper/SysRoleMenuMapper.java new file mode 100644 index 0000000..2dfbe6c --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/mapper/SysRoleMenuMapper.java @@ -0,0 +1,16 @@ +package com.atguigu.auth.mapper; + +import com.atguigu.model.system.SysRoleMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 角色菜单 Mapper 接口 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +public interface SysRoleMenuMapper extends BaseMapper { + +} diff --git a/service-oa/src/main/java/com/atguigu/auth/service/SysMenuService.java b/service-oa/src/main/java/com/atguigu/auth/service/SysMenuService.java new file mode 100644 index 0000000..b7ded3b --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/service/SysMenuService.java @@ -0,0 +1,24 @@ +package com.atguigu.auth.service; + +import com.atguigu.model.system.SysMenu; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 菜单表 服务类 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +public interface SysMenuService extends IService { + + /** + * 获取菜单 + * + * @return 菜单列表 + */ + List findNodes(); +} diff --git a/service-oa/src/main/java/com/atguigu/auth/service/SysRoleMenuService.java b/service-oa/src/main/java/com/atguigu/auth/service/SysRoleMenuService.java new file mode 100644 index 0000000..46c1204 --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/service/SysRoleMenuService.java @@ -0,0 +1,16 @@ +package com.atguigu.auth.service; + +import com.atguigu.model.system.SysRoleMenu; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 角色菜单 服务类 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +public interface SysRoleMenuService extends IService { + +} diff --git a/service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java b/service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java new file mode 100644 index 0000000..3eeacce --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java @@ -0,0 +1,32 @@ +package com.atguigu.auth.service.impl; + +import com.atguigu.auth.mapper.SysMenuMapper; +import com.atguigu.auth.service.SysMenuService; +import com.atguigu.common.utlis.MenuHelper; +import com.atguigu.model.system.SysMenu; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 菜单表 服务实现类 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +@Service +public class SysMenuServiceImpl extends ServiceImpl implements SysMenuService { + + /** + * 获取菜单 + * + * @return 菜单列表 + */ + @Override + public List findNodes() { + return MenuHelper.buildTree(list()); + } +} diff --git a/service-oa/src/main/java/com/atguigu/auth/service/impl/SysRoleMenuServiceImpl.java b/service-oa/src/main/java/com/atguigu/auth/service/impl/SysRoleMenuServiceImpl.java new file mode 100644 index 0000000..a53fda7 --- /dev/null +++ b/service-oa/src/main/java/com/atguigu/auth/service/impl/SysRoleMenuServiceImpl.java @@ -0,0 +1,20 @@ +package com.atguigu.auth.service.impl; + +import com.atguigu.auth.mapper.SysRoleMenuMapper; +import com.atguigu.auth.service.SysRoleMenuService; +import com.atguigu.model.system.SysRoleMenu; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 角色菜单 服务实现类 + *

+ * + * @author bunny + * @since 2024-04-23 + */ +@Service +public class SysRoleMenuServiceImpl extends ServiceImpl implements SysRoleMenuService { + +} diff --git a/service-oa/src/main/resources/mapper/SysMenuMapper.xml b/service-oa/src/main/resources/mapper/SysMenuMapper.xml new file mode 100644 index 0000000..31098d7 --- /dev/null +++ b/service-oa/src/main/resources/mapper/SysMenuMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/service-oa/src/main/resources/mapper/SysRoleMenuMapper.xml b/service-oa/src/main/resources/mapper/SysRoleMenuMapper.xml new file mode 100644 index 0000000..a1d08db --- /dev/null +++ b/service-oa/src/main/resources/mapper/SysRoleMenuMapper.xml @@ -0,0 +1,5 @@ + + + + +