Kaynağa Gözat

feat: 获取adcode

JimZhang 2 yıl önce
ebeveyn
işleme
d747266240

+ 5 - 4
src/main/java/com/winhc/bigdata/udf/ComputeAdCode.java

@@ -2,13 +2,9 @@ package com.winhc.bigdata.udf;
 
 import cn.hutool.core.lang.Pair;
 import com.aliyun.odps.udf.UDF;
-import com.google.common.base.Splitter;
-import org.apache.commons.collections.IteratorUtils;
 import org.apache.commons.lang.StringUtils;
 
-
 import java.util.*;
-import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -2756,4 +2752,9 @@ public class ComputeAdCode extends UDF {
         return adcodes.get(adcode);
     }
 
+    public static void main(String[] args) {
+        ComputeAdCode computeAdCode = new ComputeAdCode();
+        System.out.println(computeAdCode.evaluate("410581000222100", "91410581MA9LQG3H6P"));
+        System.out.println(computeAdCode.evaluate("411002013190069", "91411002MA9LQG2N9M"));
+    }
 }

+ 39 - 0
src/main/java/com/winhc/bigdata/udf/get_adcode_from_reg_credit.java

@@ -0,0 +1,39 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.function.Predicate;
+
+/**
+ * @author ZhangJi
+ * @since 2022-08-12 09:23
+ */
+public class get_adcode_from_reg_credit extends UDF {
+    public String evaluate(String reg_number, String credit_code) {
+        if (legalString(reg_number, 15)) {
+            String substring = reg_number.substring(0, 6);
+            if (StringUtils.isNumeric(substring)) {
+                return substring;
+            }
+        }
+        if (legalString(credit_code, 18, code -> code.startsWith("9"))) {
+            String substring = credit_code.substring(2, 8);
+            if (StringUtils.isNumeric(substring)) {
+                return substring;
+            }
+        }
+        return null;
+    }
+
+    public static boolean legalString(String code, int len) {
+        return legalString(code, len, null);
+    }
+
+    public static boolean legalString(String code, int len, Predicate<String> predicate) {
+        if (StringUtils.isEmpty(code)) return false;
+        if (code.length() != len) return false;
+        if (predicate != null) return predicate.test(code);
+        return true;
+    }
+}