Procházet zdrojové kódy

注册资本修复

xufei před 2 roky
rodič
revize
7c47868b84

+ 63 - 0
src/main/java/com/winhc/bigdata/udf/capital_update.java

@@ -0,0 +1,63 @@
+package com.winhc.bigdata.udf;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
+
+/**
+ * @author: π
+ * 2021/8/30 16:57
+ */
+public class capital_update extends UDF {
+    private static List<String> cols = Arrays.asList("amomon", "paymet", "time");
+
+    public List<String> evaluate(String json) {
+        if (StringUtils.isBlank(json) || "[]".equalsIgnoreCase(json)) return Arrays.asList("1", json);
+        try {
+            List<Map> list1 = JSON.parseArray(json, Map.class);
+            AtomicReference<String> flag = new AtomicReference<>("0");
+            List<HashMap<String, String>> list2 = list1.stream().map(m -> {
+                HashMap<String, String> tm = new HashMap<>();
+                cols.forEach(k -> {
+                    if (!m.containsKey("amomon")) {
+                        tm.put(k, toStringV2(m.getOrDefault(k, "0")));
+                        flag.set("2");
+                    } else if (!m.containsKey(k)) {
+                        tm.put(k, toStringV2(m.getOrDefault(k, "")));
+                        flag.set("3");
+                    } else {
+                        tm.put(k, toStringV2(m.getOrDefault(k, "")));
+                    }
+                });
+                return tm;
+            }).collect(Collectors.toList());
+            return Arrays.asList(flag.get(), JSON.toJSONString(list2, SerializerFeature.WriteMapNullValue));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return Arrays.asList("4", null);
+        }
+
+    }
+
+    public static String toStringV2(Object o) {
+        if (null == o) return null;
+        return o.toString();
+    }
+
+    public static void main(String[] args) {
+        capital_update j = new capital_update();
+        //String json ="[{\"amomon\": \"13608万人民币\", \"paymet\": \"货币\", \"time\": \"2024-07-31\"}]";
+        //String json = "[{\"amomon\": \"13608万人民币\", \"time\": \"2024-07-31\"}]";
+        //String json = "[{\"time\": \"2024-07-31\"}]";
+        //String json = "[]";
+        String json = "[{\"amomon\": \"6.55万人民币\", \"paymet\": null, \"time\": \"2009-01-15\"}]";
+        List<String> evaluate = j.evaluate(json);
+        System.out.println(evaluate);
+    }
+
+}