package com.doumee.api.system; 
 | 
  
 | 
import com.doumee.api.BaseController; 
 | 
import com.doumee.biz.system.SystemMenuBiz; 
 | 
import com.doumee.core.annotation.pr.PreventRepeat; 
 | 
import com.doumee.core.model.ApiResponse; 
 | 
import com.doumee.dao.common.dto.UpdateSortDTO; 
 | 
import com.doumee.core.constants.Constants; 
 | 
import com.doumee.dao.system.model.SystemMenu; 
 | 
import com.doumee.dao.system.vo.SystemMenuListVO; 
 | 
import com.doumee.dao.system.vo.SystemMenuNodeVO; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.apache.shiro.authz.annotation.RequiresPermissions; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.validation.annotation.Validated; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * @author  dm 
 | 
 * @since 2025/03/31 16:44 
 | 
 */ 
 | 
@Api(tags = "系统菜单") 
 | 
@RestController 
 | 
@RequestMapping("/system/menu") 
 | 
public class SystemMenuController extends BaseController { 
 | 
  
 | 
    @Autowired 
 | 
    private SystemMenuBiz systemMenuBiz; 
 | 
  
 | 
    @ApiOperation("菜单排序") 
 | 
    @PostMapping("/updateSort") 
 | 
    @RequiresPermissions("system:menu:sort") 
 | 
    public ApiResponse updateSort (@Validated @RequestBody UpdateSortDTO dto) { 
 | 
        systemMenuBiz.updateSort(dto); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("查询菜单树") 
 | 
    @GetMapping("/treeNodes") 
 | 
    public ApiResponse<List<SystemMenuNodeVO>> getTreeMenu () { 
 | 
        return ApiResponse.success(systemMenuBiz.findTree(this.getLoginUser().getId())); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("查询列表树") 
 | 
    @PostMapping("/treeList") 
 | 
    @RequiresPermissions("system:menu:query") 
 | 
    public ApiResponse<List<SystemMenuListVO>> findTree () { 
 | 
        return ApiResponse.success(systemMenuBiz.findTree()); 
 | 
    } 
 | 
  
 | 
    @PreventRepeat 
 | 
    @ApiOperation("新建") 
 | 
    @PostMapping("/create") 
 | 
    @RequiresPermissions("system:menu:create") 
 | 
    public ApiResponse create(@Validated(Constants.OperaType.Create.class) @RequestBody SystemMenu systemMenu) { 
 | 
        return ApiResponse.success(systemMenuBiz.create(systemMenu)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("删除") 
 | 
    @GetMapping("/delete/{id}") 
 | 
    @RequiresPermissions("system:menu:delete") 
 | 
    public ApiResponse deleteById(@PathVariable Integer id) { 
 | 
        systemMenuBiz.deleteById(id); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("批量删除") 
 | 
    @GetMapping("/delete/batch") 
 | 
    @RequiresPermissions("system:menu:delete") 
 | 
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) { 
 | 
        systemMenuBiz.deleteByIdInBatch(this.getIdList(ids)); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("修改") 
 | 
    @PostMapping("/updateById") 
 | 
    @RequiresPermissions("system:menu:update") 
 | 
    public ApiResponse updateById(@Validated(Constants.OperaType.Update.class) @RequestBody SystemMenu systemMenu) { 
 | 
        systemMenuBiz.updateById(systemMenu); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("修改菜单状态") 
 | 
    @PostMapping("/updateStatus") 
 | 
    @RequiresPermissions("system:menu:update") 
 | 
    public ApiResponse updateStatus(@Validated(Constants.OperaType.UpdateStatus.class) @RequestBody SystemMenu systemMenu) { 
 | 
        systemMenuBiz.updateById(systemMenu); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
} 
 |