From 8f20d4c82fefec185f88bd0940c9152c9620964d Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Tue, 23 Apr 2024 20:03:04 +0800 Subject: [PATCH] =?UTF-8?q?:rocket:=20=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/common-util/pom.xml | 6 ++ .../com/atguigu/common/utlis/MenuHelper.java | 44 ++++++++++++++ .../src/main/java/com/atguigu/CodeGet.java | 2 +- .../target/classes/com/atguigu/CodeGet.class | Bin 4104 -> 4085 bytes .../auth/controller/SysMenuController.java | 57 ++++++++++++++++++ .../controller/SysRoleMenuController.java | 21 +++++++ .../atguigu/auth/mapper/SysMenuMapper.java | 16 +++++ .../auth/mapper/SysRoleMenuMapper.java | 16 +++++ .../atguigu/auth/service/SysMenuService.java | 24 ++++++++ .../auth/service/SysRoleMenuService.java | 16 +++++ .../auth/service/impl/SysMenuServiceImpl.java | 32 ++++++++++ .../service/impl/SysRoleMenuServiceImpl.java | 20 ++++++ .../main/resources/mapper/SysMenuMapper.xml | 5 ++ .../resources/mapper/SysRoleMenuMapper.xml | 5 ++ 14 files changed, 263 insertions(+), 1 deletion(-) create mode 100644 common/common-util/src/main/java/com/atguigu/common/utlis/MenuHelper.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/controller/SysMenuController.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/controller/SysRoleMenuController.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/mapper/SysMenuMapper.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/mapper/SysRoleMenuMapper.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/service/SysMenuService.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/service/SysRoleMenuService.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/service/impl/SysMenuServiceImpl.java create mode 100644 service-oa/src/main/java/com/atguigu/auth/service/impl/SysRoleMenuServiceImpl.java create mode 100644 service-oa/src/main/resources/mapper/SysMenuMapper.xml create mode 100644 service-oa/src/main/resources/mapper/SysRoleMenuMapper.xml 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 49d78bb04570ccadaddb8df0d809d7ea02c242be..ab67a02ed7f433b4000b54af541dfb4719ec6fbd 100644 GIT binary patch delta 902 zcmXw1*-{fx5Ir}`%*}YAC?2I;3d)zD5D*PJ?i(&>#26P4FiIpOm`PCFA}RuI7)M+| zabHoEs!*kcA7J_7ANU78`KV=gD5h%8>Ausa=XBQ{So&v4^83Fp-vE?h+CVvcI`$f{ zF*h1;z$dYf*)Or5IUsR>`5?m~t~{)x$v`$&HZvcQXkl)ZXk$Jq5oA8*!f~{76k^#4 z9UTVpkR)B0gHDMEb5x>>`J_aQ*_4PgCs@^Oz>8BHoo49KamGL)yFDv$PU1Xg7hFi< zB1gRpml!THTw&kpIU+SOV6@~?cGHK7!+_VGkw8W zcc?9>aE%X~t%*paN8vgK6>i|B!YvF5RFc$fRmdF6boASABW3+{EGoN$lz<}^jm8x$ zj-{uxq?BKUyGZF6R=9`z3J>s5;SnASc&%Q;YxOyE8b>fn;+90bUEvAGMq4xzk43}b zU`*jDpXlbiw=qt&&X%q&{`d@|3eWLEVHX+{UgDL)Yo4$?WAleC+sfA#R(1v>34tuL z$84sy!Dh}C-r%i{cM9+ELE$6D6+SV1#)QHo!xSc_d$q-SgO~0LKXwSv0tu@qD<&4i zPWKGNBn3896Ka{m1*oA|%@v>)b(FcV25YIR%KDu(E2^#W?2aT?)shC}U>(*IOB!PX zHj*+2BiMw^q^N+2E!av1!qj6M>gi67QTOfG0Vj5n$|*<=7`zCQvcEq1#Qy5OqA)On z<@IjoELH^UxkbK!Be&R>hQ}XvPoX4@QvV#U^t&Btlx1*L23Pyt6VzjFw0trL+J&SY h0CMKpRORZ3#pdz^8f)=fHtEE<`l(uwQ6t}vAprVeu zBDjkyi*& zXK{|B^9&alE;3wV=u^?J;<5s(Co=ITm}ja%tr0Mdl@4G~fo+NI4JUgdp|HdiPFUK~ zu~@IfRSZg8!;r*v+)z+sD5AzlnEOmOVHm&73thKhC@?4E@sz}Ejzzh%!pX119T+O^ zO5DSJi3fNn@d(2Ts;G&>7}g5H3i3nouF_ztJsoLJOFYI1H4COw9TKA)YoT~7m5fKD z;iSY9&ZzpF&!>E}b_Ej&{`d?d63_8Mq6OO}UgDL+Yt$-m8$UI-QDmLplqMhfZb0 z3bDm84P}CYJk$|dbIE+vQ!Hl-unMc`WWyRXP?g8{Q81&_86$y?(R3% + * 菜单表 前端控制器 + *

+ * + * @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 @@ + + + + +