feat:[REQ-3282] 引入workspace v2 sdk
This commit is contained in:
parent
3d4ce5f422
commit
748c52386a
@ -102,6 +102,12 @@
|
||||
<artifactId>hutool-all</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.axzo.orgmanax</groupId>
|
||||
<artifactId>orgmanax-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 二方SDK -->
|
||||
<dependency>
|
||||
<groupId>cn.axzo.apollo</groupId>
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
package cn.axzo.orgmanax.infra.client.core;
|
||||
|
||||
import cn.axzo.foundation.exception.BusinessException;
|
||||
import cn.axzo.foundation.result.ApiResult;
|
||||
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;
|
||||
|
||||
public class RpcWrapper {
|
||||
|
||||
/**
|
||||
* Api result 返回
|
||||
* @param supplier
|
||||
* @return
|
||||
* @param <T>
|
||||
*/
|
||||
public static <T> T wrapApiResult(Supplier<ApiResult<T>> supplier) {
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,23 +1,46 @@
|
||||
package cn.axzo.orgmanax.infra.client.workspace;
|
||||
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.feign.WorkspaceV2Api;
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceDetailReq;
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceUpsertReq;
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.resp.WorkspaceDetailResp;
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.resp.WorkspaceUpsertResp;
|
||||
import cn.axzo.orgmanax.infra.client.core.RpcWrapper;
|
||||
import cn.axzo.orgmanax.infra.client.workspace.dto.Workspace;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TODO liuyang
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class WorkspaceGateway {
|
||||
|
||||
private final WorkspaceV2Api workspaceV2Api;
|
||||
|
||||
/**
|
||||
* 更新和新增
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
public WorkspaceUpsertResp upsert(WorkspaceUpsertReq request) {
|
||||
return RpcWrapper.wrapApiResult(() -> workspaceV2Api.upsert(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取详情
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
public WorkspaceDetailResp getDetail(WorkspaceDetailReq request) {
|
||||
return RpcWrapper.wrapApiResult(() -> workspaceV2Api.detail(request));
|
||||
}
|
||||
|
||||
public Workspace getWorkspace(Long id) {
|
||||
return listWorkspaces(ListWorkspaceReq.builder().id(id).build()).stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.orgmanax.server.cooperateship.service.impl;
|
||||
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceDetailReq;
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.resp.WorkspaceDetailResp;
|
||||
import cn.axzo.foundation.event.support.Event;
|
||||
import cn.axzo.foundation.event.support.producer.EventProducer;
|
||||
import cn.axzo.foundation.exception.Axssert;
|
||||
@ -60,7 +62,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
|
||||
.orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("部门不存在{}", req.getOrganizationalNodeId()));
|
||||
Axssert.check(node.isTopNode(), BizResultCode.INVALID_PARAM, "只有顶级节点才能添加协同关系");
|
||||
// workspace check
|
||||
Workspace workspace = workspaceGateway.getWorkspace(req.getWorkspaceId());
|
||||
WorkspaceDetailResp workspace = workspaceGateway.getDetail(WorkspaceDetailReq.builder().id(req.getWorkspaceId()).build());
|
||||
Axssert.checkNonNull(workspace, "工作台不存在{}", req.getWorkspaceId());
|
||||
CooperateShipQueryRepository.CooperateShipResp parentShip = null;
|
||||
if (!ALLOWED_TOP_COOPERATE_TYPES.contains(req.getCooperateType())) {
|
||||
@ -78,7 +80,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
|
||||
SaasCooperateShip cooperateShip = SaasCooperateShip.builder()
|
||||
.parentId(req.getParentId())
|
||||
.workspaceId(workspace.getId())
|
||||
.workspaceType(workspace.getType())
|
||||
.workspaceType(workspace.getWorkspaceType())
|
||||
.workspaceName(workspace.getName())
|
||||
.status(CooperateShipStatusEnum.PRESENT.getCode())
|
||||
.joinAt(new Date())
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
package cn.axzo.orgmanax.server.unit.service.impl;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceUpsertReq;
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.orgmanax.api.node.req.ProcessNodeReq;
|
||||
import cn.axzo.orgmanax.api.unit.req.ListUnitReq;
|
||||
import cn.axzo.orgmanax.api.unit.resp.OrgUnitDTO;
|
||||
import cn.axzo.orgmanax.infra.client.workspace.WorkspaceGateway;
|
||||
import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNode;
|
||||
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalUnit;
|
||||
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository;
|
||||
@ -33,6 +37,7 @@ public class UnitServiceImpl implements UnitService {
|
||||
private final NodeService nodeService;
|
||||
private final UnitQueryRepository unitQueryRepository;
|
||||
private final TransactionTemplate transactionTemplate;
|
||||
private final WorkspaceGateway workspaceGateway;
|
||||
@Override
|
||||
public CreateUnitResp create(CreateUnitReq req) {
|
||||
|
||||
@ -57,6 +62,38 @@ public class UnitServiceImpl implements UnitService {
|
||||
|
||||
if (BooleanUtil.isTrue(req.getCreateWorkspace())){
|
||||
// TODO: 创建租户 @liuyang
|
||||
WorkspaceUpsertReq workspaceUpsertReq = new WorkspaceUpsertReq();
|
||||
workspaceUpsertReq.setParentId(0L);
|
||||
workspaceUpsertReq.setType(1);
|
||||
workspaceUpsertReq.setName(req.getName());
|
||||
// todo 从哪里取
|
||||
workspaceUpsertReq.setTenantId(0L);
|
||||
workspaceUpsertReq.setOrganizationUnitId(unit.getId());
|
||||
// todo 从哪里取
|
||||
workspaceUpsertReq.setFences("");
|
||||
workspaceUpsertReq.setContactName(req.getLegalName());
|
||||
workspaceUpsertReq.setContactPhone(req.getLegalPhone());
|
||||
// todo 从哪里取
|
||||
workspaceUpsertReq.setTag("");
|
||||
workspaceUpsertReq.setProvinceCode(req.getProvinceCode());
|
||||
workspaceUpsertReq.setCityCode(req.getCityCode());
|
||||
workspaceUpsertReq.setStreetName("");
|
||||
workspaceUpsertReq.setStreetCode("");
|
||||
workspaceUpsertReq.setAreaCode(req.getAreaCode());
|
||||
workspaceUpsertReq.setProvinceName(req.getProvinceName());
|
||||
workspaceUpsertReq.setCityName(req.getCityName());
|
||||
workspaceUpsertReq.setAreaName(req.getAreaName());
|
||||
workspaceUpsertReq.setWorkSpaceIneffectiveDate(new Date());
|
||||
// todo 从哪里取
|
||||
workspaceUpsertReq.setWorkspaceColor("");
|
||||
workspaceUpsertReq.setLogo(req.getLogoUrl());
|
||||
workspaceUpsertReq.setTrial(false);
|
||||
workspaceUpsertReq.setCooperateType(0);
|
||||
workspaceUpsertReq.setAddress(req.getAddress());
|
||||
// todo 是否赋值
|
||||
workspaceUpsertReq.setLongitude(new BigDecimal("0"));
|
||||
workspaceUpsertReq.setLatitude(new BigDecimal("0"));
|
||||
workspaceGateway.upsert(workspaceUpsertReq);
|
||||
}
|
||||
|
||||
// 创建部门
|
||||
|
||||
Loading…
Reference in New Issue
Block a user