package mobvista.dmp.datasource.mpsdk import java.util import com.google.gson.{JsonArray, JsonObject} import mobvista.dmp.common.CommonInstallList import mobvista.prd.datasource.util.GsonUtil import org.apache.commons.lang.StringUtils import scala.collection.JavaConversions._ import scala.collection.mutable.ArrayBuffer /** * 将mpsdk天数据合并到安装列表全量数据中 */ class MPSDKInstallList extends CommonInstallList { /** * 解析天处理结果数据 * @param array * @param date * @return */ def processDailyData(array : Array[String], date : String): Array[Tuple2[String, InstallInfo]] = { val buffer = new ArrayBuffer[Tuple2[String, InstallInfo]]() try { val device_id = array(0) val androidId = array(1) val package_list = array(5) if (StringUtils.isNotEmpty(package_list) && package_list.startsWith("[")) { val jsonArray = GsonUtil.String2JsonArray(package_list) val set = GsonUtil.fromJson(jsonArray, classOf[util.HashSet[String]]) set.foreach(pkg => { val installInfo = new InstallInfo(pkg, date) if (StringUtils.isNotEmpty(installInfo.getPackage_name())) { buffer += Tuple2(s"$device_id${FIELD_SPLIT}gaid${FIELD_SPLIT}android", installInfo) buffer += Tuple2(s"$androidId${FIELD_SPLIT}androidid${FIELD_SPLIT}android", installInfo) // 新增 AndroidID需求 } }) } } catch { case e: Exception => { e.printStackTrace() } } buffer.toArray } } object MPSDKInstallList { def main(args: Array[String]): Unit = { new MPSDKInstallList().run(args) } }