package com.yj.earth.business.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yj.earth.annotation.CheckAuth; import com.yj.earth.business.domain.Role; import com.yj.earth.business.service.RoleService; import com.yj.earth.common.util.ApiResponse; import com.yj.earth.dto.role.AddRoleDto; import com.yj.earth.dto.role.UpdateRoleDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @Tag(name = "角色数据管理") @CheckAuth @RestController @RequestMapping("/role") public class RoleController { @Resource private RoleService roleService; @Operation(summary = "新增角色") @PostMapping("/add") public ApiResponse save(@RequestBody AddRoleDto addRoleDto) { Role role = new Role(); BeanUtils.copyProperties(addRoleDto, role); roleService.save(role); return ApiResponse.success(null); } @Operation(summary = "删除角色") @PostMapping("/deletes") public ApiResponse deletes(@Parameter(description = "用户ID列表") @RequestBody List ids) { roleService.removeByIds(ids); return ApiResponse.success(null); } @Operation(summary = "更新角色") @PostMapping("/update") public ApiResponse update(@RequestBody UpdateRoleDto updateRoleDto) { Role role = new Role(); BeanUtils.copyProperties(updateRoleDto, role); roleService.updateById(role); return ApiResponse.success(null); } @Operation(summary = "角色详情") @GetMapping("/getById") public ApiResponse get(@Parameter(description = "角色ID") String id) { Role role = roleService.getById(id); return ApiResponse.success(role); } @Operation(summary = "角色列表") @GetMapping("/list") public ApiResponse list(@Parameter(description = "分页数量") Integer pageNum, @Parameter(description = "分页大小") Integer pageSize, @Parameter(description = "角色名称") String roleName, @Parameter(description = "角色状态") Integer status) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); // 根据角色名称进行模糊搜索 if (StringUtils.isNotBlank(roleName)) { queryWrapper.like(Role::getRoleName, roleName); } // 角色状态 if (status != null) { queryWrapper.eq(Role::getStatus, status); } Page rolePage = roleService.page(new Page<>(pageNum, pageSize), queryWrapper); return ApiResponse.success(rolePage); } @Operation(summary = "管理员数量查询") @GetMapping("/count") public ApiResponse count() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Role::getIsSuper, 1); return ApiResponse.success(roleService.count(queryWrapper)); } }