diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt index 1bfc643440..f50ec26156 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutopilotAnalytics.kt @@ -1,17 +1,17 @@ package com.mogo.och.common.module.manager.autopilot.autopilot -import android.text.TextUtils import com.mogo.commons.debug.DebugConfig -import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable @@ -19,11 +19,7 @@ abstract class OchAutopilotAnalytics { companion object{ private const val EVENT_PARAM_AUTOPILOTANALYTICS_GROUP = "start_autopilot_group" - private const val EVENT_PARAM_SN = "sn" - private const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号 private const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境:true/false - private const val EVENT_PARAM_TIME = "time" - private const val EVENT_PARAM_ACCURATE_TIME = "time_accurate" private const val EVENT_PARAM_START_SUCCESS_TIME = "time_success" private const val EVENT_PARAM_START_FAIL_TIME = "time_fail" private const val EVENT_PARAM_CLICK_TIME = "time_click" @@ -47,26 +43,20 @@ abstract class OchAutopilotAnalytics { fun triggerStartAutopilotParameters(controlParameters: AutopilotControlParameters?){ - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(System.currentTimeMillis(),DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_START_AUTOPILOT_PARAMETERS] = "${controlParameters.toString()}_${controlParameters?.autoPilotLine}_routeID:${controlParameters?.routeID}_routeName:${controlParameters?.routeName}" params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(params) MogoAnalyticUtils.track(EVENT_KEY_START_AUTOPILOT_PARAMETERS, params) } fun triggerStartAutopilotParametersAck(data:String,isSuccess:Boolean){ - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(System.currentTimeMillis(),DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_START_AUTOPILOT_ACK] = data params[EVENT_PARAM_START_AUTOPILOT_ACK_SUCCESS] = isSuccess params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(params) MogoAnalyticUtils.track(EVENT_KEY_START_AUTOPILOT_ACK, params) } } @@ -102,6 +92,7 @@ abstract class OchAutopilotAnalytics { mStartAutopilotParams[EVENT_PARAM_START_FAIL_TIME] = DateTimeUtils.getTimeText(startFailDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) mStartAutopilotParams[EVENT_PARAM_START_RESULT] = CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING mStartAutopilotParams[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams) clearStartAutopilotParams() //清空参数数据,防止误传 } @@ -132,15 +123,11 @@ abstract class OchAutopilotAnalytics { // 自动驾驶状态变更时间 mStartAutopilotParams[EVENT_PARAM_START_SUCCESS_TIME] = DateTimeUtils.getTimeText(triggerDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) mStartAutopilotParams[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams) clearStartAutopilotParams() //清空参数数据,防止误传 } else { - val plateNum = AppConfigInfo.plateNumber - mStartAutopilotParams[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - mStartAutopilotParams[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum mStartAutopilotParams[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - mStartAutopilotParams[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) - mStartAutopilotParams[EVENT_PARAM_ACCURATE_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) // 外部点击时间 mStartAutopilotParams[EVENT_PARAM_CLICK_TIME] = DateTimeUtils.getTimeText(triggerDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) mStartAutopilotParams[EVENT_PARAM_START_NAME] = startName @@ -163,19 +150,15 @@ abstract class OchAutopilotAnalytics { fun triggerUnableStartAPReasonEvent( startName: String, endName: String, lineId: String, orderNo:String ,reason: String ) { - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE - params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) - params[EVENT_PARAM_ACCURATE_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_START_NAME] = startName params[EVENT_PARAM_END_NAME] = endName params[EVENT_PARAM_LINE_ID] = lineId params[EVENT_PARAM_ORDER_NUMBER] = orderNo params[EVENT_PARAM_UNABLE_START_REASON] = reason params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(getEventKeyApUnableStartReason(), params) } @@ -185,11 +168,10 @@ abstract class OchAutopilotAnalytics { fun triggerClickStartAutopilotTime(triggerDate: Long) { val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn - params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE params[EVENT_PARAM_CLICK_TIME] = DateTimeUtils.getTimeText(triggerDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP + OchChainLogManager.addCommonParams(mStartAutopilotParams) MogoAnalyticUtils.track(getEventKeyClickStartAutopilot(), params) } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index 53717d0cc5..2fed7b0092 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -5,7 +5,9 @@ import com.mogo.commons.debug.DebugConfig import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.data.app.AppConfigInfo +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DateTimeUtils @@ -67,12 +69,8 @@ object OchChainLogManager { d(SceneConstant.M_OCHCOMMON + TAG, title) d(SceneConstant.M_OCHCOMMON + TAG, info) if(upload) { - val plateNum = AppConfigInfo.plateNumber val params = HashMap() - params["sn"] = SharedPrefsMgr.getInstance().sn - params["env"] = DebugConfig.getNetMode() - params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum - params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) + addCommonParams(params) params["info"] = title params["changeInfo"] = info patch?.let { @@ -85,4 +83,17 @@ object OchChainLogManager { } } + + fun addCommonParams(params:MutableMap){ + val plateNum = AppConfigInfo.plateNumber + params["sn"] = SharedPrefsMgr.getInstance().sn + params["env"] = DebugConfig.getNetMode() + params["product"] = AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode) + params["role"] = AppIdentityModeUtils.getRole(FunctionBuildConfig.appIdentityMode) + params["cartype"] = AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode) + params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum + params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS) + } + + } \ No newline at end of file diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index a4d13bb829..cd7325d559 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -284,10 +284,7 @@ object AppIdentityModeUtils { return false } - - - - + @JvmStatic fun getProduct(appIdentityMode: String): Product { val (bussness, _, _) = getInfo(appIdentityMode) return when (bussness) { @@ -299,9 +296,39 @@ object AppIdentityModeUtils { else -> Product.NONE } } + @JvmStatic + fun getRole(appIdentityMode: String): Role { + val (_, role, _) = getInfo(appIdentityMode) + return when (role) { + DRIVER -> Role.Driver + PASSENGER -> Role.PASSENGER + else -> Role.NONE + } + } + @JvmStatic + fun getCarType(appIdentityMode: String): CarType { + val (_, _, carType) = getInfo(appIdentityMode) + return when (carType) { + B1 -> CarType.B1 + B2 -> CarType.B2 + C1 -> CarType.C1 + M1 -> CarType.M1 + T1T2 -> CarType.T1T2 + else -> CarType.NONE + } + } enum class Product { NONE, BUS, TAXI, SWEEPER, SHUTTLE, CHARTER } + + enum class Role { + NONE, Driver, PASSENGER + } + + enum class CarType { + NONE, B1, B2, C1, M1, T1T2, + } + }