RoleRptController.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. package com.dragoninfo.dcuc.authweb.restcontroller.auth;
  2. import com.dragoninfo.dcuc.app.entity.ApplyInfo;
  3. import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
  4. import com.dragoninfo.dcuc.auth.auth.facade.IRoleAuthInfoFacade;
  5. import com.dragoninfo.dcuc.auth.auth.vo.TreeInfoVO;
  6. import com.dragoninfo.dcuc.auth.sub.dto.AuthOrgDTO;
  7. import com.dragoninfo.dcuc.auth.sub.facade.IAuthOrgInfoFacade;
  8. import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.AppDropDownVo;
  9. import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.AppRoleCalculateVo;
  10. import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.OrgRptOpeVo;
  11. import com.dragoninfo.duceap.core.response.Result;
  12. import com.dragonsoft.duceap.base.entity.search.SearchDTO;
  13. import com.dragonsoft.duceap.base.enums.BooleanEnum;
  14. import com.dragonsoft.duceap.commons.util.string.StringUtils;
  15. import com.dragonsoft.duceap.core.entity.page.PageImpl;
  16. import com.dragonsoft.duceap.core.search.Searchable;
  17. import com.dragonsoft.duceap.core.search.enums.SearchOperator;
  18. import com.dragonsoft.duceap.web.annotation.Permission;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiImplicitParam;
  21. import io.swagger.annotations.ApiImplicitParams;
  22. import io.swagger.annotations.ApiOperation;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.data.domain.Page;
  25. import org.springframework.http.MediaType;
  26. import org.springframework.web.bind.annotation.*;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29. import java.util.Map;
  30. @Api(tags = {"统计报表管理接口"})
  31. @RestController
  32. @RequestMapping(value = "/authsvr/v2/rolerpt")
  33. public class RoleRptController {
  34. /**
  35. * 角色权限信息服务
  36. */
  37. @Autowired
  38. private IRoleAuthInfoFacade roleAuthInfoFacade;
  39. /**
  40. * 机构信息服务
  41. */
  42. @Autowired
  43. private IAuthOrgInfoFacade authOrgInfoFacade;
  44. /**
  45. * 应用信息服务
  46. */
  47. @Autowired
  48. private IApplyInfoFacade applyInfoFacade;
  49. /**
  50. * 角色授权报表列表
  51. *
  52. * @param searchDTO 查询条件
  53. * @return 角色授权报表列表
  54. */
  55. @ApiOperation(value = "角色授权报表列表")
  56. @ApiImplicitParam(name = "searchDTO", value = "查询条件,appId不能为空")
  57. @Permission(value = "role_auth")
  58. @PostMapping(value = "/roleRptList/_search")
  59. public Result<List<TreeInfoVO>> roleRptList(SearchDTO searchDTO) {
  60. Searchable searchable = Searchable.toSearchable(searchDTO);
  61. String appId = searchable.getSearchFilterByKey("appId_eq").getValue().toString();
  62. Page<TreeInfoVO> page = new PageImpl<TreeInfoVO>();
  63. if (StringUtils.isNotEmpty(appId)) {
  64. ApplyInfo applyInfo = applyInfoFacade.applyDetail(appId);
  65. String appOrgCode = applyInfo.getOrgCode();
  66. //机构下的分配情况,经过权限中心导入的应用机构id不是不填项
  67. if(StringUtils.isBlank(appOrgCode)) {
  68. return Result.success(page.getTotalElements(),page.getContent());
  69. }
  70. searchable.addSearchFilter("appOrgCode", SearchOperator.eq, appOrgCode);
  71. page = roleAuthInfoFacade.getRptList(searchable.toSearchDTO());
  72. for (TreeInfoVO treeInfoVO : page.getContent()) {
  73. String orgId = treeInfoVO.getId();
  74. AuthOrgDTO orgInfo = authOrgInfoFacade.get(orgId);
  75. if (orgInfo != null) {
  76. treeInfoVO.setCode(orgInfo.getCode());
  77. treeInfoVO.setName(orgInfo.getFullName());
  78. }
  79. }
  80. }
  81. return Result.success(page.getTotalElements(), page.getContent());
  82. }
  83. /**
  84. * 获取应用角色配额统计信息
  85. *
  86. * @param appId 应用id
  87. * @return 应用角色配额统计信息
  88. */
  89. @ApiOperation(value = "角色授权报表列表")
  90. @ApiImplicitParam(name = "appId", value = "应用id")
  91. @Permission(value = "role_auth")
  92. @GetMapping(value = "/getRoleQuotasInfo/{appId}")
  93. public Result<AppRoleCalculateVo> getRoleTjInfo(@PathVariable("appId") String appId) {
  94. AppRoleCalculateVo vo = new AppRoleCalculateVo();
  95. ApplyInfo applyInfo = applyInfoFacade.applyDetail(appId);
  96. String orgCode = applyInfo.getOrgCode();
  97. //主客体授权版本,应用所属机构id可为空
  98. if(StringUtils.isBlank(orgCode)) {
  99. return Result.success(vo);
  100. }
  101. Map<String, Object> resultMap = roleAuthInfoFacade.getRoleTjInfo(appId, orgCode);
  102. Object roleNumsObj = resultMap.get("ROLENUMS");
  103. Object initNumsObj = resultMap.get("INITNUMS");
  104. Integer roleNums = roleNumsObj == null ? 0 : (Integer) roleNumsObj;
  105. Integer initNums = initNumsObj == null ? 0 : (Integer) initNumsObj;
  106. vo.setRoleNums(roleNums);
  107. vo.setInitNums(initNums);
  108. vo.setAppId(appId);
  109. vo.setOrgId(orgCode);
  110. return Result.success(vo);
  111. }
  112. /**
  113. * 根据选择机构展现该机构下所有机构报表信息
  114. *
  115. * @param
  116. * @return 机构下所有机构的报表信息
  117. */
  118. @ApiOperation(value = "根据选择机构展现该机构下所有机构报表信息")
  119. @ApiImplicitParams({
  120. @ApiImplicitParam(name = "appId", value = "应用id", required = true),
  121. @ApiImplicitParam(name = "orgId", value = "机构id", required = false),
  122. @ApiImplicitParam(name = "isInit", value = "是否初始化 true 初始化 false不是初始化", required = false)
  123. })
  124. @Permission(value = "role_auth")
  125. @PostMapping(value = "/orgRptList/_search", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  126. public Result<List<TreeInfoVO>> orgRptList(@RequestBody OrgRptOpeVo orgRptOpeVo) {
  127. String appId = orgRptOpeVo.getAppId();
  128. String orgId = orgRptOpeVo.getOrgId();
  129. Boolean isInit = orgRptOpeVo.getIsInit();
  130. boolean init = isInit != null && isInit.booleanValue();
  131. List<TreeInfoVO> orgList = roleAuthInfoFacade.getRptOrgListByPid(appId, orgId, init);
  132. return Result.success(orgList);
  133. }
  134. /**
  135. * 获取所有应用
  136. * todo 该接口是否合理
  137. *
  138. * @return 应用名列表
  139. */
  140. @ApiOperation(value = "获取所有应用")
  141. @ApiImplicitParam(name = "deleted", value = "是否删除 0:未删除 1:已删除", required = false)
  142. @GetMapping(value = "/getAppName")
  143. public Result<List<AppDropDownVo>> getAppName(@RequestParam(value = "deleted", required = false) String deleted) {
  144. //根据当前登录用户获取所属机构的应用列表
  145. List<ApplyInfo> applyInfoList = applyInfoFacade.getAllList();
  146. List<AppDropDownVo> result = new ArrayList<>();
  147. for (ApplyInfo applyInfo : applyInfoList) {
  148. if (BooleanEnum.TRUE.value.equals(applyInfo.getDeleted())) {
  149. continue;
  150. }
  151. AppDropDownVo vo = new AppDropDownVo();
  152. vo.setCode(applyInfo.getId());
  153. vo.setValue(applyInfo.getApplyName());
  154. result.add(vo);
  155. }
  156. return Result.success(result);
  157. }
  158. }