diff --git a/README.md b/README.md
index e69de29..622ed00 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,120 @@
+# 项目概述
+- 项目名称:Orgmanax:“Org” 代表 `organization(组织)`,`man` 表示 “人”,`ax` 象征对这些元素进行整合.
+- 项目简介:维护单位、部门、人员、岗位相关的业务及数据,比如:通讯录、项目添加人员、添加班组、更换班组长等
+
+# 项目约束
+- 引用外部(其它域、第三方)SDK时,需要与Leader确认,禁止私自引入
+- service分为`basic`(基础功能)与`biz`(业务功能)。`basic`不可依赖`biz`,`biz`应依赖`basic`完成部分功能。原则上`biz`与`biz`也不应该互相依赖
+- 代码风格:
+ - 命名规范:采用驼峰命名法,如:`orgmanaxDomain`
+ - 代码注释:
+ - 类注释:类名、功能、作者、创建时间、修改时间等
+ - 方法注释:方法名、功能、参数、返回值、作者、创建时间、修改时间等
+ - 代码风格:
+ - 缩进:4个空格
+ - 换行:每行不超过120个字符
+ - 空格:
+ - 关键字前后:`if`、`for`、`while`、`switch`、`case`等前后各一个空格
+
+# 项目结构
+## 模块层级
+
+
+## 模块描述
+
+模块名称 | 功能 | 依赖
+------ |-----------------------------------------------------| ----
+`orgmanax-api` | API层,提供给二方的SDK,方便二方快速接入人岗架相关功能 |无
+`orgmanax-common`| 公共组件、UTIL等 |无
+`orgmanax-domain`| 领域层,核心业务逻辑 | 无
+`orgmanax-infra` | 基础设施层,隔离非业务变化,防止外部变化引起内部业务变更。
对接二方依赖,数据库,MQ等中件间 | `orgmanax-domain` `orgmanax-common`
+`orgmanax-server`| 业务层,调用domain与infra实现业务逻辑的编排 | `orgmanax-api` `orgmanax-common` `orgmanax-infra` `orgmanax-domain`
+
+## 目录层级
+```
+.
+├── orgmanax-api #提供给二方的功能,包括基础功能、业务功能。
+│ └── src
+│ ├── main
+│ │ └── java
+│ │ └── cn
+│ │ └── axzo
+│ │ └── orgmanax
+│ │ └── api
+│ │ ├── config #配置,如:将Feign接口托管至spring
+│ │ ├── node #部门相关接口
+│ │ │ ├── feign #API
+│ │ │ │ ├── basic #部门基础API,如:创建部门、通过ID查询部门、更新部门、删除部门
+│ │ │ │ └── biz #部门业务相关API,具体的实现可以依赖基础API的功能如:创建班组部门依赖创建部门等
+│ │ │ ├── req #请求入参
+│ │ │ └── resp #请求出参
+│ │ └── unit #单位相关接口
+│ │ └── feign #API
+│ │ ├── basic #单位基础API
+│ │ └── biz #单位业务相关API
+│ └── resources
+│ └── META-INF #SPI(service provider interface)
+|
+├── orgmanax-common #公共包
+│ └── src
+│ └── main
+│ └── java
+│ └── cn
+│ └── axzo
+│ └── orgmanax
+│ └── common
+│ ├── config
+│ └── entity
+|
+├── orgmanax-domain #领域层
+│ └── src
+│ ├── main
+│ │ └── java
+│ │ └── cn
+│ │ └── axzo
+│ │ └── orgmanax
+│ │ └── domain
+│ │ └── node #部门域
+│ │ ├── entity #实体 可以提供部门的属性(字段)及业务行为(接口),注意:会发生属性变更的操作才适合定义为行为
+│ │ └── gateway #部门相关的操作接口,只定义接口,具体的实现由infra层实现
+│ │ └── addregate #聚合多个实体的对象和业务操作可以放到该目录下
+
+├── orgmanax-infra #基础设施层,主要是对接二方依赖,数据库,MQ等中件间。依赖domain层
+│ └── src
+│ ├── main
+│ │ ├── java
+│ │ │ └── cn
+│ │ │ └── axzo
+│ │ │ └── orgmanax
+│ │ │ └── infra
+│ │ │ ├── config #基础配置,如MYBATISPLUS的配置
+│ │ │ └── dao #数据访问层
+│ │ │ └── node #部门相关
+│ │ │ ├── convert #数据转换相关,比如将entity转换为数据实体do
+│ │ │ ├── dao #mybatisplus的service实现,用于CRUD,可与Lambda表达式配合使用。
+│ │ │ ├── DO #数据实体
+│ │ │ ├── gateway # 业务查询防腐层,提供给service层使用,用于隔离service层与dao层
+│ │ │ │ └── impl #gateway的具体实现可以调用dao完成相关功能,也可以作为聚合根获取数据的实现
+│ │ │ └── mapper
+|
+└── orgmanax-server #包含mvc的controller与service
+ └── src
+ ├── main
+ │ ├── java
+ │ │ └── cn
+ │ │ └── axzo
+ │ │ └── orgmanax
+ │ │ └── server
+ │ │ ├── controller #API
+ │ │ │ ├── node #部门API
+ │ │ │ └── unit #单位API
+ │ │ └── service #业务层,调用infra层与domain层完成业务流程的编排
+ │ │ └── node #部门相关业务
+ │ │ ├── basic #基础的公共相关业务功能实现
+ │ │ ├── biz #基础的业务功能,可以依赖basic里面的接口
+ │ │ ├── check #业务校验相关
+ │ │ └── convert #数据转换,如将请求REQ转换为领域对象
+ │ └── resources
+ └── test
+ └── java
+```
diff --git a/img.png b/img.png
new file mode 100644
index 0000000..c1e16c8
Binary files /dev/null and b/img.png differ
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/config/OrgmanaxApiConfig.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/config/OrgmanaxApiConfig.java
index 6580f64..305b1ab 100644
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/config/OrgmanaxApiConfig.java
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/config/OrgmanaxApiConfig.java
@@ -8,6 +8,6 @@ import org.springframework.context.annotation.Configuration;
* @date 2022/4/25 10:48
*/
@Configuration
-@EnableFeignClients(basePackages = "cn.axzo.orgmanax.api.feign")
+@EnableFeignClients(basePackages = "cn.axzo.orgmanax.api.**.feign")
public class OrgmanaxApiConfig {
}
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/basic/OrganizationalNodeBasicApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/basic/OrganizationalNodeBasicApi.java
index 2acf3ab..f2d4a25 100644
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/basic/OrganizationalNodeBasicApi.java
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/basic/OrganizationalNodeBasicApi.java
@@ -7,8 +7,6 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
-import java.util.List;
-
/**
* 部门相关基础API
* @author tanjie@axzo.cn
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/resp/OrganizationalNodeInfoResp.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/resp/OrganizationalNodeInfoResp.java
index 920499f..8125a35 100644
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/resp/OrganizationalNodeInfoResp.java
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/resp/OrganizationalNodeInfoResp.java
@@ -1,6 +1,9 @@
package cn.axzo.orgmanax.api.node.resp;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
import java.util.Date;
@@ -10,7 +13,15 @@ import java.util.Date;
* @date 2024/12/2 16:20
*/
@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
public class OrganizationalNodeInfoResp {
+
+ /**
+ * 部门ID
+ */
+ private Long id;
/**
* 单位id
*/
@@ -55,4 +66,5 @@ public class OrganizationalNodeInfoResp {
* 创建时间
*/
private Date createAt;
+
}
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/unit/req/OrganizationalUnitQueryReq.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/unit/req/OrganizationalUnitQueryReq.java
new file mode 100644
index 0000000..65fb285
--- /dev/null
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/unit/req/OrganizationalUnitQueryReq.java
@@ -0,0 +1,8 @@
+package cn.axzo.orgmanax.api.unit.req;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/3 14:23
+ */
+public class OrganizationalUnitQueryReq {
+}
diff --git a/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/entity/BizErrorInfo.java b/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/entity/BizErrorInfo.java
new file mode 100644
index 0000000..72a3a13
--- /dev/null
+++ b/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/entity/BizErrorInfo.java
@@ -0,0 +1,23 @@
+package cn.axzo.orgmanax.common.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 业务异常信息
+ * @author tanjie@axzo.cn
+ * @date 2024/12/2 20:20
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class BizErrorInfo {
+
+ private boolean isSuccess;
+
+ private String errorMsg;
+
+}
diff --git a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/addregate/package-info.java b/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/addregate/package-info.java
new file mode 100644
index 0000000..bd75efd
--- /dev/null
+++ b/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/addregate/package-info.java
@@ -0,0 +1,8 @@
+package cn.axzo.orgmanax.domain.addregate;
+/**
+ * @(package: cn.axzo.orgmanax.domain.addregate)
+ *
+ * 聚合多个实体的根对象
+ * 如: NodeUnit聚合了OrganizationalNode、OrganizationalUnit
+ *
+ */
\ No newline at end of file
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java
index 61da658..71f42e2 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java
@@ -8,6 +8,7 @@ import cn.axzo.foundation.web.support.exception.AbstractExceptionHandler;
import cn.axzo.foundation.web.support.log.RequestLogAspect;
import cn.axzo.foundation.web.support.rpc.RpcClient;
import cn.axzo.foundation.web.support.rpc.RpcClientImpl;
+import cn.axzo.orgmanax.infra.event.config.RocketMQEventConfig;
import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import lombok.extern.slf4j.Slf4j;
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/entity/OrganizationalNodeDo.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNodeDo.java
similarity index 78%
rename from orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/entity/OrganizationalNodeDo.java
rename to orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNodeDo.java
index 5165136..555863b 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/entity/OrganizationalNodeDo.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNodeDo.java
@@ -1,13 +1,17 @@
-package cn.axzo.orgmanax.infra.dao.node.entity;
+package cn.axzo.orgmanax.infra.dao.node.DO;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
+import java.util.Date;
/**
* 组织节点表表实体类
@@ -17,12 +21,19 @@ import java.io.Serializable;
*/
@TableName(value = "organizational_node", autoResultMap = true)
@Data
-@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
-public class OrganizationalNodeDo extends BaseEntity implements Serializable {
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class OrganizationalNodeDo implements Serializable {
private static final long serialVersionUID = -14708237380609631L;
-
+ @TableId(
+ type = IdType.AUTO
+ )
+ protected Long id;
/**
* 上级id,为0时为顶级节点
*/
@@ -113,15 +124,13 @@ public class OrganizationalNodeDo extends BaseEntity imple
private JSONObject profile;
- /**
- * 获取主键值
- *
- * @return 主键值
- */
- @Override
- protected Serializable pkVal() {
- return this.id;
- }
+ protected Date createAt;
+ protected Long createBy;
+ protected Date updateAt;
+ protected Long updateBy;
+ @TableField("is_delete")
+ protected Long isDelete = 0L;
+
}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java
index c6c7310..d02a38e 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java
@@ -1,7 +1,7 @@
package cn.axzo.orgmanax.infra.dao.node.convert;
import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
-import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNodeDo;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java
index 6920e56..b8c6d1a 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java
@@ -2,7 +2,7 @@ package cn.axzo.orgmanax.infra.dao.node.dao;
import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
import cn.axzo.orgmanax.infra.dao.node.convert.NodeInfraConvert;
-import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNodeDo;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
import cn.axzo.orgmanax.infra.dao.node.mapper.OrganizationalNodeMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/entity/BaseEntity.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/entity/BaseEntity.java
deleted file mode 100644
index f490bb1..0000000
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/entity/BaseEntity.java
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// Source code recreated from a .class file by IntelliJ IDEA
-// (powered by FernFlower decompiler)
-//
-
-package cn.axzo.orgmanax.infra.dao.node.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NonNull;
-
-import java.io.Serializable;
-import java.util.Date;
-
-@Data
-public abstract class BaseEntity> extends Model implements Serializable {
- @TableId(
- type = IdType.AUTO
- )
- protected Long id;
- @TableField(
- fill = FieldFill.INSERT
- )
- protected Date createAt;
- @TableField(
- fill = FieldFill.UPDATE
- )
- protected Date updateAt;
- @TableField("is_delete")
- protected Long isDelete = 0L;
-
-}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java
index ddc3214..9a45047 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java
@@ -1,6 +1,8 @@
package cn.axzo.orgmanax.infra.dao.node.gateway.impl;
+import cn.axzo.foundation.web.support.rpc.RpcClient;
import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
+import cn.axzo.orgmanax.infra.client.RpcClientHolder;
import cn.axzo.orgmanax.infra.dao.node.dao.NodeDao;
import cn.axzo.orgmanax.infra.dao.node.gateway.NodeQueryGateway;
import lombok.RequiredArgsConstructor;
@@ -17,6 +19,8 @@ public class NodeQueryGatewayImpl implements NodeQueryGateway {
private final NodeDao nodeDao;
@Override
public OrganizationalNode findById(Long id) {
+
return nodeDao.findById(id);
}
+
}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java
index 3f32c5d..d915b84 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java
@@ -4,7 +4,7 @@ import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
import cn.axzo.orgmanax.domain.node.gateway.NodeUpsertGateway;
import cn.axzo.orgmanax.infra.dao.node.convert.NodeInfraConvert;
import cn.axzo.orgmanax.infra.dao.node.dao.NodeDao;
-import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNodeDo;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java
index ca2f00e..70db364 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java
@@ -1,7 +1,7 @@
package cn.axzo.orgmanax.infra.dao.node.mapper;
-import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNodeDo;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/event/config/MQEventProducer.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/event/config/MQEventProducer.java
new file mode 100644
index 0000000..1ab7e21
--- /dev/null
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/event/config/MQEventProducer.java
@@ -0,0 +1,23 @@
+package cn.axzo.orgmanax.infra.event.config;
+
+import cn.axzo.foundation.event.support.producer.EventProducer;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/3 14:27
+ */
+@Component
+@RequiredArgsConstructor
+public class MQEventProducer {
+
+ /**
+ * rocket
+ */
+ private final EventProducer eventProducer;
+
+
+
+
+}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/RocketMQEventConfig.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/event/config/RocketMQEventConfig.java
similarity index 99%
rename from orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/RocketMQEventConfig.java
rename to orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/event/config/RocketMQEventConfig.java
index 675ad2f..4567ba1 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/RocketMQEventConfig.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/event/config/RocketMQEventConfig.java
@@ -1,4 +1,4 @@
-package cn.axzo.orgmanax.infra.config;
+package cn.axzo.orgmanax.infra.event.config;
import cn.axzo.foundation.event.support.consumer.*;
import cn.axzo.foundation.event.support.producer.EventProducer;
diff --git a/orgmanax-server/pom.xml b/orgmanax-server/pom.xml
index a4f4861..99709dd 100644
--- a/orgmanax-server/pom.xml
+++ b/orgmanax-server/pom.xml
@@ -35,6 +35,11 @@
orgmanax-api
${project.version}
+
+ cn.axzo.orgmanax
+ orgmanax-common
+ ${project.version}
+
com.alibaba.cloud
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/node/OrganizationalNodeBasicController.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/node/OrganizationalNodeBasicController.java
index 7a6aae5..6b3862f 100644
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/node/OrganizationalNodeBasicController.java
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/node/OrganizationalNodeBasicController.java
@@ -4,7 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.orgmanax.api.node.feign.basic.OrganizationalNodeBasicApi;
import cn.axzo.orgmanax.api.node.req.OrganizationalNodeCreateReq;
import cn.axzo.orgmanax.api.node.resp.OrganizationalNodeInfoResp;
-import cn.axzo.orgmanax.server.service.node.NodeBasicService;
+import cn.axzo.orgmanax.server.service.node.basic.NodeBasicService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/NodeBasicService.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/basic/NodeBasicService.java
similarity index 69%
rename from orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/NodeBasicService.java
rename to orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/basic/NodeBasicService.java
index ac85ad7..e73b95f 100644
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/NodeBasicService.java
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/basic/NodeBasicService.java
@@ -1,11 +1,14 @@
-package cn.axzo.orgmanax.server.service.node;
+package cn.axzo.orgmanax.server.service.node.basic;
import cn.axzo.orgmanax.api.node.req.OrganizationalNodeCreateReq;
import cn.axzo.orgmanax.api.node.resp.OrganizationalNodeInfoResp;
+import cn.axzo.orgmanax.common.entity.BizErrorInfo;
import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
import cn.axzo.orgmanax.domain.node.gateway.NodeUpsertGateway;
import cn.axzo.orgmanax.infra.dao.node.gateway.NodeQueryGateway;
+import cn.axzo.orgmanax.server.service.node.check.NodeBasicCheck;
import cn.axzo.orgmanax.server.service.node.convert.NodeConvert;
+import cn.hutool.core.lang.Assert;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -18,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor
public class NodeBasicService {
+ private final NodeBasicCheck nodeBasicCheck;
private final NodeQueryGateway nodeQueryGateway;
private final NodeUpsertGateway nodeUpsertGateway;
@@ -30,9 +34,12 @@ public class NodeBasicService {
*/
@Transactional
public OrganizationalNodeInfoResp create(OrganizationalNodeCreateReq organizationalNodeCreateReq) {
- OrganizationalNode node = NodeConvert.INSTANCE.toNode(organizationalNodeCreateReq);
- // 业务校验
+ OrganizationalNode node = NodeConvert.INSTANCE.toNodeDomain(organizationalNodeCreateReq);
+ // 业务校验
+ BizErrorInfo bizErrorInfo = nodeBasicCheck.createNodeCheck(node);
+ Assert.isTrue(bizErrorInfo.isSuccess(), bizErrorInfo.getErrorMsg());
+ // 转换为领域对象
// 持久化
nodeUpsertGateway.create(node);
@@ -49,6 +56,10 @@ public class NodeBasicService {
// 返回结果
- return null;
+ return OrganizationalNodeInfoResp.builder()
+ .id(node.getId())
+ // ....
+ .build();
}
+
}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/check/NodeBasicCheck.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/check/NodeBasicCheck.java
new file mode 100644
index 0000000..f7df1bb
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/check/NodeBasicCheck.java
@@ -0,0 +1,34 @@
+package cn.axzo.orgmanax.server.service.node.check;
+
+import cn.axzo.framework.domain.web.BizException;
+import cn.axzo.orgmanax.common.entity.BizErrorInfo;
+import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
+import cn.axzo.orgmanax.infra.dao.node.gateway.NodeQueryGateway;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/2 20:17
+ */
+@Service
+@RequiredArgsConstructor
+public class NodeBasicCheck {
+
+ private final NodeQueryGateway nodeQueryGateway;
+
+ /** 返回值也可以封装成对象
+ * @param organizationalNode
+ * @return
+ */
+ public BizErrorInfo createNodeCheck(OrganizationalNode organizationalNode) {
+ // 重名校验
+ // nodeQueryGateway.find(organizationalNode.getOrganizationalNodeName());
+
+ return BizErrorInfo.builder()
+ .isSuccess(true)
+ .build();
+ }
+}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/convert/NodeConvert.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/convert/NodeConvert.java
index 7e54145..74c1e86 100644
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/convert/NodeConvert.java
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/convert/NodeConvert.java
@@ -13,6 +13,6 @@ import org.mapstruct.factory.Mappers;
public interface NodeConvert {
NodeConvert INSTANCE = Mappers.getMapper(NodeConvert.class);
- OrganizationalNode toNode(OrganizationalNodeCreateReq req);
+ OrganizationalNode toNodeDomain(OrganizationalNodeCreateReq req);
}