diff --git a/orgmanax-api/src/test/resources/http/orgjob/org-job.http b/orgmanax-api/src/test/resources/http/orgjob/org-job.http index c57ff61..7c36bf1 100644 --- a/orgmanax-api/src/test/resources/http/orgjob/org-job.http +++ b/orgmanax-api/src/test/resources/http/orgjob/org-job.http @@ -45,7 +45,7 @@ Accept: application/json ### # 查询 -POST {{host}}/api/job/page +POST {{host}}/api/job/list Content-Type: application/json Accept: application/json diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/job/dto/OrgJobDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/job/dto/OrgJobDTO.java index f011356..abfb978 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/job/dto/OrgJobDTO.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/job/dto/OrgJobDTO.java @@ -135,10 +135,9 @@ public class OrgJobDTO implements Serializable { /** * 角色信息 - * todo 2024年12月30日 已和周敏确认,暂不用该字段 * 二期才会用到此字段 */ - //private List saasRoles; + private List saasRoles; public Set mergeAndDistinctRolesIds() { Set roleIds = Sets.newHashSet(); diff --git a/orgmanax-infra/pom.xml b/orgmanax-infra/pom.xml index bfaea32..9f422d9 100644 --- a/orgmanax-infra/pom.xml +++ b/orgmanax-infra/pom.xml @@ -115,10 +115,10 @@ ${revision} - + \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/tyr/RoleGateway.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/tyr/RoleGateway.java index c0464a0..fc925b3 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/tyr/RoleGateway.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/tyr/RoleGateway.java @@ -1,11 +1,15 @@ package cn.axzo.orgmanax.infra.client.tyr; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.infra.client.RpcWrapper; +import cn.axzo.tyr.feign.api.RoleApi; +import cn.axzo.tyr.feign.req.PageRoleReq; +import cn.axzo.tyr.feign.resp.RoleResp; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** - * todo 暂时注释,tyr不上线 * @author syl * @date 2024/12/23 */ @@ -14,9 +18,9 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor public class RoleGateway { -// private final RoleApi roleApi; -// -// public PageResp page(PageRoleReq req) { -// return RpcWrapper.wrapApiResult(() -> roleApi.page(req)); -// } + private final RoleApi roleApi; + + public PageResp page(PageRoleReq req) { + return RpcWrapper.wrapApiResult(() -> roleApi.page(req)); + } } diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/util/RpcWrapper.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/util/RpcWrapper.java deleted file mode 100644 index 45e1eb0..0000000 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/util/RpcWrapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package cn.axzo.orgmanax.infra.client.util; - -import cn.axzo.foundation.exception.BusinessException; -import cn.axzo.orgmanax.common.config.BizResultCode; -import cn.hutool.core.convert.Convert; -import cn.hutool.http.HttpStatus; -import java.util.Objects; -import java.util.function.Supplier; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -public class RpcWrapper { - - /** - * Api result 返回 - * @param supplier - * @return - * @param - */ - public static T wrapApiResult(Supplier> supplier) { - cn.axzo.foundation.result.ApiResult result = supplier.get(); - if (result == null) { - throw new BusinessException(BizResultCode.RPC_ERROR); - } - if (!Objects.equals(result.getCode(), HttpStatus.HTTP_OK)) { - throw new BusinessException(Convert.toStr(result.getCode()), result.getMsg(), null); - } - return result.getData(); - } -} diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orgjob/service/impl/OrgJobServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orgjob/service/impl/OrgJobServiceImpl.java index 26864e7..26e04d6 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orgjob/service/impl/OrgJobServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orgjob/service/impl/OrgJobServiceImpl.java @@ -11,6 +11,7 @@ import cn.axzo.orgmanax.dto.cooperateship.req.ListOrgCooperateShipReq; import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupRelationDTO; +import cn.axzo.orgmanax.dto.job.dto.RoleDTO; import cn.axzo.orgmanax.dto.job.enums.OrgJobGroupFlagEnum; import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum; import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq; @@ -27,6 +28,8 @@ import cn.axzo.orgmanax.server.orgjob.service.OrgJobService; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobGroupPageParam; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobGroupRelationPageParam; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam; +import cn.axzo.tyr.feign.req.PageRoleReq; +import cn.axzo.tyr.feign.resp.RoleResp; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; @@ -105,8 +108,8 @@ public class OrgJobServiceImpl implements OrgJobService { buildOrgGroup4OrgJob(orgJobs.getData()); } if (BooleanUtils.isTrue(param.getNeedSaasRole())) { - // todo 设置角色信息 - // buildSaasRole4OrgJob(orgJobs.getData()); + // 设置角色信息 + buildSaasRole4OrgJob(orgJobs.getData()); } return orgJobs; } @@ -177,48 +180,47 @@ public class OrgJobServiceImpl implements OrgJobService { return flags; } - // todo 暂时注释,二期才使用 -// private void buildSaasRole4OrgJob(List orgJobs) { -// Set roleIds = orgJobs.stream() -// .flatMap(e -> e.mergeAndDistinctRolesIds().stream()) -// .collect(Collectors.toSet()); -// Map saasRoleMap = listSaasRoles(roleIds); -// if (CollUtil.isEmpty(saasRoleMap)) { -// return; -// } -// orgJobs.forEach(e -> { -// Set mergedRoleIds = e.mergeAndDistinctRolesIds(); -// if (CollUtil.isNotEmpty(mergedRoleIds)) { -// List roles = mergedRoleIds.stream() -// .map(saasRoleMap::get) -// .filter(Objects::nonNull) -// .collect(Collectors.toList()); -// e.setSaasRoles(BeanUtil.copyToList(roles, RoleDTO.class)); -// } -// }); -// } + private void buildSaasRole4OrgJob(List orgJobs) { + Set roleIds = orgJobs.stream() + .flatMap(e -> e.mergeAndDistinctRolesIds().stream()) + .collect(Collectors.toSet()); + Map saasRoleMap = listSaasRoles(roleIds); + if (CollUtil.isEmpty(saasRoleMap)) { + return; + } + orgJobs.forEach(e -> { + Set mergedRoleIds = e.mergeAndDistinctRolesIds(); + if (CollUtil.isNotEmpty(mergedRoleIds)) { + List roles = mergedRoleIds.stream() + .map(saasRoleMap::get) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + e.setSaasRoles(BeanUtil.copyToList(roles, RoleDTO.class)); + } + }); + } -// private Map listSaasRoles(Set roleIds) { -// if (CollUtil.isEmpty(roleIds)) { -// return Collections.emptyMap(); -// } -// List roles = new ArrayList<>(); -// PageRoleReq param = PageRoleReq.builder().roleIds(roleIds).build(); -// -// PageResp rolePage; -// int pageNumber = 0; -// param.setPageSize(JOB_PAGE_SIZE); -// do { -// param.setPage(++pageNumber); -// rolePage = roleGateway.page(param); -// if (CollUtil.isNotEmpty(rolePage.getData())) { -// roles.addAll(rolePage.getData()); -// } -// } while (rolePage.hasNext()); -// -// return roles.stream() -// .collect(Collectors.toMap(RoleResp::getRoleId, Function.identity(), (oldVal, newVal) -> oldVal)); -// } + private Map listSaasRoles(Set roleIds) { + if (CollUtil.isEmpty(roleIds)) { + return Collections.emptyMap(); + } + List roles = new ArrayList<>(); + PageRoleReq param = PageRoleReq.builder().roleIds(roleIds).build(); + + PageResp rolePage; + int pageNumber = 0; + param.setPageSize(JOB_PAGE_SIZE); + do { + param.setPage(++pageNumber); + rolePage = roleGateway.page(param); + if (CollUtil.isNotEmpty(rolePage.getData())) { + roles.addAll(rolePage.getData()); + } + } while (rolePage.hasNext()); + + return roles.stream() + .collect(Collectors.toMap(RoleResp::getRoleId, Function.identity(), (oldVal, newVal) -> oldVal)); + } private void buildOrgGroup4OrgJob(List orgJobs) { // 查询岗位与分组的关联关系