feat(REQ-3488): 岗位恢复查询角色信息相关逻辑
This commit is contained in:
parent
9025aa237c
commit
a623410550
@ -45,7 +45,7 @@ Accept: application/json
|
||||
|
||||
###
|
||||
# 查询
|
||||
POST {{host}}/api/job/page
|
||||
POST {{host}}/api/job/list
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
|
||||
|
||||
@ -135,10 +135,9 @@ public class OrgJobDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 角色信息
|
||||
* todo 2024年12月30日 已和周敏确认,暂不用该字段
|
||||
* 二期才会用到此字段
|
||||
*/
|
||||
//private List<RoleDTO> saasRoles;
|
||||
private List<RoleDTO> saasRoles;
|
||||
|
||||
public Set<Long> mergeAndDistinctRolesIds() {
|
||||
Set<Long> roleIds = Sets.newHashSet();
|
||||
|
||||
@ -115,10 +115,10 @@
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!--<dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.tyr</groupId>
|
||||
<artifactId>tyr-client</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>-->
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -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<RoleResp> page(PageRoleReq req) {
|
||||
// return RpcWrapper.wrapApiResult(() -> roleApi.page(req));
|
||||
// }
|
||||
private final RoleApi roleApi;
|
||||
|
||||
public PageResp<RoleResp> page(PageRoleReq req) {
|
||||
return RpcWrapper.wrapApiResult(() -> roleApi.page(req));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 <T>
|
||||
*/
|
||||
public static <T> T wrapApiResult(Supplier<cn.axzo.foundation.result.ApiResult<T>> supplier) {
|
||||
cn.axzo.foundation.result.ApiResult<T> 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();
|
||||
}
|
||||
}
|
||||
@ -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<OrgJobDTO> orgJobs) {
|
||||
// Set<Long> roleIds = orgJobs.stream()
|
||||
// .flatMap(e -> e.mergeAndDistinctRolesIds().stream())
|
||||
// .collect(Collectors.toSet());
|
||||
// Map<Long, RoleResp> saasRoleMap = listSaasRoles(roleIds);
|
||||
// if (CollUtil.isEmpty(saasRoleMap)) {
|
||||
// return;
|
||||
// }
|
||||
// orgJobs.forEach(e -> {
|
||||
// Set<Long> mergedRoleIds = e.mergeAndDistinctRolesIds();
|
||||
// if (CollUtil.isNotEmpty(mergedRoleIds)) {
|
||||
// List<RoleResp> roles = mergedRoleIds.stream()
|
||||
// .map(saasRoleMap::get)
|
||||
// .filter(Objects::nonNull)
|
||||
// .collect(Collectors.toList());
|
||||
// e.setSaasRoles(BeanUtil.copyToList(roles, RoleDTO.class));
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
private void buildSaasRole4OrgJob(List<OrgJobDTO> orgJobs) {
|
||||
Set<Long> roleIds = orgJobs.stream()
|
||||
.flatMap(e -> e.mergeAndDistinctRolesIds().stream())
|
||||
.collect(Collectors.toSet());
|
||||
Map<Long, RoleResp> saasRoleMap = listSaasRoles(roleIds);
|
||||
if (CollUtil.isEmpty(saasRoleMap)) {
|
||||
return;
|
||||
}
|
||||
orgJobs.forEach(e -> {
|
||||
Set<Long> mergedRoleIds = e.mergeAndDistinctRolesIds();
|
||||
if (CollUtil.isNotEmpty(mergedRoleIds)) {
|
||||
List<RoleResp> roles = mergedRoleIds.stream()
|
||||
.map(saasRoleMap::get)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
e.setSaasRoles(BeanUtil.copyToList(roles, RoleDTO.class));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// private Map<Long, RoleResp> listSaasRoles(Set<Long> roleIds) {
|
||||
// if (CollUtil.isEmpty(roleIds)) {
|
||||
// return Collections.emptyMap();
|
||||
// }
|
||||
// List<RoleResp> roles = new ArrayList<>();
|
||||
// PageRoleReq param = PageRoleReq.builder().roleIds(roleIds).build();
|
||||
//
|
||||
// PageResp<RoleResp> 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<Long, RoleResp> listSaasRoles(Set<Long> roleIds) {
|
||||
if (CollUtil.isEmpty(roleIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<RoleResp> roles = new ArrayList<>();
|
||||
PageRoleReq param = PageRoleReq.builder().roleIds(roleIds).build();
|
||||
|
||||
PageResp<RoleResp> 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<OrgJobDTO> orgJobs) {
|
||||
// 查询岗位与分组的关联关系
|
||||
|
||||
Loading…
Reference in New Issue
Block a user