123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- package com.dragoninfo.dcuc.authweb.restcontroller.auth;
- import com.dragoninfo.dcuc.app.entity.ApplyInfo;
- import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
- import com.dragoninfo.dcuc.auth.auth.facade.IRoleAuthInfoFacade;
- import com.dragoninfo.dcuc.auth.auth.vo.TreeInfoVO;
- import com.dragoninfo.dcuc.auth.sub.dto.AuthOrgDTO;
- import com.dragoninfo.dcuc.auth.sub.facade.IAuthOrgInfoFacade;
- import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.AppDropDownVo;
- import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.AppRoleCalculateVo;
- import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.OrgRptOpeVo;
- import com.dragoninfo.duceap.core.response.Result;
- import com.dragonsoft.duceap.base.entity.search.SearchDTO;
- import com.dragonsoft.duceap.base.enums.BooleanEnum;
- import com.dragonsoft.duceap.commons.util.string.StringUtils;
- import com.dragonsoft.duceap.core.entity.page.PageImpl;
- import com.dragonsoft.duceap.core.search.Searchable;
- import com.dragonsoft.duceap.core.search.enums.SearchOperator;
- import com.dragonsoft.duceap.web.annotation.Permission;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.http.MediaType;
- import org.springframework.web.bind.annotation.*;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- @Api(tags = {"统计报表管理接口"})
- @RestController
- @RequestMapping(value = "/authsvr/v2/rolerpt")
- public class RoleRptController {
- /**
- * 角色权限信息服务
- */
- @Autowired
- private IRoleAuthInfoFacade roleAuthInfoFacade;
- /**
- * 机构信息服务
- */
- @Autowired
- private IAuthOrgInfoFacade authOrgInfoFacade;
- /**
- * 应用信息服务
- */
- @Autowired
- private IApplyInfoFacade applyInfoFacade;
- /**
- * 角色授权报表列表
- *
- * @param searchDTO 查询条件
- * @return 角色授权报表列表
- */
- @ApiOperation(value = "角色授权报表列表")
- @ApiImplicitParam(name = "searchDTO", value = "查询条件,appId不能为空")
- @Permission(value = "role_auth")
- @PostMapping(value = "/roleRptList/_search")
- public Result<List<TreeInfoVO>> roleRptList(SearchDTO searchDTO) {
- Searchable searchable = Searchable.toSearchable(searchDTO);
- String appId = searchable.getSearchFilterByKey("appId_eq").getValue().toString();
- Page<TreeInfoVO> page = new PageImpl<TreeInfoVO>();
- if (StringUtils.isNotEmpty(appId)) {
- ApplyInfo applyInfo = applyInfoFacade.applyDetail(appId);
- String appOrgCode = applyInfo.getOrgCode();
- //机构下的分配情况,经过权限中心导入的应用机构id不是不填项
- if(StringUtils.isBlank(appOrgCode)) {
- return Result.success(page.getTotalElements(),page.getContent());
- }
- searchable.addSearchFilter("appOrgCode", SearchOperator.eq, appOrgCode);
- page = roleAuthInfoFacade.getRptList(searchable.toSearchDTO());
- for (TreeInfoVO treeInfoVO : page.getContent()) {
- String orgId = treeInfoVO.getId();
- AuthOrgDTO orgInfo = authOrgInfoFacade.get(orgId);
- if (orgInfo != null) {
- treeInfoVO.setCode(orgInfo.getCode());
- treeInfoVO.setName(orgInfo.getFullName());
- }
- }
- }
- return Result.success(page.getTotalElements(), page.getContent());
- }
- /**
- * 获取应用角色配额统计信息
- *
- * @param appId 应用id
- * @return 应用角色配额统计信息
- */
- @ApiOperation(value = "角色授权报表列表")
- @ApiImplicitParam(name = "appId", value = "应用id")
- @Permission(value = "role_auth")
- @GetMapping(value = "/getRoleQuotasInfo/{appId}")
- public Result<AppRoleCalculateVo> getRoleTjInfo(@PathVariable("appId") String appId) {
- AppRoleCalculateVo vo = new AppRoleCalculateVo();
- ApplyInfo applyInfo = applyInfoFacade.applyDetail(appId);
- String orgCode = applyInfo.getOrgCode();
- //主客体授权版本,应用所属机构id可为空
- if(StringUtils.isBlank(orgCode)) {
- return Result.success(vo);
- }
- Map<String, Object> resultMap = roleAuthInfoFacade.getRoleTjInfo(appId, orgCode);
- Object roleNumsObj = resultMap.get("ROLENUMS");
- Object initNumsObj = resultMap.get("INITNUMS");
- Integer roleNums = roleNumsObj == null ? 0 : (Integer) roleNumsObj;
- Integer initNums = initNumsObj == null ? 0 : (Integer) initNumsObj;
- vo.setRoleNums(roleNums);
- vo.setInitNums(initNums);
- vo.setAppId(appId);
- vo.setOrgId(orgCode);
- return Result.success(vo);
- }
- /**
- * 根据选择机构展现该机构下所有机构报表信息
- *
- * @param
- * @return 机构下所有机构的报表信息
- */
- @ApiOperation(value = "根据选择机构展现该机构下所有机构报表信息")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "appId", value = "应用id", required = true),
- @ApiImplicitParam(name = "orgId", value = "机构id", required = false),
- @ApiImplicitParam(name = "isInit", value = "是否初始化 true 初始化 false不是初始化", required = false)
- })
- @Permission(value = "role_auth")
- @PostMapping(value = "/orgRptList/_search", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
- public Result<List<TreeInfoVO>> orgRptList(@RequestBody OrgRptOpeVo orgRptOpeVo) {
- String appId = orgRptOpeVo.getAppId();
- String orgId = orgRptOpeVo.getOrgId();
- Boolean isInit = orgRptOpeVo.getIsInit();
- boolean init = isInit != null && isInit.booleanValue();
- List<TreeInfoVO> orgList = roleAuthInfoFacade.getRptOrgListByPid(appId, orgId, init);
- return Result.success(orgList);
- }
- /**
- * 获取所有应用
- * todo 该接口是否合理
- *
- * @return 应用名列表
- */
- @ApiOperation(value = "获取所有应用")
- @ApiImplicitParam(name = "deleted", value = "是否删除 0:未删除 1:已删除", required = false)
- @GetMapping(value = "/getAppName")
- public Result<List<AppDropDownVo>> getAppName(@RequestParam(value = "deleted", required = false) String deleted) {
- //根据当前登录用户获取所属机构的应用列表
- List<ApplyInfo> applyInfoList = applyInfoFacade.getAllList();
- List<AppDropDownVo> result = new ArrayList<>();
- for (ApplyInfo applyInfo : applyInfoList) {
- if (BooleanEnum.TRUE.value.equals(applyInfo.getDeleted())) {
- continue;
- }
- AppDropDownVo vo = new AppDropDownVo();
- vo.setCode(applyInfo.getId());
- vo.setValue(applyInfo.getApplyName());
- result.add(vo);
- }
- return Result.success(result);
- }
- }
|