From e599004c92b9d25773d2205f6300086e7e8cd452 Mon Sep 17 00:00:00 2001 From: longbinbin <2284496322@qq.com> Date: Tue, 3 Dec 2024 13:48:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0"=E7=B3=BB=E7=BB=9F=E8=8F=9C?= =?UTF-8?q?=E5=8D=95"=E7=9A=84=E5=9F=BA=E7=A1=80=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=92=8C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/pc/MenuController.java | 45 +++++++++++ .../basic/controller/pc/RoleController.java | 7 +- .../com/ycwl/basic/mapper/pc/MenuMapper.java | 17 ++++- .../service/impl/pc/MenuServiceImpl.java | 75 +++++++++++++++++++ .../service/impl/pc/RoleServiceImpl.java | 27 +------ .../ycwl/basic/service/pc/MenuService.java | 18 +++++ .../ycwl/basic/service/pc/RoleService.java | 1 - src/main/resources/mapper/pc/MenuMapper.xml | 14 +++- 8 files changed, 168 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/controller/pc/MenuController.java create mode 100644 src/main/java/com/ycwl/basic/service/impl/pc/MenuServiceImpl.java create mode 100644 src/main/java/com/ycwl/basic/service/pc/MenuService.java diff --git a/src/main/java/com/ycwl/basic/controller/pc/MenuController.java b/src/main/java/com/ycwl/basic/controller/pc/MenuController.java new file mode 100644 index 0000000..9a94dc1 --- /dev/null +++ b/src/main/java/com/ycwl/basic/controller/pc/MenuController.java @@ -0,0 +1,45 @@ +package com.ycwl.basic.controller.pc; + +import com.ycwl.basic.annotation.IgnoreToken; +import com.ycwl.basic.model.pc.menu.entity.MenuEntity; +import com.ycwl.basic.service.pc.MenuService; +import com.ycwl.basic.utils.ApiResponse; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +/** + * @Author:longbinbin + * @Date:2024/12/3 10:03 + */ +@RestController +@RequestMapping("/api/menu/v1") +@Api(tags = "菜单管理") +public class MenuController { + + private MenuService menuService; + + + @GetMapping(value = "/list/{type}") + @ApiOperation(value = " 菜单列表") + @IgnoreToken + public ApiResponse list(@PathVariable("type") Integer type) { + return menuService.list(type); + } + + @PostMapping("/add") + @ApiOperation(value = "添加菜单") + public ApiResponse add(@RequestBody MenuEntity menu) { + return menuService.add(menu); + } + @PostMapping("/update") + @ApiOperation(value = "修改菜单") + public ApiResponse update(@RequestBody MenuEntity menu) { + return menuService.update(menu); + } + @GetMapping("/delete/{id}") + @ApiOperation(value = "删除菜单") + public ApiResponse delete(@PathVariable("id") Long id) { + return menuService.deleteById(id); + } +} diff --git a/src/main/java/com/ycwl/basic/controller/pc/RoleController.java b/src/main/java/com/ycwl/basic/controller/pc/RoleController.java index 8e96361..ff45571 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/RoleController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/RoleController.java @@ -50,12 +50,7 @@ public class RoleController { return roleService.updateReturnMenu(id); } - @GetMapping(value = "/menu/{type}") - @ApiOperation(value = " 菜单") - @IgnoreToken - public ApiResponse menu(@PathVariable("type") Integer type) { - return roleService.menu(type); - } + @GetMapping(value = "/updateStatus/{id}") @ApiOperation(value = "更改角色类型状态") diff --git a/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java index e78b848..4cabe87 100644 --- a/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/pc/MenuMapper.java @@ -9,11 +9,24 @@ import java.util.List; @Mapper public interface MenuMapper { - int delete(@Param("id")String id); - int addRoleMenu(@Param("id")String id,@Param("list") List list); + /** + * 根据角色id删除角色菜单 + * @param roleId 角色id + * @return + */ + int deleteRoleMenuByRoleId(@Param("id")String roleId); + int addRoleMenu(@Param("id")String roleId,@Param("list") List list); int add(MenuEntity menuEntity); ListgetListByType(@Param("type")Integer type); int update(MenuEntity menuEntity); + int deleteById(@Param("id")Long id); + + /** + * 根据菜单id删除角色菜单 + * @param menuId + * @return + */ + int deleteRoleMenuByMenuId(@Param("id")String menuId); } diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/MenuServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/MenuServiceImpl.java new file mode 100644 index 0000000..f378803 --- /dev/null +++ b/src/main/java/com/ycwl/basic/service/impl/pc/MenuServiceImpl.java @@ -0,0 +1,75 @@ +package com.ycwl.basic.service.impl.pc; + +import com.ycwl.basic.mapper.pc.MenuMapper; +import com.ycwl.basic.model.pc.menu.MenuNode; +import com.ycwl.basic.model.pc.menu.entity.MenuEntity; +import com.ycwl.basic.service.pc.MenuService; +import com.ycwl.basic.utils.ApiResponse; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author:longbinbin + * @Date:2024/12/3 10:16 + */ + +public class MenuServiceImpl implements MenuService { + + @Autowired + private MenuMapper menuMapper; + + @Override + public ApiResponse> list(Integer type) { +// if(type==null){ +// type=1; +// } + List listByType = menuMapper.getListByType(type); + List MenuList = new ArrayList<>(); + for (MenuNode item :listByType) { + if ("-1".equals(item.getParentId())) { + MenuList.add(item); + } + for (MenuNode item2 : listByType) { + if (item2.getParentId().equals(item.getId())) { + if (item.getChildrenList() == null) { + item.setChildrenList(new ArrayList<>()); + } + item.getChildrenList().add(item2); + } + } + } + return ApiResponse.buildSuccessResponse(MenuList); + } + + @Override + public ApiResponse add(MenuEntity menu) { + int add = menuMapper.add(menu); + if(add>0){ + return ApiResponse.buildSuccessResponse(add); + }else { + return ApiResponse.buildCommonErrorResponse("添加失败"); + } + } + + @Override + public ApiResponse update(MenuEntity menu) { + int update = menuMapper.update(menu); + if(update>0){ + return ApiResponse.buildSuccessResponse(update); + }else { + return ApiResponse.buildCommonErrorResponse("更新失败"); + } + } + + @Override + public ApiResponse deleteById(Long id) { + int deleteById = menuMapper.deleteById(id); + if(deleteById>0){ + return ApiResponse.buildSuccessResponse(deleteById); + }else { + return ApiResponse.buildCommonErrorResponse("删除失败"); + } + } +} diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/RoleServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/RoleServiceImpl.java index eeaa44a..eaeb5f4 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/RoleServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/RoleServiceImpl.java @@ -59,7 +59,7 @@ public class RoleServiceImpl implements RoleService { } }else { if(roleMapper.update(addOrUpdateRoleReqVO)>0){ - menuMapper.delete(addOrUpdateRoleReqVO.getId()); + menuMapper.deleteRoleMenuByRoleId(addOrUpdateRoleReqVO.getId()); if(addOrUpdateRoleReqVO.getMenuIdList()!=null&addOrUpdateRoleReqVO.getMenuIdList().size()>0){ menuMapper.addRoleMenu(addOrUpdateRoleReqVO.getId(),addOrUpdateRoleReqVO.getMenuIdList()); } @@ -72,7 +72,7 @@ public class RoleServiceImpl implements RoleService { @Override public ApiResponse delete(String id) { if(roleMapper.delete(id)>0){ - menuMapper.delete(id); + menuMapper.deleteRoleMenuByRoleId(id); return ApiResponse.buildSuccessResponse(null); } return ApiResponse.buildCommonErrorResponse("失败"); @@ -98,29 +98,6 @@ public class RoleServiceImpl implements RoleService { return ApiResponse.buildSuccessResponse(MenuList); } - @Override - public ApiResponse menu(Integer type) { - if(type==null){ - type=1; - } - List listByType = menuMapper.getListByType(type); - List MenuList = new ArrayList<>(); - for (MenuNode item :listByType) { - if ("-1".equals(item.getParentId())) { - MenuList.add(item); - } - for (MenuNode item2 : listByType) { - if (item2.getParentId().equals(item.getId())) { - if (item.getChildrenList() == null) { - item.setChildrenList(new ArrayList<>()); - } - item.getChildrenList().add(item2); - } - } - } - return ApiResponse.buildSuccessResponse(MenuList); - } - @Override public ApiResponse updateStatus(String id) { if(roleMapper.updateStatus(id)>0){ diff --git a/src/main/java/com/ycwl/basic/service/pc/MenuService.java b/src/main/java/com/ycwl/basic/service/pc/MenuService.java new file mode 100644 index 0000000..81bcf5c --- /dev/null +++ b/src/main/java/com/ycwl/basic/service/pc/MenuService.java @@ -0,0 +1,18 @@ +package com.ycwl.basic.service.pc; + +import com.ycwl.basic.model.pc.menu.MenuNode; +import com.ycwl.basic.model.pc.menu.entity.MenuEntity; +import com.ycwl.basic.utils.ApiResponse; + +import java.util.List; + +/** + * @Author:longbinbin + * @Date:2024/12/3 10:40 + */ +public interface MenuService { + ApiResponse> list(Integer type); + ApiResponse add(MenuEntity menu); + ApiResponse update(MenuEntity menu); + ApiResponse deleteById(Long id); +} diff --git a/src/main/java/com/ycwl/basic/service/pc/RoleService.java b/src/main/java/com/ycwl/basic/service/pc/RoleService.java index e4474a4..6c9ec59 100644 --- a/src/main/java/com/ycwl/basic/service/pc/RoleService.java +++ b/src/main/java/com/ycwl/basic/service/pc/RoleService.java @@ -9,7 +9,6 @@ public interface RoleService { ApiResponse addOrUpdate(AddOrUpdateRoleReqVO addOrUpdateRoleReqVO); ApiResponse delete(String id); ApiResponse updateReturnMenu(String id); - ApiResponse menu(Integer type); ApiResponse updateStatus(String id); } diff --git a/src/main/resources/mapper/pc/MenuMapper.xml b/src/main/resources/mapper/pc/MenuMapper.xml index ab4c57c..70c4c65 100644 --- a/src/main/resources/mapper/pc/MenuMapper.xml +++ b/src/main/resources/mapper/pc/MenuMapper.xml @@ -44,11 +44,19 @@ where id = #{id} - + delete from role_menu where role_id = #{id} + + update menu set is_remove=1 where id = #{id} + + + delete + from role_menu + where menu_id = #{id} +