From 58b9223dc643beac4b1f318ed4e47224364693a0 Mon Sep 17 00:00:00 2001 From: pangfan Date: Thu, 24 Mar 2022 16:47:31 +0800 Subject: [PATCH] =?UTF-8?q?[Bus/Taxi=20d=202.6.0]Taxi:=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=BC=80=E5=A7=8B=E6=9C=8D=E5=8A=A1=EF=BC=88=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=EF=BC=89=E5=9F=8B=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/taxi/constant/OCHTaxiConst.kt | 13 ++++- .../och/taxi/model/MogoOCHTaxiModelNew.java | 9 +++ .../och/taxi/utils/OchTaxiAnalyticsUtil.java | 55 +++++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/OchTaxiAnalyticsUtil.java diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/OCHTaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/OCHTaxiConst.kt index 3b894d7e2b..edb45a2521 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/OCHTaxiConst.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/OCHTaxiConst.kt @@ -30,7 +30,8 @@ class OCHTaxiConst { // 上报心跳轮询ms const val LOOP_PERIOD_60S = 60 * 1000L - + // 开始服务启动自动驾驶等待时间(埋点上传) + const val LOOP_PERIOD_15S = 15 * 1000L // 轮询查询进行中/待服务订单的间隔时间 2秒 const val LOOP_PERIOD_2S = 2 * 1000L // 轮询查询新到预约单 1秒 @@ -48,5 +49,15 @@ class OCHTaxiConst { //演示:V 测试:内测 const val DEMO_USER = "V" const val TEST_USER = "内测" + + // 埋点key:开始服务开启自动驾驶(成功/失败) + const val EVENT_KEY_START_SERVICE = "event_key_och_taxi_start_service" + const val EVENT_PARAM_SN = "sn" + const val EVENT_PARAM_TIME = "time" + const val EVENT_PARAM_START_NAME = "start_name" + const val EVENT_PARAM_END_NAME = "end_name" + const val EVENT_PARAM_ORDER_NUMBER = "order_num" + const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false + } } \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java index 2a36c5677c..852b920d42 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/MogoOCHTaxiModelNew.java @@ -51,6 +51,7 @@ import com.mogo.och.taxi.constant.OrderStatusEnum; import com.mogo.och.taxi.constant.OrderTypeEnum; import com.mogo.och.taxi.network.OCHTaxiServiceCallback; import com.mogo.och.taxi.network.OCHTaxiServiceManagerNew; +import com.mogo.och.taxi.utils.OchTaxiAnalyticsUtil; import com.mogo.och.taxi.utils.OrderUtil; import com.mogo.och.taxi.utils.PinYinUtil; import com.mogo.service.IMogoServiceApis; @@ -809,6 +810,10 @@ public class MogoOCHTaxiModelNew { CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters); CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters) + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr); + + OchTaxiAnalyticsUtil.triggerStartServiceEvent(false, + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); + if (DebugConfig.isDebug()) { // TipToast.shortTip("Start autopilot!"); } @@ -1005,6 +1010,10 @@ public class MogoOCHTaxiModelNew { // 当高频返回autopilot 2时,不重复调用订单状态变更 mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 updateOCHOrderStatus(OrderStatusEnum.OnTheWayToEndStation); + + OchTaxiAnalyticsUtil.triggerStartServiceEvent(true, + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); + if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/OchTaxiAnalyticsUtil.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/OchTaxiAnalyticsUtil.java new file mode 100644 index 0000000000..a0f8b5b517 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/OchTaxiAnalyticsUtil.java @@ -0,0 +1,55 @@ +package com.mogo.och.taxi.utils; + +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; +import com.mogo.eagle.core.utilcode.util.DateTimeUtils; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.taxi.constant.OCHTaxiConst; + +import java.util.HashMap; +import java.util.Map; + +/** + * OCH Taxi埋点工具 + * + * Created on 2022/3/24 + */ +public class OchTaxiAnalyticsUtil { + + /** + * 触发'开始服务'埋点流程: + * 点击开始服务(开启自动驾驶)后,15s内成功则发送成功埋点,否则发送失败埋点 + * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) + */ + public static void triggerStartServiceEvent( + boolean send, String startName, String endName, String orderNo) { + + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + String dateTime = DateTimeUtils.getTimeText( + System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); + + Map params = new HashMap<>(); + params.put(OCHTaxiConst.EVENT_PARAM_SN, sn); + params.put(OCHTaxiConst.EVENT_PARAM_TIME, dateTime); + params.put(OCHTaxiConst.EVENT_PARAM_START_NAME, startName); + params.put(OCHTaxiConst.EVENT_PARAM_END_NAME, endName); + params.put(OCHTaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); + + Runnable runnable = () -> { + // 15s内未开启,上报失败埋点 + params.put(OCHTaxiConst.EVENT_PARAM_START_RESULT, false); + AnalyticsManager.INSTANCE.track(OCHTaxiConst.EVENT_KEY_START_SERVICE, params); + }; + + if (send) { + // 开启成功,上报埋点 + if (runnable != null && UiThreadHandler.getsUiHandler().hasCallbacks(runnable)) { + UiThreadHandler.removeCallbacks(runnable); + } + params.put(OCHTaxiConst.EVENT_PARAM_START_RESULT, true); + AnalyticsManager.INSTANCE.track(OCHTaxiConst.EVENT_KEY_START_SERVICE, params); + } else { + UiThreadHandler.postDelayed(runnable, OCHTaxiConst.LOOP_PERIOD_15S); + } + } +}