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 deleteRole(@RequestParam Map 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 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 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 findRoles(@RequestParam Map 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 findRoleList(@RequestParam Map params){ Map map = new HashMap<>(); List> 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 saveRoleMenus(@RequestBody Map params) { Map 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 saveUserRoleMens(@RequestBody Map params){ Map 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; } }