RoleRptController.java 6.9 KB

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