screen-manage/src/main/java/com/moral/api/controller/GroupController.java
New file @@ -0,0 +1,43 @@ package com.moral.api.controller; import com.moral.api.pojo.dto.group.GroupDTO; import com.moral.api.pojo.form.group.AdminGroupUpdateMenuForm; import com.moral.api.service.GroupService; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * @ClassName GroupController * @Description TODO * @Author 陈凯裕 * @Date 2021/5/13 15:29 * @Version TODO **/ @Slf4j @Api(tags = {"前台角色管理"}) @RestController @CrossOrigin(origins = "*", maxAge = 3600) @RequestMapping("/group") public class GroupController { @Autowired GroupService groupService; @PostMapping("updateAdminGroupMenu") public ResultMessage updateMenu(@RequestBody AdminGroupUpdateMenuForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理分配业务 GroupDTO dto = groupService.updateAdminGroupMenu(form); return new ResultMessage(dto.getCode(), dto.getMsg(), null); } } screen-manage/src/main/java/com/moral/api/controller/GroupMenuController.java
@@ -1,16 +1,8 @@ package com.moral.api.controller; import com.moral.api.pojo.dto.groupMenu.GroupMenuDTO; import com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO; import com.moral.api.pojo.form.groupMenu.GroupMenuQueryForm; import com.moral.api.pojo.form.groupMenu.GroupMenuUpdateForm; import com.moral.api.pojo.vo.groupMenu.GroupMenuQueryVO; import com.moral.api.service.GroupMenuService; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** @@ -26,40 +18,5 @@ @CrossOrigin(origins = "*", maxAge = 3600) @RequestMapping("/groupMenu") public class GroupMenuController { @Autowired GroupMenuService groupMenuService; @PostMapping("update") public ResultMessage update(@RequestBody GroupMenuUpdateForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理分配业务 GroupMenuDTO dto = groupMenuService.updateGroupMenu(form); return new ResultMessage(dto.getCode(), dto.getMsg(), null); } @GetMapping("query") public ResultMessage query(GroupMenuQueryForm form){ //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理查询业务 GroupMenuQueryDTO dto = groupMenuService.queryGroupMenu(form); //转换前端所需参数 GroupMenuQueryVO vo = GroupMenuQueryVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } } screen-manage/src/main/java/com/moral/api/controller/MenuController.java
@@ -14,6 +14,7 @@ import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; /** @@ -35,8 +36,21 @@ @GetMapping("query") public ResultMessage query() { //查询组织admin角色的所有菜单,非父子结构 MenuQueryDTO dto = menuService.queryAllMenus(); //转换为前端所需参数 MenuQueryVO vo = MenuQueryVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @GetMapping("queryAdmin") public ResultMessage queryAdmin(@RequestParam Integer organizationId) { //执行查询业务 MenuQueryDTO dto = menuService.queryAllMenu(); MenuQueryDTO dto = menuService.queryAdminGroupMenusByOrganizationId(organizationId); //转换为前端所需参数 MenuQueryVO vo = MenuQueryVO.convert(dto); @@ -45,7 +59,7 @@ } @GetMapping("queryNames") public ResultMessage queryNames(MenuQueryNamesForm form){ public ResultMessage queryNames(MenuQueryNamesForm form) { //处理查询业务 MenuQueryNamesDTO dto = menuService.queryNames(form); @@ -72,7 +86,7 @@ } @PostMapping("delete") public ResultMessage delete(@RequestBody MenuDeleteForm form){ public ResultMessage delete(@RequestBody MenuDeleteForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -88,7 +102,7 @@ } @PostMapping("update") public ResultMessage update(@RequestBody MenuUpdateForm form){ public ResultMessage update(@RequestBody MenuUpdateForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), screen-manage/src/main/java/com/moral/api/mapper/MenuMapper.java
@@ -3,6 +3,8 @@ import com.moral.api.entity.Menu; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; /** * <p> * 前台菜单 Mapper 接口 @@ -12,5 +14,5 @@ * @since 2021-03-09 */ public interface MenuMapper extends BaseMapper<Menu> { List<Menu> getMenusByGroupId(Integer groupId); } screen-manage/src/main/java/com/moral/api/pojo/dto/group/GroupDTO.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuDTO.java @@ -1,5 +1,6 @@ package com.moral.api.pojo.dto.groupMenu; package com.moral.api.pojo.dto.group; import com.moral.api.entity.Group; import com.moral.api.entity.GroupMenu; import lombok.Data; @@ -11,11 +12,12 @@ * @Version TODO **/ @Data public class GroupMenuDTO { public class GroupDTO { private Integer code; private String msg; private GroupMenu groupMenu; private Group group; } screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuQueryDTO.java
File was deleted screen-manage/src/main/java/com/moral/api/pojo/form/group/AdminGroupUpdateMenuForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java @@ -1,4 +1,4 @@ package com.moral.api.pojo.form.groupMenu; package com.moral.api.pojo.form.group; import lombok.Data; import org.springframework.util.ObjectUtils; @@ -7,13 +7,13 @@ /** * @ClassName GroupUpdateForm * @Description TODO * @Description 用于接收更新admin角色菜单参数 * @Author 陈凯裕 * @Date 2021/5/11 10:25 * @Version TODO **/ @Data public class GroupMenuUpdateForm { public class AdminGroupUpdateMenuForm { private Integer organizationId; screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuQueryForm.java
File was deleted screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java
File was deleted screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java
File was deleted screen-manage/src/main/java/com/moral/api/service/GroupMenuService.java
@@ -2,10 +2,6 @@ import com.moral.api.entity.GroupMenu; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.dto.groupMenu.GroupMenuDTO; import com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO; import com.moral.api.pojo.form.groupMenu.GroupMenuQueryForm; import com.moral.api.pojo.form.groupMenu.GroupMenuUpdateForm; /** * <p> @@ -17,22 +13,6 @@ */ public interface GroupMenuService extends IService<GroupMenu> { /** * @Description: 给组织admin角色分配前台菜单 * @Param: [GroupMenuUpdateForm form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/5/11 */ GroupMenuDTO updateGroupMenu(GroupMenuUpdateForm form); /** * @Description: 查询组织admin角色的所有菜单 * @Param: [form] * @return: com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO * @Author: 陈凯裕 * @Date: 2021/5/11 */ GroupMenuQueryDTO queryGroupMenu(GroupMenuQueryForm form); } screen-manage/src/main/java/com/moral/api/service/GroupService.java
@@ -2,6 +2,8 @@ import com.moral.api.entity.Group; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.dto.group.GroupDTO; import com.moral.api.pojo.form.group.AdminGroupUpdateMenuForm; /** * <p> @@ -13,4 +15,22 @@ */ public interface GroupService extends IService<Group> { /** * @Description: 查询组织对应的admin角色 * @Param: [organizationId] * @return: com.moral.api.entity.Group * @Author: 陈凯裕 * @Date: 2021/5/13 */ Group queryAdminGroupByOrganizationId(Integer organizationId); /** * @Description: 更新admin角色菜单 * @Param: [GroupMenuUpdateForm form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/5/11 */ GroupDTO updateAdminGroupMenu(AdminGroupUpdateMenuForm form); } screen-manage/src/main/java/com/moral/api/service/MenuService.java
@@ -20,13 +20,22 @@ */ public interface MenuService extends IService<Menu> { /** * @Description: 查询父子结构菜单 * @Description: 查询菜单 * @Param: [] * @return: com.moral.api.pojo.dto.menu.MenuQueryDTO * @Author: 陈凯裕 * @Date: 2021/4/25 */ MenuQueryDTO queryAllMenu(); MenuQueryDTO queryAllMenus(); /** * @Description: 通过组织id,查询组织admin角色的所有菜单 * @Param: [organizationId] * @return: com.moral.api.pojo.dto.menu.MenuQueryDTO * @Author: 陈凯裕 * @Date: 2021/5/13 */ MenuQueryDTO queryAdminGroupMenusByOrganizationId(Integer organizationId); /** * @Description: 插入菜单 screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
@@ -1,26 +1,11 @@ package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.Group; import com.moral.api.entity.GroupMenu; import com.moral.api.mapper.GroupMapper; import com.moral.api.mapper.GroupMenuMapper; import com.moral.api.pojo.dto.groupMenu.GroupMenuDTO; import com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO; import com.moral.api.pojo.form.groupMenu.GroupMenuQueryForm; import com.moral.api.pojo.form.groupMenu.GroupMenuUpdateForm; import com.moral.api.service.GroupMenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.List; /** * <p> @@ -32,88 +17,5 @@ */ @Service public class GroupMenuServiceImpl extends ServiceImpl<GroupMenuMapper, GroupMenu> implements GroupMenuService { @Autowired GroupMenuMapper groupMenuMapper; @Autowired GroupMapper groupMapper; @Override @Transactional public GroupMenuDTO updateGroupMenu(GroupMenuUpdateForm form) { //创建返回对象 GroupMenuDTO dto = new GroupMenuDTO(); //取参 Integer orgId = form.getOrganizationId(); String channelKey = form.getChannelKey(); List<Integer> insertMenuIds = form.getMenuIds(); //根据orgId查询组织admin角色id Group group = queryAdminGroupByOrganizationId(orgId); if (ObjectUtils.isEmpty(group)) {//如果没有角色则证明组织还没有账号 dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); return dto; } //删除角色当前所有的菜单 UpdateWrapper deleteWrapper = new UpdateWrapper(); deleteWrapper.set("is_delete", Constants.DELETE); deleteWrapper.eq("group_id", group.getId()); groupMenuMapper.update(null, deleteWrapper); //重新添加 for (Integer menuId : insertMenuIds) { GroupMenu groupMenu = new GroupMenu(); groupMenu.setChannelKey(channelKey); groupMenu.setGroupId(group.getId()); groupMenu.setMenuId(menuId); groupMenu.setOrganizationId(orgId); groupMenuMapper.insert(groupMenu); } //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } @Override public GroupMenuQueryDTO queryGroupMenu(GroupMenuQueryForm form) { //创建返回对象 GroupMenuQueryDTO dto = new GroupMenuQueryDTO(); //取参 Integer organizationId = form.getOrganizationId(); //查询组织admin角色 Group group = queryAdminGroupByOrganizationId(organizationId); if (ObjectUtils.isEmpty(group)) {//如果没有角色则证明组织还没有账号 dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); return dto; } //根据角色查询对应的所有菜单 QueryWrapper<GroupMenu> queryGroupMenuWrapper = new QueryWrapper<>(); queryGroupMenuWrapper.eq("group_id", group.getId()); queryGroupMenuWrapper.eq("is_delete",Constants.NOT_DELETE); List<GroupMenu> groupMenus = groupMenuMapper.selectList(queryGroupMenuWrapper); //封装返回结果 List<GroupMenuDTO> dtos = new ArrayList<>(); for (GroupMenu groupMenu : groupMenus) { GroupMenuDTO groupMenuDTO = new GroupMenuDTO(); groupMenuDTO.setGroupMenu(groupMenu); dtos.add(groupMenuDTO); } dto.setDtos(dtos); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } private Group queryAdminGroupByOrganizationId(Integer OrganizationId) { QueryWrapper<Group> queryGroupWrapper = new QueryWrapper<>(); Group groupConditon = new Group(); groupConditon.setOrganizationId(OrganizationId); groupConditon.setGroupName("admin"); groupConditon.setIsDelete(Constants.NOT_DELETE); queryGroupWrapper.setEntity(groupConditon); return groupMapper.selectOne(queryGroupWrapper); } } screen-manage/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
@@ -1,10 +1,23 @@ package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.Group; import com.moral.api.entity.GroupMenu; import com.moral.api.mapper.GroupMapper; import com.moral.api.mapper.GroupMenuMapper; import com.moral.api.pojo.dto.group.GroupDTO; import com.moral.api.pojo.form.group.AdminGroupUpdateMenuForm; import com.moral.api.service.GroupService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import java.util.List; /** * <p> @@ -17,4 +30,55 @@ @Service public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements GroupService { @Autowired GroupMapper groupMapper; @Autowired GroupMenuMapper groupMenuMapper; @Override public Group queryAdminGroupByOrganizationId(Integer OrganizationId) { QueryWrapper<Group> queryGroupWrapper = new QueryWrapper<>(); Group groupConditon = new Group(); groupConditon.setOrganizationId(OrganizationId); groupConditon.setGroupName("admin"); groupConditon.setIsDelete(Constants.NOT_DELETE); queryGroupWrapper.setEntity(groupConditon); return groupMapper.selectOne(queryGroupWrapper); } @Override @Transactional public GroupDTO updateAdminGroupMenu(AdminGroupUpdateMenuForm form) { //创建返回对象 GroupDTO dto = new GroupDTO(); //取参 Integer orgId = form.getOrganizationId(); String channelKey = form.getChannelKey(); List<Integer> insertMenuIds = form.getMenuIds(); //根据orgId查询组织admin角色id Group group = queryAdminGroupByOrganizationId(orgId); if (ObjectUtils.isEmpty(group)) {//如果没有角色则证明组织还没有账号 dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); return dto; } //删除角色当前所有的菜单 UpdateWrapper deleteWrapper = new UpdateWrapper(); deleteWrapper.set("is_delete", Constants.DELETE); deleteWrapper.eq("group_id", group.getId()); groupMenuMapper.update(null, deleteWrapper); //重新添加 for (Integer menuId : insertMenuIds) { GroupMenu groupMenu = new GroupMenu(); groupMenu.setChannelKey(channelKey); groupMenu.setGroupId(group.getId()); groupMenu.setMenuId(menuId); groupMenu.setOrganizationId(orgId); groupMenuMapper.insert(groupMenu); } //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } } screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.config.mybatis.wrapper.NullFilterWrapper; import com.moral.api.entity.Group; import com.moral.api.entity.Menu; import com.moral.api.mapper.MenuMapper; import com.moral.api.pojo.dto.menu.MenuDTO; @@ -12,6 +13,7 @@ import com.moral.api.pojo.form.menu.MenuInsertForm; import com.moral.api.pojo.form.menu.MenuQueryNamesForm; import com.moral.api.pojo.form.menu.MenuUpdateForm; import com.moral.api.service.GroupService; import com.moral.api.service.MenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; @@ -40,34 +42,53 @@ @Autowired MenuMapper menuMapper; @Autowired GroupService groupService; @Override public MenuQueryDTO queryAllMenu() { public MenuQueryDTO queryAllMenus() { //创建返回对象 MenuQueryDTO dto = new MenuQueryDTO(); //获取所有菜单 QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("is_delete", Constants.NOT_DELETE); List<Menu> menus = menuMapper.selectList(wrapper); //组合menu父子结构 Map<Integer, Menu> menuMap = new HashMap<>(); for (Menu menu : menus) { menuMap.put(menu.getId(), menu); menu.setChildren(new ArrayList<>());//初始化集合 } for (Menu menu : menus) { combinationParentChildrenMenus(menuMap, menu); } //删除非根菜单 menus.removeIf(new Predicate<Menu>() { @Override public boolean test(Menu menu) { if (menu.getParentId().equals(0)) return false; return true; } }); //组装成父子结构 combinationParentChildrenMenus(menus); //转换菜单为DTO List<MenuDTO> dtos = new ArrayList<>(); for (Menu menu : menus) { MenuDTO menuDTO = new MenuDTO(); menuDTO.setMenu(menu); dtos.add(menuDTO); } dto.setDtos(dtos); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } @Override public MenuQueryDTO queryAdminGroupMenusByOrganizationId(Integer organizationId) { //创建返回对象 MenuQueryDTO dto = new MenuQueryDTO(); //查询组织admin角色 Group group = groupService.queryAdminGroupByOrganizationId(organizationId); if (ObjectUtils.isEmpty(group)) {//如果没有角色则证明组织还没有账号 dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); return dto; } //根据角色查询对应的所有菜单 List<Menu> allMenus = menuMapper.getMenusByGroupId(group.getId()); //将菜单转换为父子结构 combinationParentChildrenMenus(allMenus); //删除所有菜单只保留最底层菜单 List<Menu> menus = new ArrayList<>(); for (Menu menu : allMenus) { getNotParentMenu(menu, menus); } //封装返回结果 List<MenuDTO> dtos = new ArrayList<>(); for (Menu menu : menus) { MenuDTO menuDTO = new MenuDTO(); @@ -130,7 +151,7 @@ wrapper.set("is_delete", Constants.DELETE); menuMapper.update(null, wrapper); } //删除根菜单 //删除菜单 existMenu.setIsDelete(Constants.DELETE); menuMapper.updateById(existMenu); @@ -180,7 +201,7 @@ //查询结果 NullFilterWrapper<Menu> wrapper = new NullFilterWrapper<>(); wrapper.eq("is_delete", Constants.NOT_DELETE); wrapper.like("name",name); wrapper.like("name", name); List<Menu> menus = menuMapper.selectList(wrapper); //过滤该id对应的所有子菜单 List<Integer> childrenIds = getChildrenIdsByParentId(id);//获取所有子菜单id结合 @@ -211,6 +232,35 @@ return dto; } /** * @Description: 将传来的菜单集合封装成父子结构的集合 * @Param: [menus] * @return: java.util.List<com.moral.api.entity.Menu> * @Author: 陈凯裕 * @Date: 2021/5/13 */ public void combinationParentChildrenMenus(List<Menu> menus){ //组合menu父子结构 Map<Integer, Menu> menuMap = new HashMap<>(); for (Menu menu : menus) { menuMap.put(menu.getId(), menu); menu.setChildren(new ArrayList<>());//初始化集合 } for (Menu menu : menus) { putMenuToParentMenu(menuMap, menu); } //删除非根菜单 menus.removeIf(new Predicate<Menu>() { @Override public boolean test(Menu menu) { if (menu.getParentId().equals(0)) return false; return true; } }); } /** * @Description: 把传来的menu放到menuMap对应的父菜单中 * @Param: [menuMap, menu] @@ -218,7 +268,7 @@ * @Author: 陈凯裕 * @Date: 2021/5/6 */ private void combinationParentChildrenMenus(Map<Integer, Menu> menuMap, Menu menu) { private void putMenuToParentMenu(Map<Integer, Menu> menuMap, Menu menu) { Integer parentId = menu.getParentId(); Menu parentMenu = menuMap.get(parentId); if (!ObjectUtils.isEmpty(parentMenu)) { @@ -245,7 +295,7 @@ menu.setChildren(new ArrayList<>());//初始化集合 } for (Menu menu : menus) { combinationParentChildrenMenus(menuMap, menu); putMenuToParentMenu(menuMap, menu); } Menu menu = menuMap.get(id); return menu; @@ -273,7 +323,7 @@ /** * @Description: 递归获取菜单的id放入集合中 * @Description: 递归获取菜单以及children的id放入集合中 * @Param: [menu, ids] * @return: void * @Author: 陈凯裕 @@ -289,4 +339,22 @@ } } /** * @Description: 获取menu菜单中的最底层菜单添加到menus中 * @Param: [menu, menus] * @return: void * @Author: 陈凯裕 * @Date: 2021/5/13 */ private void getNotParentMenu(Menu menu, List<Menu> menus) { if (ObjectUtils.isEmpty(menu.getChildren())) { menus.add(menu); } else { List<Menu> children = menu.getChildren(); for (Menu child : children) { getNotParentMenu(child, menus); } } } } screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
@@ -32,7 +32,7 @@ join manage_role_menu mrm on mm.`id` = mrm.`menu_id` and mm.`is_delete`=0 mm.`id` = mrm.`menu_id` and mrm.`is_delete`=0 join manage_role mr on screen-manage/src/main/resources/mapper/MenuMapper.xml
@@ -15,4 +15,25 @@ <result column="is_delete" property="isDelete" /> </resultMap> <sql id="Base_Column_List"> m.id,m.name,m.url,m.icon,m.parent_id,m.order,m.create_time,m.update_time,m.is_delete </sql> <select id="getMenusByGroupId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"></include> FROM menu m JOIN group_menu gm ON gm.`menu_id` = m.`id` AND gm.`is_delete` = 0 JOIN `group` g ON g.`id` = gm.`group_id` AND g.`is_delete` = 0 AND g.`id` = #{value} WHERE m.`is_delete` = 0; </select> </mapper>