From 01c4aa4301bae897b422a2d04940ffd84fa3f7b9 Mon Sep 17 00:00:00 2001 From: hewencai <2357300448@qq.com> Date: Tue, 2 Dec 2025 00:23:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(system-server):=20=E6=B7=BB=E5=8A=A0=20Dat?= =?UTF-8?q?aBus=20MapStruct=20=E6=95=B0=E6=8D=AE=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 DatabusDeptConvert (DeptDO → DatabusDeptData) - 新增 DatabusUserConvert (AdminUserDO → DatabusAdminUserData) - 新增 DatabusPostConvert (PostDO → DatabusPostData) 说明: - 转换器忽略了需要额外查询的复杂字段(如 deptType, leaderUserName, depts, posts) - PostDO 不包含 tenantId,已配置忽略该字段映射 - 验证 system-server 编译通过 Ref: docs/databus/implementation-checklist.md 任务 20-22 --- .../convert/databus/DatabusDeptConvert.java | 36 +++++++++++++++++++ .../convert/databus/DatabusPostConvert.java | 35 ++++++++++++++++++ .../convert/databus/DatabusUserConvert.java | 36 +++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusDeptConvert.java create mode 100644 zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusPostConvert.java create mode 100644 zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusUserConvert.java diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusDeptConvert.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusDeptConvert.java new file mode 100644 index 00000000..e601729b --- /dev/null +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusDeptConvert.java @@ -0,0 +1,36 @@ +package com.zt.plat.module.system.convert.databus; + +import com.zt.plat.module.databus.api.data.DatabusDeptData; +import com.zt.plat.module.system.dal.dataobject.dept.DeptDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 部门数据转换器 + *

+ * 用于将 DeptDO 转换为 DatabusDeptData + * + * @author ZT + */ +@Mapper +public interface DatabusDeptConvert { + + DatabusDeptConvert INSTANCE = Mappers.getMapper(DatabusDeptConvert.class); + + /** + * DeptDO → DatabusDeptData + *

+ * 注意:deptType 和 leaderUserName 字段需要额外处理,这里不做映射 + */ + @Mapping(target = "deptType", ignore = true) + @Mapping(target = "leaderUserName", ignore = true) + DatabusDeptData convert(DeptDO dept); + + /** + * List → List + */ + List convertList(List deptList); +} diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusPostConvert.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusPostConvert.java new file mode 100644 index 00000000..bff389e8 --- /dev/null +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusPostConvert.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.system.convert.databus; + +import com.zt.plat.module.databus.api.data.DatabusPostData; +import com.zt.plat.module.system.dal.dataobject.dept.PostDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 岗位数据转换器 + *

+ * 用于将 PostDO 转换为 DatabusPostData + * + * @author ZT + */ +@Mapper +public interface DatabusPostConvert { + + DatabusPostConvert INSTANCE = Mappers.getMapper(DatabusPostConvert.class); + + /** + * PostDO → DatabusPostData + *

+ * 注意:tenantId 字段在 PostDO 中不存在,需要额外处理 + */ + @Mapping(target = "tenantId", ignore = true) + DatabusPostData convert(PostDO post); + + /** + * List → List + */ + List convertList(List postList); +} diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusUserConvert.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusUserConvert.java new file mode 100644 index 00000000..22c3f569 --- /dev/null +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/convert/databus/DatabusUserConvert.java @@ -0,0 +1,36 @@ +package com.zt.plat.module.system.convert.databus; + +import com.zt.plat.module.databus.api.data.DatabusAdminUserData; +import com.zt.plat.module.system.dal.dataobject.user.AdminUserDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 用户数据转换器 + *

+ * 用于将 AdminUserDO 转换为 DatabusAdminUserData + * + * @author ZT + */ +@Mapper +public interface DatabusUserConvert { + + DatabusUserConvert INSTANCE = Mappers.getMapper(DatabusUserConvert.class); + + /** + * AdminUserDO → DatabusAdminUserData + *

+ * 注意:depts 和 posts 字段需要额外查询和处理,这里不做映射 + */ + @Mapping(target = "depts", ignore = true) + @Mapping(target = "posts", ignore = true) + DatabusAdminUserData convert(AdminUserDO user); + + /** + * List → List + */ + List convertList(List userList); +}