//package com.backendsys.controller.Systems;
//
//import com.backendsys.aspect.QueryNullCheck;
//import com.backendsys.entity.System.SysMenuDTO;
//import com.backendsys.service.System.SysMenuService;
//import com.backendsys.utils.response.Result;
//import com.fasterxml.jackson.core.JsonProcessingException;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.security.access.prepost.PreAuthorize;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.*;
//
///**
// * 系统后台菜单
// */
//@Validated
//@RestController
//public class SysMenuController {
//
//    @Autowired
//    private SysMenuService sysMenuService;
//
//    // @PreAuthorize("@sr.hasPermission('1.3')")
//    // 由于动态路由需要提前加载，在 /login 时就必须调用，所以此处设置为公共
//    @GetMapping("/api/public/system/menu/getMenu")
//    public Result getMenu(@Validated SysMenuDTO sysMenuDTO) {
//        try {
//            return Result.success(sysMenuService.queryMenu(sysMenuDTO));
//        } catch (JsonProcessingException e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//    @PreAuthorize("@sr.hasPermission('1.3.1')")
//    @PostMapping("/api/system/menu/createMenu")
//    public Result createMenu(@Validated(SysMenuDTO.Create.class) @RequestBody SysMenuDTO sysMenuDTO) {
//        return Result.success(sysMenuService.insertMenu(sysMenuDTO), "创建成功");
//    }
//
//    @PreAuthorize("@sr.hasPermission('1.3.2')")
//    @QueryNullCheck(serviceClass = SysMenuService.class, serviceMethod = "queryMenuDetail", argField = "menu_id", message = "系统菜单不存在")
//    @PutMapping("/api/system/menu/updateMenu")
//    public Result updateMenu(@Validated(SysMenuDTO.Update.class) @RequestBody SysMenuDTO sysMenuDTO) {
//        return Result.success(sysMenuService.updateMenu(sysMenuDTO), "更新成功");
//    }
//
//    @PreAuthorize("@sr.hasPermission('1.3.3')")
//    @QueryNullCheck(serviceClass = SysMenuService.class, serviceMethod = "queryMenuDetail", argField = "menu_id", message = "系统菜单不存在")
//    @DeleteMapping("/api/system/menu/deleteMenu")
//    public Result deleteMenu(@Validated(SysMenuDTO.Delete.class) @RequestBody SysMenuDTO sysMenuDTO) {
//        return Result.success(sysMenuService.deleteMenu(sysMenuDTO), "删除成功");
//    }
//}
