许家凯 4 anni fa
parent
commit
95bc6051a0

+ 15 - 3
src/main/scala/com/winhc/bigdata/spark/jobs/chance/CompanyChangeHandle.scala

@@ -80,6 +80,7 @@ case class company_land_publicity(equCols: Seq[String]) extends CompanyChangeHan
     val str = ChangeExtractUtils.getTags(newMap, "地块公示", Array("project_name", "location", "application_name", "area", "final_price", "land_num"))
     str
   }
+
   override def getBizTime(newMap: Map[String, String]): String = "业务时间"
 
   override def getUpdateTitle(newMap: Map[String, String]): String = "更新某地块公示"
@@ -157,12 +158,23 @@ case class company_copyright_reg_list(equCols: Seq[String]) extends CompanyChang
 
 
 //购地信息
-case class company_land_announcement(equCols:Seq[String])extends CompanyChangeHandle{
+case class company_land_announcement(equCols: Seq[String]) extends CompanyChangeHandle {
   override def getUpdateTitle(newMap: Map[String, String]): String = getValueOrNull(newMap("project_name"), s"${newMap("project_name")}购地信息发生变更")
 
-  override def getInsertTitle(newMap: Map[String, String]): String =  getValueOrNull(newMap("project_name"), s"新增${newMap("project_name")}购地信息")
+  override def getInsertTitle(newMap: Map[String, String]): String = getValueOrNull(newMap("project_name"), s"新增${newMap("project_name")}购地信息")
 
-  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String = ChangeExtractUtils.getTags(newMap,"购地信息", Array("project_name","project_loc", "area", "tran_price", "e_number"))
+  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String = ChangeExtractUtils.getTags(newMap, "购地信息", Array("project_name", "project_loc", "area", "tran_price", "e_number"))
 
   override def getBizTime(newMap: Map[String, String]): String = newMap("contract_date")
 }
+
+//招聘
+case class company_employment(equCols: Seq[String]) extends CompanyChangeHandle {
+  override def getUpdateTitle(newMap: Map[String, String]): String = getValueOrNull(newMap("title"), s"${newMap("title")}招聘信息发生变更")
+
+  override def getInsertTitle(newMap: Map[String, String]): String = getValueOrNull(newMap("title"), s"新增${newMap("title")}招聘信息")
+
+  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String = ChangeExtractUtils.getTags(newMap, "招聘", Array("title", "city->employment_city", "employ_num", "start_date"))
+
+  override def getBizTime(newMap: Map[String, String]): String = newMap("start_date")
+}

+ 16 - 9
src/main/scala/com/winhc/bigdata/spark/utils/ChangeExtractUtils.scala

@@ -1,6 +1,7 @@
 package com.winhc.bigdata.spark.utils
 
 import org.apache.commons.lang3.StringUtils
+
 /**
  * @Author: XuJiakai
  * @Date: 2020/7/7 13:59
@@ -15,19 +16,25 @@ object ChangeExtractUtils {
 
   //获取指定字段集的标签Json
   def getTags(fldMap: Map[String, String], type_val: String, fields: Array[String]): String = {
-    var json:StringBuilder = new StringBuilder(s"""{"type":${getValueOrNull(type_val)},""")
-    fields.map {item=>
-      json.append(s"${getValueOrNull(item)}")
-      json.append(s":${getValueOrNull(fldMap(item))},")
-    }
+    val json: StringBuilder = new StringBuilder(s"""{"type":${getValueOrNull(type_val)},""")
+    fields.foreach(item =>
+      if (item.contains("->")) {
+        val Array(key, keyAlias) = item.split("->")
+        json.append(s"${getValueOrNull(keyAlias)}")
+        json.append(s":${getValueOrNull(fldMap(key))},")
+      } else {
+        json.append(s"${getValueOrNull(item)}")
+        json.append(s":${getValueOrNull(fldMap(item))},")
+      }
+    )
     json.deleteCharAt(json.lastIndexOf(",")).append("}").toString.trim
   }
 
 
-  private def getValueOrNull(value:String):String={
-    if(StringUtils.isNotBlank(value)){
-      "\""+value+"\""
-    }else{
+  private def getValueOrNull(value: String): String = {
+    if (StringUtils.isNotBlank(value)) {
+      "\"" + value + "\""
+    } else {
       null
     }
   }