Преглед изворни кода

添加泰康 UnknownFieldEntity

wlq пре 1 година
родитељ
комит
4828c59d7b

+ 41 - 16
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/client/UnknownFieldEntity.java

@@ -3,6 +3,8 @@ package com.jzg.quotation.taikang.client;
 import com.fasterxml.jackson.annotation.JsonAnySetter;
 
 import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
 public class UnknownFieldEntity {
@@ -26,26 +28,49 @@ public class UnknownFieldEntity {
 
     protected final void addChildUnknownField(String key, Object value) {
         if (value == this) {
+            // 避免循环引用
             return;
         }
 
-        if (!(value instanceof UnknownFieldEntity)) {
-            return;
-        }
-
-        UnknownFieldEntity entity = (UnknownFieldEntity) value;
-
-        Map<String, Object> childUnknownFields = entity.getUnknownFields();
-
-        if (childUnknownFields == null || childUnknownFields.isEmpty()) {
-            return;
+        if (value instanceof UnknownFieldEntity) {
+            // 处理嵌套的 UnknownFieldEntity
+            UnknownFieldEntity entity = (UnknownFieldEntity) value;
+            Map<String, Object> childUnknownFields = entity.getUnknownFields();
+
+            if (childUnknownFields != null && !childUnknownFields.isEmpty()) {
+                if (unknownFields == null) {
+                    unknownFields = new LinkedHashMap<>();
+                }
+                unknownFields.put(key, childUnknownFields);
+            }
+
+        } else if (value instanceof List) {
+            // 处理 List 类型的字段
+            List<?> list = (List<?>) value;
+
+            if (!list.isEmpty()) {
+                List<Object> w = new LinkedList<>();
+
+                for (int i = 0; i < list.size(); i++) {
+                    Object item = list.get(i);
+                    if (item instanceof UnknownFieldEntity) {
+                        // 递归处理 List 中的 UnknownFieldEntity
+                        UnknownFieldEntity entity = (UnknownFieldEntity) item;
+                        Map<String, Object> childUnknownFields = entity.getUnknownFields();
+                        if (childUnknownFields != null && !childUnknownFields.isEmpty()) {
+                            w.add(childUnknownFields);
+                        }
+                    }
+                }
+
+                if (!w.isEmpty()) {
+                    if (unknownFields == null) {
+                        unknownFields = new LinkedHashMap<>();
+                    }
+                    unknownFields.put(key, w);
+                }
+            }
         }
-
-        if (unknownFields == null) {
-            unknownFields = new LinkedHashMap<>();
-        }
-
-        unknownFields.put(key, childUnknownFields);
     }
 
     protected void addChildUnknownFields() {