package cn.com.goldenwater.dcproj.controller.system; import cn.com.goldenwater.core.web.BaseController; import cn.com.goldenwater.core.web.BaseResponse; import cn.com.goldenwater.dcproj.dto.BisInspAllRelationPersPrivDto; import cn.com.goldenwater.dcproj.dto.PrivDto; import cn.com.goldenwater.dcproj.dto.PrivSysDto; import cn.com.goldenwater.dcproj.enums.EnumBean; import cn.com.goldenwater.dcproj.model.Priv; import cn.com.goldenwater.dcproj.param.GetPrivByRoleIdParam; import cn.com.goldenwater.dcproj.param.GetPrivByUserIdParam; import cn.com.goldenwater.dcproj.param.PrivParam; import cn.com.goldenwater.dcproj.param.RolePrivParam; import cn.com.goldenwater.dcproj.service.PrivService; import cn.com.goldenwater.dcproj.service.RolePrivService; import cn.com.goldenwater.dcproj.target.Authority; import cn.com.goldenwater.dcproj.target.VerifyBean; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * @author lune * @date 2018-2-13 */ @Api(value = "权限管理", tags = "002权限管理") @RestController @RequestMapping("/sys/privs") public class PrivController extends BaseController { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private PrivService privService; @Autowired private RolePrivService rolePrivService; @ApiOperation(value = "添加权限") @RequestMapping(value = "/insert", method = RequestMethod.POST) public BaseResponse insert(@ApiParam(name = "priv", value = "Priv", required = true) @RequestBody Priv priv) throws Exception { priv.setId(UuidUtil.uuid()); Priv p = privService.add(priv); return buildSuccessResponse(p); } @ApiOperation(value = "根据ID删除权限") @RequestMapping(value = "/{id}", method = RequestMethod.POST) public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) throws Exception { privService.remove(id); return buildSuccessResponse(); } @ApiOperation(value = "更新权限信息") @RequestMapping(value = "/update", method = RequestMethod.POST) public BaseResponse update(@ApiParam(name = "priv", value = "Priv", required = true) @RequestBody Priv priv) throws Exception { Assert.notNull(priv.getId(), "主键id为必填参数"); Priv p = privService.modify(priv); return buildSuccessResponse(p); } @ApiOperation(value = "根据ID获取权限(单表)") @RequestMapping(value = "/{id}", method = RequestMethod.GET) public BaseResponse get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) { Priv priv = privService.get(id); return buildSuccessResponse(priv); } @ApiOperation(value = "根据ID获取子权限") @RequestMapping(value = "/list-by-parent/{id}", method = RequestMethod.GET) public BaseResponse> getChildren(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) { Assert.notNull(id, "ID为必填参数"); PrivParam privParam = new PrivParam(); privParam.setParentId(id); List list = privService.findList(privParam); return buildSuccessResponse(list); } @ApiOperation(value = "分页获取权限-不包含分页信息") @RequestMapping(value = "/page", method = RequestMethod.POST) public BaseResponse> getPagePriv(@ApiParam(name = "privParam", value = "条件", required = false) @RequestBody(required = false) PrivParam privParam) { List list = privService.findPageStatic(privParam); return buildSuccessResponse(list); } @ApiOperation(value = "分页获取权限-包含分页信息") @RequestMapping(value = "/pageInfoCascades", method = RequestMethod.POST) public BaseResponse> getPagePrivInfo(@ApiParam(name = "privParam", value = "条件", required = false) @RequestBody PrivParam privParam) { PageInfo page = privService.findPageInfoStatic(privParam); return buildSuccessResponse(page); } @ApiOperation(value = "分页获取权限列表-包含分页信息") @RequestMapping(value = "/pageInfo", method = RequestMethod.POST) public BaseResponse> getMenuPageInfo(@ApiParam(name = "privParam", value = "PrivParam", required = false) @RequestBody PrivParam privParam) { PageInfo page = privService.findPageInfo(privParam); return buildSuccessResponse(page); } @VerifyBean @ApiOperation(value = "根据角色ID获取权限树,角色已有权限CHECKED=TRUE") @RequestMapping(value = "/tree-by-role", method = RequestMethod.POST) public BaseResponse> getPrivTreeByRoleId(@RequestBody GetPrivByRoleIdParam p) throws Exception { PageInfo list = privService.findTreeByRoleId(p); return buildSuccessResponse(list); } @VerifyBean @ApiOperation(value = "根据角色ID获取权限树,角色已有权限CHECKED=TRUE") @RequestMapping(value = "/listByRoleId", method = RequestMethod.POST) public BaseResponse> listByRoleId(@RequestBody GetPrivByRoleIdParam p) { return buildSuccessResponse(privService.listByRoleId(p)); } @VerifyBean @ApiOperation(value = "根据角色ID获取权限树,角色已有权限CHECKED=TRUE") @RequestMapping(value = "/tree-shape-by-role", method = RequestMethod.POST) public BaseResponse> getPrivTreeShapeByRoleId(@RequestBody GetPrivByRoleIdParam p) throws Exception { PageInfo list = privService.findTreeShapeByRoleId(p); return buildSuccessResponse(list); } @ApiOperation(value = "获取所有权限") @RequestMapping(value = "/findList", method = RequestMethod.POST) public BaseResponse> findList(@ApiParam(name = "privParam", value = "PrivParam", required = false) @RequestBody PrivParam privParam) { List list = privService.findList(privParam); return buildSuccessResponse(list); } @ApiOperation(value = "根据角色ID和权限ID删除该角色对应的权限(可以传多个)") @RequestMapping(value = "/delete-role-priv", method = RequestMethod.POST) public BaseResponse deleteByRole(@ApiParam(name = "paramList", value = "paramList(数组)", required = true) @RequestBody List paramList) { int ret = rolePrivService.deleteList(paramList); return buildSuccessResponse(); } @ApiOperation(value = "将权限ID赋给角色ID(可以传多个)") @RequestMapping(value = "/insert-role-priv", method = RequestMethod.POST) public BaseResponse addRolePriv(@ApiParam(name = "paramList", value = "paramList(数组)", required = true) @RequestBody List paramList) { int ret = rolePrivService.addRolePriv(paramList); return buildSuccessResponse(); } @Authority @ApiOperation(value = "更新角色与权限的关联关系") @RequestMapping(value = "/updateRolePriv", method = RequestMethod.POST) public BaseResponse updateRolePriv(@ApiParam(name = "string", value = "privIds", required = true) @RequestBody List privIds, String roleId) { Assert.notEmpty(privIds, "权限Id集合不能为空"); Assert.notNull(roleId, "角色Id不能为空"); ArrayList rolePrivParams = new ArrayList<>(); for (String privId : privIds) { RolePrivParam rolePrivParam = new RolePrivParam(); rolePrivParam.setPrivId(privId); rolePrivParam.setRoleId(roleId); rolePrivParams.add(rolePrivParam); } RolePrivParam param = new RolePrivParam(); param.setRoleId(roleId); rolePrivService.updateRolePriv(rolePrivParams, param); return buildSuccessResponse(); } @ApiOperation(value = "根据用户id获取权限") @RequestMapping(value = "/getPrivByUserId", method = RequestMethod.POST) public BaseResponse getPrivByUserId(@RequestBody GetPrivByUserIdParam p) { return buildSuccessResponse(privService.getPrivByUserId(p)); } @ApiOperation(value = "根据用户id获取系统标识") @RequestMapping(value = "/getSysFlagByUserId", method = RequestMethod.GET) public BaseResponse> getSysFlagByUserId(@RequestParam("userId") String userId) throws Exception { List dto = privService.getSysFlagByUserId(userId); return buildSuccessResponse(dto); } @Authority @VerifyBean @ApiOperation(value = "根据用户id获取图片列表") @RequestMapping(value = "/getPrivViewByUserId", method = RequestMethod.POST) public BaseResponse> getPrivViewByUserId(@RequestBody GetPrivByUserIdParam p) throws Exception { p.setOrgId(getCurrentOrgId()); List dto = privService.getPrivViewByUserId(p); return buildSuccessResponse(dto); } }