添加"系统菜单"的基础业务接口和实现

This commit is contained in:
longbinbin 2024-12-03 13:48:29 +08:00
parent 07e8ffff11
commit e599004c92
8 changed files with 168 additions and 36 deletions

View File

@ -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.*;
/**
* @Authorlongbinbin
* @Date2024/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);
}
}

View File

@ -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 = "更改角色类型状态")

View File

@ -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<Integer> list);
/**
* 根据角色id删除角色菜单
* @param roleId 角色id
* @return
*/
int deleteRoleMenuByRoleId(@Param("id")String roleId);
int addRoleMenu(@Param("id")String roleId,@Param("list") List<Integer> list);
int add(MenuEntity menuEntity);
List<MenuNode>getListByType(@Param("type")Integer type);
int update(MenuEntity menuEntity);
int deleteById(@Param("id")Long id);
/**
* 根据菜单id删除角色菜单
* @param menuId
* @return
*/
int deleteRoleMenuByMenuId(@Param("id")String menuId);
}

View File

@ -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;
/**
* @Authorlongbinbin
* @Date2024/12/3 10:16
*/
public class MenuServiceImpl implements MenuService {
@Autowired
private MenuMapper menuMapper;
@Override
public ApiResponse<List<MenuNode>> list(Integer type) {
// if(type==null){
// type=1;
// }
List<MenuNode> listByType = menuMapper.getListByType(type);
List<MenuNode> 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<Integer> add(MenuEntity menu) {
int add = menuMapper.add(menu);
if(add>0){
return ApiResponse.buildSuccessResponse(add);
}else {
return ApiResponse.buildCommonErrorResponse("添加失败");
}
}
@Override
public ApiResponse<Integer> update(MenuEntity menu) {
int update = menuMapper.update(menu);
if(update>0){
return ApiResponse.buildSuccessResponse(update);
}else {
return ApiResponse.buildCommonErrorResponse("更新失败");
}
}
@Override
public ApiResponse<Integer> deleteById(Long id) {
int deleteById = menuMapper.deleteById(id);
if(deleteById>0){
return ApiResponse.buildSuccessResponse(deleteById);
}else {
return ApiResponse.buildCommonErrorResponse("删除失败");
}
}
}

View File

@ -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<MenuNode> listByType = menuMapper.getListByType(type);
List<MenuNode> 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){

View File

@ -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;
/**
* @Authorlongbinbin
* @Date2024/12/3 10:40
*/
public interface MenuService {
ApiResponse<List<MenuNode>> list(Integer type);
ApiResponse<Integer> add(MenuEntity menu);
ApiResponse<Integer> update(MenuEntity menu);
ApiResponse<Integer> deleteById(Long id);
}

View File

@ -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);
}

View File

@ -44,11 +44,19 @@
where id = #{id}
</update>
<delete id="delete">
<delete id="deleteRoleMenuByRoleId">
delete
from role_menu
where role_id = #{id}
</delete>
<delete id="deleteById">
update menu set is_remove=1 where id = #{id}
</delete>
<delete id="deleteRoleMenuByMenuId">
delete
from role_menu
where menu_id = #{id}
</delete>
<select id="getListByType" resultType="com.ycwl.basic.model.pc.menu.MenuNode">
select id,
@ -59,7 +67,9 @@
sort
from menu
where is_remove = 0
and business_type = #{type}
<if test="type!= null ">
and business_type = #{type}
</if>
</select>