update 角色相关接口

This commit is contained in:
小李 2026-01-09 09:06:40 +08:00
parent 11a0146ed4
commit 70fe35510b
4 changed files with 127 additions and 1 deletions

View File

@ -0,0 +1,47 @@
package com.tacit.admin.controller;
import com.tacit.admin.entity.Role;
import com.tacit.admin.service.RoleService;
import com.tacit.common.entity.ResponseResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/role")
@Tag(name = "角色管理", description = "角色管理相关接口")
public class RoleController {
@Resource
private RoleService roleService;
//新增角色
@Operation(summary = "创建角色", description = "创建角色")
@PostMapping("/create")
public ResponseResult<Boolean> createRole(@RequestBody Role role) {
boolean result = roleService.createRole(role);
return ResponseResult.success(result);
}
//修改角色
@Operation(summary = "修改角色", description = "修改角色")
@PutMapping("/update")
public ResponseResult<Boolean> updateRole(@RequestBody Role role) {
boolean result = roleService.updateRole(role);
return ResponseResult.success(result);
}
//删除角色
@Operation(summary = "删除角色", description = "删除角色")
@DeleteMapping("/delete/{id}")
public ResponseResult<Boolean> deleteRole(@PathVariable Long id) {
boolean result = roleService.deleteRole(id);
return ResponseResult.success(result);
}
//查询角色列表
@Operation(summary = "查询角色列表", description = "查询角色列表")
@GetMapping("/list")
public ResponseResult<List<Role>> getRoleList(@RequestBody Role role) {
List<Role> roleList = roleService.getRoleList(role);
return ResponseResult.success(roleList);
}
}

View File

@ -3,11 +3,21 @@ package com.tacit.admin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tacit.admin.entity.Role;
import java.util.List;
public interface RoleService extends IService<Role> {
//根据用户id获取角色
Role getRoleByUserId(Long userId);
//根据用户id获取角色菜单
Role getRoleMenuByUserId(Long userId);
boolean createRole(Role role);
boolean updateRole(Role role);
boolean deleteRole(Long id);
List<Role> getRoleList(Role role);
}

View File

@ -121,7 +121,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
// 根据id查询菜单是否存在
Menu menu = getById(menuId);
if (menu == null) {
throw new BusinessException(ResCode.NO_PARAM.getResultCode(), "菜单不存在");
throw new BusinessException(ResCode.DATA_NOT_EXIST.getResultCode(), "菜单不存在");
}
menu.setDelFlag(1);
return updateById(menu);

View File

@ -1,5 +1,6 @@
package com.tacit.admin.service.impl;
import ch.qos.logback.classic.spi.EventArgUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tacit.admin.entity.Menu;
@ -10,8 +11,11 @@ import com.tacit.admin.mapper.RoleMapper;
import com.tacit.admin.mapper.UserRoleMapper;
import com.tacit.admin.service.MenuService;
import com.tacit.admin.service.RoleService;
import com.tacit.common.exception.BusinessException;
import com.tacit.common.redis.utils.RedisUtils;
import com.tacit.common.utils.ResCode;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@ -50,4 +54,69 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
role.setMenuList(menuList);
return role;
}
@Override
public boolean createRole(Role role) {
// 参数校验
this.checkData(role);
role.setDelFlag(0);
return save(role);
}
@Override
public boolean updateRole(Role role) {
// 角色名称不能为空
String roleName = role.getRoleName();
if(StringUtils.isEmpty(roleName)){
throw new BusinessException(ResCode.NO_PARAM.getResultCode(), "角色名称不能为空");
}
//角色是否存在
Long roleId = role.getId();
if (roleId == null) {
throw new BusinessException(ResCode.NO_PARAM.getResultCode(), "角色ID不能为空");
}
Role byId = getById(roleId);
// 角色名称不能重复 除了自己
if(!roleName.equals(byId.getRoleName())){
Role one = getOne(new QueryWrapper<Role>().eq("role_name", roleName).eq("del_flag", 0));
if (one != null) {
throw new BusinessException(ResCode.DATA_EXIST.getResultCode(), "角色名称不能重复");
}
}
return updateById(role);
}
@Override
public boolean deleteRole(Long id) {
Role role = getById(id);
if (role == null) {
throw new BusinessException(ResCode.DATA_NOT_EXIST.getResultCode(), "角色不存在");
}
role.setDelFlag(1);
return updateById(role);
}
@Override
public List<Role> getRoleList(Role role) {
QueryWrapper<Role> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("del_flag", 0);
if (role != null) {
queryWrapper.like(role.getRoleName() != null, "role_name", role.getRoleName());
}
List<Role> roleList = roleMapper.selectList(queryWrapper);
return roleList;
}
private void checkData(Role role) {
// 角色名称不能为空
String roleName = role.getRoleName();
if(StringUtils.isEmpty(roleName)){
throw new BusinessException(ResCode.NO_PARAM.getResultCode(), "角色名称不能为空");
}
// 角色名称不能重复
Role one = getOne(new QueryWrapper<Role>().eq("role_name", roleName).eq("del_flag", 0));
if (one != null) {
throw new BusinessException(ResCode.DATA_EXIST.getResultCode(), "角色名称不能重复");
}
}
}