From 88d5f2bc13b03f1577465bc37028b28e605a423a Mon Sep 17 00:00:00 2001 From: zhanghonghao Date: Fri, 3 Jan 2025 16:37:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3488):=20=E6=B7=BB=E5=8A=A0resolve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/node/dto/OrgNodeBriefDTO.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/dto/OrgNodeBriefDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/dto/OrgNodeBriefDTO.java index 566e1ba..a418626 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/dto/OrgNodeBriefDTO.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/dto/OrgNodeBriefDTO.java @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import java.io.Serializable; +import java.util.Optional; @NoArgsConstructor @AllArgsConstructor @@ -59,4 +60,28 @@ public class OrgNodeBriefDTO implements Serializable { */ private JSONObject profile; + /** + * 解析profile + * 调用方需要根据nodeType来解析profile,自行使用正确的对象来接收
+ *
+     *     NodeProfile.ProjectTeamProfile projectTeamProfile = projectTeamNode.resolveProfile(); // nodeType = 4
+     *     NodeProfile.PlatTeamProfile platTeamProfile = platTeamNode.resolveProfile(); // nodeType = 2
+     *     JSONObject normalProfile = normalNode.resolveProfile(); // nodeType = 1
+     *
+     * 
+ * + * @return + * @see NodeProfile#resolveProfileClass(Integer) + */ + public T resolveProfile() { + if (profile == null || profile.isEmpty()) { + return (T) profile; + } + Class clazz = NodeProfile.resolveProfileClass(nodeType); + if (clazz == null) { + return (T) profile; + } + return (T) Optional.ofNullable(profile).map(p -> JSONObject.parseObject(p.toString(), clazz)).orElse(null); + } + }