4cbe87aa创建于 2025年9月15日历史提交
package com.TinyPro.controller;

import com.TinyPro.annotation.PermissionAnnotation;
import com.TinyPro.annotation.Reject;
import com.TinyPro.entity.dto.CreateRoleDto;
import com.TinyPro.entity.dto.UpdateRoleDto;
import com.TinyPro.entity.po.Role;
import com.TinyPro.entity.vo.RolePMVo;
import com.TinyPro.entity.vo.RoleSimpleVo;
import com.TinyPro.service.IRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/role")
public class RoleController {
    @Autowired
    private IRoleService roleService;

    @Reject()
    @PermissionAnnotation("role::add")
    @PostMapping()
    public ResponseEntity<Role> create(@RequestBody CreateRoleDto createRoleDto) {
        return this.roleService.createRole(createRoleDto, false);
    }

    /**
     * 获取所有的角色信息
     *
     * @return
     */
    @PermissionAnnotation("role::query")
    @GetMapping()
    public ResponseEntity<List<RoleSimpleVo>> getAllRole() {
        return roleService.findAllRole();
    }

    @PermissionAnnotation("role::query")
    @GetMapping("/detail")
    public ResponseEntity<RolePMVo> getAllRoleDetail(
            @RequestParam(value = "page", defaultValue = "1", required = false) Integer page,
            @RequestParam(value = "limit", defaultValue = "10", required = false) Integer limit,
            @RequestParam(value = "name", required = false) String name
    ) {
        return this.roleService.findAllDetail(page, limit, name);
    }

    /**
     * 获取所有的角色信息
     *
     * @return
     */
    @PermissionAnnotation("role::update")
    @PatchMapping()
    @Reject
    public ResponseEntity<Role> updateRole(@RequestBody UpdateRoleDto updateRoleDto) {
       return this.roleService.updateRole(updateRoleDto);

    }

    /**
     * 更具id删除角色
     *
     * @PathVariable id
     * @return
     */
    @PermissionAnnotation("role::remove")
    @DeleteMapping("/{id}")
    @Reject
    public ResponseEntity<Map<String,String>> deleteRole(@PathVariable Integer id) {
        return roleService.removeRoleById(id);
    }

    @GetMapping("/info/{id}")
    public ResponseEntity<Role> getRoleInfo(@PathVariable Integer id) {
        return roleService.findOne(id);
    }
}