package com.cloud.user.controller;
|
|
import com.cloud.model.common.Page;
|
import com.cloud.model.common.Result;
|
import com.cloud.model.log.LogAnnotation;
|
import com.cloud.model.log.constants.AbstractLogModule;
|
import com.cloud.model.sys.SysPermission;
|
import com.cloud.model.sys.SysRole;
|
import com.cloud.user.service.SysRoleService;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.MediaType;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
@RequestMapping("data/api-u")
|
@RestController
|
public class SysRoleController {
|
|
@Autowired
|
private SysRoleService sysRoleService;
|
|
/**
|
* 管理后台添加角色
|
*
|
* @param sysRole
|
* @return
|
*/
|
@LogAnnotation(module = AbstractLogModule.ADD_ROLE)
|
//@PreAuthorize("hasAuthority('back:role:save')")
|
@PostMapping("/roles")
|
@ApiOperation(value = "角色添加", notes = "角色表添加模块", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "orgId", value = "组织Id", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "name", value = "姓名", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "code", value = "编号", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "isSys", value = "是否系统角色", required = true, dataType = "String", paramType = "query")
|
})
|
public SysRole save(@RequestBody SysRole sysRole) {
|
if (StringUtils.isBlank(sysRole.getCode())) {
|
throw new IllegalArgumentException("角色code不能为空");
|
}
|
if (StringUtils.isBlank(sysRole.getName())) {
|
sysRole.setName(sysRole.getCode());
|
}
|
|
sysRoleService.save(sysRole);
|
|
return sysRole;
|
}
|
|
/**
|
* 管理后台删除角色
|
*
|
* @param params(orgId,id)
|
*/
|
@LogAnnotation(module = AbstractLogModule.DELETE_ROLE)
|
//@PreAuthorize("hasAuthority('back:role:delete')")
|
@DeleteMapping("/roles")
|
@ApiOperation(value = "管理后台删除角色", notes = "管理后台删除角色", httpMethod = "DELETE", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "orgId", value = "orgId", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "id", value = "角色id", required = true, dataType = "String", paramType = "query")
|
})
|
public Map<String,Object> deleteRole(@RequestParam Map<String,Object> params) {
|
return sysRoleService.deleteRole(params);
|
}
|
|
/**
|
* 管理后台修改角色
|
*
|
* @param sysRole
|
* @return
|
*/
|
@LogAnnotation(module = AbstractLogModule.UPDATE_ROLE)
|
//@PreAuthorize("hasAuthority('back:role:update')")
|
@PutMapping("/roles")
|
@ApiOperation(value = "角色修改", notes = "角色表添加模块", httpMethod = "PUT", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "name", value = "姓名", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "code", value = "编号", required = false, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "isSys", value = "是否系统角色", required = false, dataType = "String", paramType = "query")
|
})
|
public SysRole update(@RequestBody SysRole sysRole) {
|
if (StringUtils.isBlank(sysRole.getName())) {
|
throw new IllegalArgumentException("角色名不能为空");
|
}
|
|
sysRoleService.update(sysRole);
|
|
return sysRole;
|
}
|
|
/**
|
* 管理后台给角色分配权限
|
*
|
* @param id
|
* @param permissionIds
|
*/
|
@LogAnnotation(module = AbstractLogModule.SET_PERMISSION)
|
//@PreAuthorize("hasAuthority('back:role:permission:set')")
|
@PostMapping("/roles/{id}/permissions")
|
public Result setPermissionToRole(@PathVariable Long id, @RequestBody Set<Long> permissionIds) {
|
sysRoleService.setPermissionToRole(id, permissionIds);
|
return Result.ok();
|
}
|
|
/**
|
* 获取角色的权限
|
*
|
* @param id
|
* @return
|
*/
|
//@PreAuthorize("hasAnyAuthority('back:role:permission:set','role:permission:byroleid')")
|
@GetMapping("/roles/{id}/permissions")
|
public Set<SysPermission> findPermissionsByRoleId(@PathVariable Long id) {
|
return sysRoleService.findPermissionsByRoleId(id);
|
}
|
|
//@PreAuthorize("hasAuthority('back:role:query')")
|
@GetMapping("/roles/{id}")
|
public SysRole findById(@PathVariable Long id) {
|
return sysRoleService.findById(id);
|
}
|
|
/**
|
* 搜索角色
|
*
|
* @param params
|
* @return
|
*/
|
//@PreAuthorize("hasAuthority('back:role:query')")
|
@GetMapping("/roles")
|
@ApiOperation(value = "角色列表查询", notes = "系统用户角色列表查询", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "orgId", value = "orgId", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "name", value = "角色名称", required = false, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "start", value = "起始页", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "length", value = "每页条数", required = true, dataType = "String", paramType = "query")
|
})
|
public Page<SysRole> findRoles(@RequestParam Map<String, Object> params) {
|
return sysRoleService.findRoles(params);
|
}
|
|
|
@GetMapping("/roles/findRoleList")
|
@ApiOperation(value = "角色下拉列表查询", notes = "角色下拉列表查询", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "", value = "", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "", value = "", required = true, dataType = "String", paramType = "query")
|
})
|
public Map<String,Object> findRoleList(@RequestParam Map<String,Object> params){
|
Map<String,Object> map = new HashMap<>();
|
List<Map<String,Object>> data = sysRoleService.findRoleList(params);
|
if(data.size() > 0){
|
map.put("code",0);
|
map.put("data",data);
|
map.put("message","查询成功!");
|
}else {
|
map.put("code",1);
|
map.put("data","");
|
map.put("message","暂无数据!");
|
}
|
return map;
|
}
|
|
/**
|
* 角色赋菜单权限
|
*/
|
@PostMapping("/roles/saveRoleMenus")
|
@LogAnnotation(module = AbstractLogModule.SET_ROLE)
|
@ApiOperation(value = "角色赋菜单权限", notes = "角色赋菜单权限", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "orgId", value = "角色orgId", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "id", value = "角色Id", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "menuIds", value = "菜单ids,字符串','分割", required = true, dataType = "query", paramType = "query")
|
})
|
public Map<String,Object> saveRoleMenus(@RequestBody Map<String,Object> params) {
|
Map<String,Object> map = new HashMap<>();
|
int status = sysRoleService.saveRoleMenus(params);
|
if(status > 0){
|
map.put("code",0);
|
map.put("message","更新成功!");
|
}else {
|
map.put("code",1);
|
map.put("message","更新失败!");
|
}
|
return map;
|
}
|
|
/**
|
* 系统用户赋权限赋角色
|
*/
|
@PostMapping("/roles/saveUserRoleMens")
|
@LogAnnotation(module = AbstractLogModule.SET_ROLE)
|
@ApiOperation(value = "系统用户赋权限赋角色", notes = "系统用户赋权限赋角色", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "orgId", value = "用户orgId", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "userId", value = "用户名", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "orgName", value = "组织名称", required = true, dataType = "String", paramType = "query"),
|
@ApiImplicitParam(name = "menuIds", value = "菜单ids,字符串','分割", required = true, dataType = "query", paramType = "query")
|
})
|
public Map<String,Object> saveUserRoleMens(@RequestBody Map<String,Object> params){
|
Map<String,Object> map = new HashMap<>();
|
int status = sysRoleService.saveUserRoleMens(params);
|
if(status > 0){
|
map.put("code",0);
|
map.put("message","更新成功!");
|
}else {
|
map.put("code",1);
|
map.put("message","更新失败!");
|
}
|
return map;
|
}
|
}
|