Ver código fonte

feat(ng.dynamic): 支持json类型字段

JimZhang 3 anos atrás
pai
commit
e3bb8ab9d8

+ 8 - 4
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/DynamicDimConfiguration.scala

@@ -44,8 +44,12 @@ object DynamicDimConfiguration {
         "start_date" -> Map(),
         "case_no" -> Map(),
         "case_reason" -> Map(),
-        "defendant_info" -> Map(),
-        "plaintiff_info" -> Map()
+    /*    "litigant" -> Map(
+          "type" -> "object",
+          "from" -> Seq("plaintiff_info", "defendant_info")
+        ),*/
+        "defendant_info" -> Map("type" -> "json"),
+        "plaintiff_info" -> Map("type" -> "json")
       )
     ),
     "company_env_punishment" -> Map(
@@ -255,8 +259,8 @@ object DynamicDimConfiguration {
       "name" -> "破产信息",
       "list_field" -> Map(
         "case_no" -> Map(),
-        "respondent_info" -> Map(),
-        "applicant_info" -> Map(),
+        "respondent_info" -> Map("type"->"json"),
+        "applicant_info" -> Map("type"->"json"),
         "public_date" -> Map()
       )
     )

+ 40 - 4
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/DynamicFiledUtils.scala

@@ -39,7 +39,7 @@ object DynamicFiledUtils {
               array = (array == null) ? new JArray(List.empty[JValue]) | array
               array.arr
             }
-          }))(jo => (jo \ "name")))
+          }))(jo => jo \ "name"))
         }
         case Some("object") => {
           (elem._1, from.map(e => {
@@ -50,6 +50,14 @@ object DynamicFiledUtils {
               (e.replace("_info", ""), parse(data.getOrElse(e, null)))
           }).toMap)
         }
+        case Some("json") => {
+          val v = data.getOrElse(from.head, null)
+          if (StringUtils.isEmpty(v)) {
+            (elem._1, null)
+          } else {
+            (elem._1, parse(v))
+          }
+        }
         case _ => (elem._1, data.getOrElse(from.head, null))
       }
     })
@@ -66,10 +74,38 @@ object DynamicFiledUtils {
         |""".stripMargin
     implicit val formats: AnyRef with Formats = Serialization.formats(NoTypeHints)
     val value: Map[String, String] = parse(str).extract[Map[String, String]]
-
+    val str2 =
+      """
+        |{
+        |    "PLAN_DATE": "",
+        |    "DEPARTMENT": "",
+        |    "PLAINTIFF": "郭宝录",
+        |    "ROWKEY": "d4bc5a9ba809c80c6271bee66b350d4e",
+        |    "START_DATE": "2019-11-26 09:00:00",
+        |    "UPDATE_TIME": "2020-09-10 05:15:03",
+        |    "DELETED": "0",
+        |    "FLAG": "",
+        |    "DEFENDANT": "宋斌",
+        |    "JUDGE": "",
+        |    "CASE_NO": "(2019)青0103民初3440号",
+        |    "LITIGANT": "宋斌,郭宝录",
+        |    "LITIGANT_INFO": "[{\"name\":\"宋斌\",\"litigant_id\":\"\"},{\"name\":\"郭宝录\",\"litigant_id\":\"\"}]",
+        |    "AREA": "",
+        |    "PLAINTIFF_INFO": "[{\"name\":\"郭宝录\",\"litigant_id\":\"\"}]",
+        |    "SOURCE": "法海接口 c2019630103minchu3440_t20191126",
+        |    "CASE_REASON": "民间借贷纠纷",
+        |    "rowkey": "d4bc5a9ba809c80c6271bee66b350d4e",
+        |    "DEFENDANT_INFO": "[{\"name\":\"宋斌\",\"litigant_id\":\"\"}]",
+        |    "CONTENT": "{\"当事人\":\"我院定于 2019 年11月26日 09时00分在本院第十一法庭依法公开审理郭宝录诉宋斌民间借贷纠纷一案。\",\"发布时间\":1572019200000,\"案号\":\"(2019)青0103民初3440号\",\"法院\":\"西宁市城中区人民法院\",\"开庭时间\":1571932800000}",
+        |    "CREATE_TIME": "2020-09-10 05:15:03",
+        |    "COURT_ROOM": "第十一法庭",
+        |    "COURT": "青海省西宁市城中区人民法院"
+        |  }
+        |""".stripMargin
+    val value2: Map[String, String] = parse(str2.toLowerCase()).extract[Map[String, String]]
     import com.winhc.bigdata.spark.implicits.CaseClass2JsonHelper._
-//    val tuple = createDynamicInfo("company_equity_info", value)
-    val tuple = createDynamicInfo("company_land_mortgage", value)
+    //    val tuple = createDynamicInfo("company_equity_info", value)
+    val tuple = createDynamicInfo("company_court_open_announcement", value2)
     println(tuple._2.toJson())
 
   }