package com.sxpcwlkj.system.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.sxpcwlkj.common.annotation.MssSafety;
import com.sxpcwlkj.common.code.controller.BaseController;
import com.sxpcwlkj.common.utils.R;
import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
import com.sxpcwlkj.system.entity.AdminMenuTree;
import com.sxpcwlkj.system.entity.bo.SysFunctionBo;
import com.sxpcwlkj.system.entity.vo.SysFunctionVo;
import com.sxpcwlkj.system.service.SysFunctionService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 系统资源
* @module 系统管理模块
* @author mmsAdmin
* @Doc MMS文档
*/
@Tag(name = "系统管理模块-系统资源",description = "系统管理模块-系统资源")
@RequestMapping("system/function")
@RestController
@RequiredArgsConstructor
public class SysFunctionController extends BaseController {
private final SysFunctionService baseService;
/**
* 获取资源列表
*
* @return vo
*/
@MssSafety
@SaCheckPermission("system:function:list")
@PostMapping("/list")
public R> listPage(@RequestBody @Validated(ValidatedGroupConfig.query.class) SysFunctionBo bo) {
return R.success(baseService.selectPageList(bo, bo.getPageQuery()));
}
/**
* 所有菜单
*/
@SaCheckPermission("system:function:list")
@PostMapping("/menuList")
public R> menuList(){
List functionTree = baseService.getAllMenuTree();
return success(functionTree);
}
/**
* 获取详细信息
*
* @return vo
*/
@SaCheckPermission("system:function:query")
@GetMapping("/{id}")
public R queryById(@PathVariable String id) {
return success(baseService.selectVoById(id));
}
/**
* 编辑资源
*
* @return vo
*/
@MssSafety
@Transactional
@SaCheckPermission("system:function:edit")
@PutMapping
public R edit(@Validated @RequestBody SysFunctionBo bo) {
return success(baseService.updateById(bo));
}
/**
* 新增资源
*
* @return vo
*/
@MssSafety
@Transactional
@SaCheckPermission("system:function:insert")
@PostMapping
public R insert(@Validated @RequestBody SysFunctionBo bo) {
return success(baseService.insert(bo));
}
/**
* 删除
*
* @return vo
*/
@MssSafety
@Transactional
@SaCheckPermission("system:function:delete")
@DeleteMapping("/{id}")
public R delete(@PathVariable String id) {
return success(baseService.deleteById(id));
}
}