角色添加 system 属性,表名是否为系统角色,系统角色不可删除,系统角色不可被取消

This commit is contained in:
b2baccline
2020-06-26 20:36:05 +08:00
parent 358947f0d2
commit 90cfa06ee8
5 changed files with 31 additions and 18 deletions

View File

@@ -12,6 +12,7 @@ import com.hccake.ballcat.admin.modules.sys.service.SysRoleService;
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging; import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging; import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging; import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
import com.hccake.ballcat.common.core.result.BaseResultCode;
import com.hccake.ballcat.common.core.result.R; import com.hccake.ballcat.common.core.result.R;
import com.hccake.ballcat.common.core.vo.SelectData; import com.hccake.ballcat.common.core.vo.SelectData;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -46,8 +47,8 @@ public class SysRoleController {
*/ */
@GetMapping("/page") @GetMapping("/page")
@PreAuthorize("@per.hasPermission('sys:sysrole:read')") @PreAuthorize("@per.hasPermission('sys:sysrole:read')")
public R<IPage<SysRole>> getRolePage(Page<SysRole> page, SysRoleQO sysRoleQO) { public R<IPage<SysRole>> getRolePage(Page<SysRole> page, SysRoleQO sysRoleQo) {
return R.ok(sysRoleService.page(page, sysRoleQO)); return R.ok(sysRoleService.page(page, sysRoleQo));
} }
/** /**
@@ -57,7 +58,7 @@ public class SysRoleController {
*/ */
@GetMapping("/{id}") @GetMapping("/{id}")
@PreAuthorize("@per.hasPermission('sys:sysrole:read')") @PreAuthorize("@per.hasPermission('sys:sysrole:read')")
public R getById(@PathVariable Integer id) { public R<SysRole> getById(@PathVariable Integer id) {
return R.ok(sysRoleService.getById(id)); return R.ok(sysRoleService.getById(id));
} }
@@ -70,7 +71,7 @@ public class SysRoleController {
@CreateOperationLogging(msg = "新增系统角色") @CreateOperationLogging(msg = "新增系统角色")
@PostMapping @PostMapping
@PreAuthorize("@per.hasPermission('sys:sysrole:add')") @PreAuthorize("@per.hasPermission('sys:sysrole:add')")
public R save(@Valid @RequestBody SysRole sysRole) { public R<Boolean> save(@Valid @RequestBody SysRole sysRole) {
return R.ok(sysRoleService.save(sysRole)); return R.ok(sysRoleService.save(sysRole));
} }
@@ -83,20 +84,29 @@ public class SysRoleController {
@UpdateOperationLogging(msg = "修改系统角色") @UpdateOperationLogging(msg = "修改系统角色")
@PutMapping @PutMapping
@PreAuthorize("@per.hasPermission('sys:sysrole:edit')") @PreAuthorize("@per.hasPermission('sys:sysrole:edit')")
public R update(@Valid @RequestBody SysRole role) { public R<Boolean> update(@Valid @RequestBody SysRole role) {
SysRole oldRole = sysRoleService.getById(role.getId());
if (oldRole.isSystem()) {
// 系统角色不能被取消
role.setSystem(oldRole.isSystem());
}
return R.ok(sysRoleService.updateById(role)); return R.ok(sysRoleService.updateById(role));
} }
/** /**
* 删除角色 * 删除角色
* @param id * @param id id
* @return * @return 结果信息
*/ */
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@ApiOperation(value = "通过id删除系统角色", notes = "通过id删除系统角色") @ApiOperation(value = "通过id删除系统角色", notes = "通过id删除系统角色")
@DeleteOperationLogging(msg = "通过id删除系统角色") @DeleteOperationLogging(msg = "通过id删除系统角色")
@PreAuthorize("@per.hasPermission('sys:sysrole:del')") @PreAuthorize("@per.hasPermission('sys:sysrole:del')")
public R removeById(@PathVariable Integer id) { public R<Boolean> removeById(@PathVariable Integer id) {
SysRole oldRole = sysRoleService.getById(id);
if (oldRole.isSystem()) {
return R.failed(BaseResultCode.LOGIC_CHECK_ERROR, "系统角色不允许被删除!");
}
return R.ok(sysRoleService.removeRoleById(id)); return R.ok(sysRoleService.removeRoleById(id));
} }
@@ -105,7 +115,7 @@ public class SysRoleController {
* @return 角色列表 * @return 角色列表
*/ */
@GetMapping("/list") @GetMapping("/list")
public R listRoles() { public R<List<SysRole>> listRoles() {
return R.ok(sysRoleService.list(Wrappers.emptyWrapper())); return R.ok(sysRoleService.list(Wrappers.emptyWrapper()));
} }
@@ -119,7 +129,7 @@ public class SysRoleController {
@ApiOperation(value = "更新角色权限", notes = "更新角色权限") @ApiOperation(value = "更新角色权限", notes = "更新角色权限")
@UpdateOperationLogging(msg = "更新角色权限") @UpdateOperationLogging(msg = "更新角色权限")
@PreAuthorize("@per.hasPermission('sys:sysrole:grant')") @PreAuthorize("@per.hasPermission('sys:sysrole:grant')")
public R savePermissionIds(@PathVariable Integer roleId, @RequestBody Integer[] permissionIds) { public R<Boolean> savePermissionIds(@PathVariable Integer roleId, @RequestBody Integer[] permissionIds) {
return R.ok(sysRolePermissionService.saveRolePermissions(roleId, permissionIds)); return R.ok(sysRolePermissionService.saveRolePermissions(roleId, permissionIds));
} }
@@ -129,7 +139,7 @@ public class SysRoleController {
* @return 属性集合 * @return 属性集合
*/ */
@GetMapping("/permission/ids/{roleId}") @GetMapping("/permission/ids/{roleId}")
public R getPermissionIds(@PathVariable Integer roleId) { public R<List<Integer>> getPermissionIds(@PathVariable Integer roleId) {
return R.ok(sysPermissionService.findPermissionVOByRoleId(roleId).stream().map(PermissionVO::getId) return R.ok(sysPermissionService.findPermissionVOByRoleId(roleId).stream().map(PermissionVO::getId)
.collect(Collectors.toList())); .collect(Collectors.toList()));
} }
@@ -139,7 +149,7 @@ public class SysRoleController {
* @return 角色列表 * @return 角色列表
*/ */
@GetMapping("/select") @GetMapping("/select")
public R<List<SelectData>> getSelectData() { public R<List<SelectData<?>>> getSelectData() {
return R.ok(sysRoleService.getSelectData()); return R.ok(sysRoleService.getSelectData());
} }

View File

@@ -11,7 +11,7 @@ import java.util.List;
* Mapper 接口 * Mapper 接口
* </p> * </p>
* *
* @author * @author ballcat
* @since 2017-10-29 * @since 2017-10-29
*/ */
public interface SysRoleMapper extends BaseMapper<SysRole> { public interface SysRoleMapper extends BaseMapper<SysRole> {
@@ -20,6 +20,6 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
* 获取角色下拉框数据 * 获取角色下拉框数据
* @return * @return
*/ */
List<SelectData> getSelectData(); List<SelectData<?>> getSelectData();
} }

View File

@@ -15,7 +15,7 @@ import java.time.LocalDateTime;
* 角色表 * 角色表
* </p> * </p>
* *
* @author * @author ballcat
* @since 2017-10-29 * @since 2017-10-29
*/ */
@Data @Data
@@ -41,6 +41,9 @@ public class SysRole extends Model<SysRole> {
@ApiModelProperty(value = "角色备注") @ApiModelProperty(value = "角色备注")
private String note; private String note;
@ApiModelProperty("角色是否为系统角色")
private boolean system;
/** /**
* 逻辑删除标识,已删除:0未删除删除时间戳 * 逻辑删除标识,已删除:0未删除删除时间戳
*/ */

View File

@@ -37,6 +37,6 @@ public interface SysRoleService extends IService<SysRole> {
* 角色的选择数据 * 角色的选择数据
* @return * @return
*/ */
List<SelectData> getSelectData(); List<SelectData<?>> getSelectData();
} }

View File

@@ -23,7 +23,7 @@ import java.util.List;
* 服务实现类 * 服务实现类
* </p> * </p>
* *
* @author * @author ballcat
* @since 2017-10-29 * @since 2017-10-29
*/ */
@Service @Service
@@ -66,7 +66,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
* @return * @return
*/ */
@Override @Override
public List<SelectData> getSelectData() { public List<SelectData<?>> getSelectData() {
return baseMapper.getSelectData(); return baseMapper.getSelectData();
} }