Commit 68efc370 authored by shiyl's avatar shiyl

对C端埋点进行封装,并在确认订单进行埋点

parent c9261c2f
......@@ -69,5 +69,8 @@ class ZapServiceActionConstants {
// 获取C端登录状态
const val ActionGetLoginStatus = "getLoginStatus"
// C端上传埋点日志
const val CommitCPointLog = "commitCPointLog"
}
}
......@@ -33,6 +33,9 @@ class ZapServiceNameConstants {
// BManagerCenter组件中生活号管理服务
const val LifeAccountManagerService = "LifeAccountManagerService"
// C端的埋点服务
const val cBuriedPointService = "cBuriedPointService"
}
}
package com.yidian.bcommon.utils
import com.yidian.bcommon.services.ZapServiceActionConstants
import com.yidian.bcommon.services.ZapServiceNameConstants
import com.yidian.yac.core.zap.ZapTicket
import org.json.JSONObject
/**
* 通过调用C端的服务进行C端埋点的工具类
*/
object CPointUtils {
/**
* 进行日志上传
*/
fun performCommitLog(jsonObject: JSONObject) {
ZapTicket(ZapServiceNameConstants.cBuriedPointService).withAction(ZapServiceActionConstants.CommitCPointLog)
.withServiceParams(jsonObject).ship()
}
}
......@@ -11,6 +11,7 @@ import com.yidian.bcommon.constant.XRouterPathConstants
import com.yidian.bcommon.mvvm.BaseMvvmActivity
import com.yidian.bcommon.utils.InputFilterUtil
import com.yidian.bcommon.widget.CommonHintDialog
import com.yidian.bcommon.widget.CommonTopBarView
import com.yidian.shenghuoquan.buserorder.R
import com.yidian.shenghuoquan.buserorder.adapter.OrderConfirmCommodityListAdapter
import com.yidian.shenghuoquan.buserorder.databinding.BorderActivityConfirmOrderBinding
......@@ -29,7 +30,8 @@ import timber.log.Timber
/**
* 确认订单
*/
class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ConfirmOrderViewModel>(), XPageViewProtocol {
class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ConfirmOrderViewModel>(), XPageViewProtocol,
CommonTopBarView.OnCommonTopBarBackCallback {
private var marketingId: String? = null// 活动id
......@@ -174,4 +176,10 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
}
}
override fun onDoBack() {
// 返回按钮
vm.commitBackBuriedPoint()
XPageManager.pop(null)
}
}
......@@ -5,14 +5,19 @@ import androidx.lifecycle.MutableLiveData
import com.google.gson.Gson
import com.yidian.bcommon.mvvm.BaseViewModel
import com.yidian.bcommon.mvvm.ErrorInfo
import com.yidian.bcommon.services.ZapServiceActionConstants
import com.yidian.bcommon.services.ZapServiceNameConstants
import com.yidian.bcommon.utils.CPointUtils
import com.yidian.shenghuoquan.buserorder.dto.*
import com.yidian.shenghuoquan.buserorder.http.OrderRemoteDataSource
import com.yidian.yac.core.zap.ZapTicket
import org.json.JSONArray
import org.json.JSONObject
class ConfirmOrderViewModel : BaseViewModel() {
private var marketingInfo: MarketingInfo? = null
private var payOrderId: String? = null
private lateinit var currentParamsJson: JSONObject// 当前订单的请求参数
private var originalAmount: Double = 0.00// 原价总和
......@@ -71,10 +76,13 @@ class ConfirmOrderViewModel : BaseViewModel() {
selectedPickUpPoint.value = it.shipping
receivingName.value = it.shipping?.receiverName ?: ""
receivingPhone.value = it.shipping?.receiverMobile ?: ""
marketingName.value = it.marketingInfo?.marketingName ?: ""
marketingInfo = it.marketingInfo
marketingName.value = marketingInfo?.marketingName ?: ""
_goodsSuccessEvent.value = it.goodsList
calculateOriginalAmount(it.goodsList)
couponsAvailableList.value = it.couponList
// 上传页面埋点信息
commitPageBuriedPoint()
}
}
......@@ -222,5 +230,70 @@ class ConfirmOrderViewModel : BaseViewModel() {
_toOrderDetailEvent.value = payOrderId
}
/**
* 页面浏览的埋点
* 页面可见且有业务数据时上传
*/
private fun commitPageBuriedPoint() {
// 遍历商品列表
val skuIdText = StringBuilder()
val skuNameText = StringBuilder()
val value = _goodsSuccessEvent.value
value?.forEachIndexed { index, s ->
// todo 改成skuID
skuIdText.append(s.goodsName)
skuNameText.append(s.goodsName)
if (index < value.size - 1) {
skuIdText.append(",")
skuNameText.append(",")
}
}
// 埋点数据包装
val jsonObject = JSONObject()
jsonObject.put("eventName", "EXPOSE_PAGE")
val contextJsonObject = JSONObject()
contextJsonObject.put("page", "ORDER_CONFIRMATION_PAGE")
val smallOrderInfoJsonObject = JSONObject()
smallOrderInfoJsonObject.put("marketing_id", marketingInfo?.marketingId)
smallOrderInfoJsonObject.put("marketing_name", marketingInfo?.marketingName)
smallOrderInfoJsonObject.put("marketing_type", "SPELL_MEAL")
smallOrderInfoJsonObject.put("goods_sku_id", skuIdText.toString())
smallOrderInfoJsonObject.put("goods_sku_name", skuNameText.toString())
contextJsonObject.put("small_order_info", smallOrderInfoJsonObject)
jsonObject.put("contextMap", contextJsonObject)
val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQNG_R_1628749670667")
jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject)
}
/**
* 点击返回按钮的埋点
*/
fun commitBackBuriedPoint() {
val jsonObject = JSONObject()
jsonObject.put("eventName", "CLICK_WIDGET")
val contextJsonObject = JSONObject()
contextJsonObject.put("page", "ORDER_CONFIRMATION_PAGE")
val smallOrderInfoJsonObject = JSONObject()
smallOrderInfoJsonObject.put("marketing_id", marketingInfo?.marketingId)
smallOrderInfoJsonObject.put("marketing_name", marketingInfo?.marketingName)
smallOrderInfoJsonObject.put("marketing_type", "SPELL_MEAL")
contextJsonObject.put("small_order_info", smallOrderInfoJsonObject)
jsonObject.put("contextMap", contextJsonObject)
val entitiesJsonObject = JSONObject()
val widgetInfoJsonObject = JSONObject()
widgetInfoJsonObject.put("widget_type", "BUTTON")
widgetInfoJsonObject.put("widget_name", "return_key")
entitiesJsonObject.put("widget_info", widgetInfoJsonObject)
jsonObject.put("entitiesMap", entitiesJsonObject)
val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQNG_R_1628749896356")
jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment