Commit 25c80da1 authored by shiyl's avatar shiyl

Merge branch 'feature/dev_fight_order_point' into develop

parents cdde4cb1 e9571a6b
...@@ -27,7 +27,7 @@ import timber.log.Timber ...@@ -27,7 +27,7 @@ import timber.log.Timber
* description: 网路请求解析 * description: 网路请求解析
* 非加密接口使用 * 非加密接口使用
*/ */
abstract class HttpResultObserver<T> : Observer<HttpResult<T>> { abstract class HttpResultObserver<T>(private var showFailurePrompt: Boolean = true) : Observer<HttpResult<T>> {
private val gson by lazy { Gson() } private val gson by lazy { Gson() }
private var isShowErrorMsg = true private var isShowErrorMsg = true
...@@ -83,7 +83,9 @@ abstract class HttpResultObserver<T> : Observer<HttpResult<T>> { ...@@ -83,7 +83,9 @@ abstract class HttpResultObserver<T> : Observer<HttpResult<T>> {
} }
else -> { else -> {
onFailure(result) onFailure(result)
ToastUtil.showToast(YdBaseApplication.context, result.reason ?: "网络请求失败") if (showFailurePrompt) {
ToastUtil.showToast(YdBaseApplication.context, result.reason ?: "网络请求失败")
}
} }
} }
} }
......
...@@ -20,7 +20,8 @@ import io.reactivex.rxjava3.disposables.Disposable ...@@ -20,7 +20,8 @@ import io.reactivex.rxjava3.disposables.Disposable
import org.json.JSONObject import org.json.JSONObject
import java.lang.reflect.ParameterizedType import java.lang.reflect.ParameterizedType
abstract class HttpResultSubscriber<T>(private var showProgress: Boolean = false) : Observer<HttpResult<Any?>> { abstract class HttpResultSubscriber<T>(private var showProgress: Boolean = false, private var showFailurePrompt: Boolean = true) :
Observer<HttpResult<Any?>> {
private var isShowErrorMsg = true private var isShowErrorMsg = true
override fun onSubscribe(d: Disposable) { //网络请求之前 override fun onSubscribe(d: Disposable) { //网络请求之前
...@@ -84,7 +85,10 @@ abstract class HttpResultSubscriber<T>(private var showProgress: Boolean = false ...@@ -84,7 +85,10 @@ abstract class HttpResultSubscriber<T>(private var showProgress: Boolean = false
decodeResult.reason = res.reason decodeResult.reason = res.reason
decodeResult.status = res.status decodeResult.status = res.status
onFailure(decodeResult) onFailure(decodeResult)
ToastUtil.showToast(YdBaseApplication.context, res.reason) // 显示失败的提示语,如果某些情况不需要提示,可以设置为false
if (showFailurePrompt) {
ToastUtil.showToast(YdBaseApplication.context, res.reason)
}
} }
} }
} }
......
...@@ -28,7 +28,8 @@ class BNAHttpReqService : ZapService() { ...@@ -28,7 +28,8 @@ class BNAHttpReqService : ZapService() {
val requestOptions = options as JSONObject val requestOptions = options as JSONObject
val method = requestOptions.optString("method", "POST") val method = requestOptions.optString("method", "POST")
val host = requestOptions.optString("host", RunConfig.API_URL) val host = requestOptions.optString("host", RunConfig.API_URL)
val isEncrypt = requestOptions.optBoolean("is_encrypt", true) val isEncrypt = requestOptions.optBoolean("is_encrypt", true)// 是否开启加密
val showFailurePrompt = requestOptions.optBoolean("showFailurePrompt", true)// 是否显示失败的提示
val url = host + apiPath val url = host + apiPath
val paramsMap: HashMap<String, String?> = parseParams(requestParams) val paramsMap: HashMap<String, String?> = parseParams(requestParams)
...@@ -36,16 +37,16 @@ class BNAHttpReqService : ZapService() { ...@@ -36,16 +37,16 @@ class BNAHttpReqService : ZapService() {
when (method) { when (method) {
"GET", "get" -> { "GET", "get" -> {
if (isEncrypt) { if (isEncrypt) {
BNARemoteDataSource.launchEncryptGetRequest(iMBRequestCallBackImpl, paramsMap, url, resolver) BNARemoteDataSource.launchEncryptGetRequest(iMBRequestCallBackImpl, paramsMap, url, resolver, showFailurePrompt)
} else { } else {
BNARemoteDataSource.launchGetRequest(iMBRequestCallBackImpl, paramsMap, url, resolver) BNARemoteDataSource.launchGetRequest(iMBRequestCallBackImpl, paramsMap, url, resolver, showFailurePrompt)
} }
} }
"POST", "post" -> { "POST", "post" -> {
if (isEncrypt) { if (isEncrypt) {
BNARemoteDataSource.launchEncryptPostRequest(iMBRequestCallBackImpl, paramsMap, url, resolver) BNARemoteDataSource.launchEncryptPostRequest(iMBRequestCallBackImpl, paramsMap, url, resolver, showFailurePrompt)
} else { } else {
BNARemoteDataSource.launchPostRequest(iMBRequestCallBackImpl, paramsMap, url, resolver) BNARemoteDataSource.launchPostRequest(iMBRequestCallBackImpl, paramsMap, url, resolver, showFailurePrompt)
} }
} }
else -> { else -> {
......
...@@ -15,7 +15,8 @@ object BNARemoteDataSource { ...@@ -15,7 +15,8 @@ object BNARemoteDataSource {
apiCallback: IBNARequestCallBack, apiCallback: IBNARequestCallBack,
requestParams: HashMap<String, String?>, requestParams: HashMap<String, String?>,
url: String, url: String,
resolver: ResultResolver resolver: ResultResolver,
showFailurePrompt: Boolean
) { ) {
val timeStamp = System.currentTimeMillis() val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp) val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
...@@ -23,7 +24,7 @@ object BNARemoteDataSource { ...@@ -23,7 +24,7 @@ object BNARemoteDataSource {
ServiceFactory.getInstance().createService(BNAService::class.java) ServiceFactory.getInstance().createService(BNAService::class.java)
.mbGetRequest(url, publicParamsMap, privateParamsMap) .mbGetRequest(url, publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers()) .compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<Any?>() { .subscribe(object : HttpResultSubscriber<Any?>(showFailurePrompt = showFailurePrompt) {
override fun onSuccess(result: HttpResult<Any?>?) { override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.getRequestSuccess(result, resolver) apiCallback.getRequestSuccess(result, resolver)
} }
...@@ -42,7 +43,8 @@ object BNARemoteDataSource { ...@@ -42,7 +43,8 @@ object BNARemoteDataSource {
apiCallback: IBNARequestCallBack, apiCallback: IBNARequestCallBack,
requestParams: HashMap<String, String?>, requestParams: HashMap<String, String?>,
url: String, url: String,
resolver: ResultResolver resolver: ResultResolver,
showFailurePrompt: Boolean
) { ) {
val timeStamp = System.currentTimeMillis() val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp) val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
...@@ -50,7 +52,7 @@ object BNARemoteDataSource { ...@@ -50,7 +52,7 @@ object BNARemoteDataSource {
ServiceFactory.getInstance().createService(BNAService::class.java) ServiceFactory.getInstance().createService(BNAService::class.java)
.mbGetRequest(url, publicParamsMap, privateParamsMap) .mbGetRequest(url, publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers()) .compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultObserver<Any?>() { .subscribe(object : HttpResultObserver<Any?>(showFailurePrompt = showFailurePrompt) {
override fun onSuccess(result: HttpResult<Any?>?) { override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.getRequestSuccess(result, resolver) apiCallback.getRequestSuccess(result, resolver)
} }
...@@ -69,7 +71,8 @@ object BNARemoteDataSource { ...@@ -69,7 +71,8 @@ object BNARemoteDataSource {
apiCallback: IBNARequestCallBack, apiCallback: IBNARequestCallBack,
requestParams: HashMap<String, String?>, requestParams: HashMap<String, String?>,
url: String, url: String,
resolver: ResultResolver resolver: ResultResolver,
showFailurePrompt: Boolean
) { ) {
val timeStamp = System.currentTimeMillis() val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp) val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
...@@ -77,7 +80,7 @@ object BNARemoteDataSource { ...@@ -77,7 +80,7 @@ object BNARemoteDataSource {
ServiceFactory.getInstance().createService(BNAService::class.java) ServiceFactory.getInstance().createService(BNAService::class.java)
.mbPostRequest(url, publicParamsMap, privateParamsMap) .mbPostRequest(url, publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers()) .compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<Any?>() { .subscribe(object : HttpResultSubscriber<Any?>(showFailurePrompt = showFailurePrompt) {
override fun onSuccess(result: HttpResult<Any?>?) { override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.getRequestSuccess(result, resolver) apiCallback.getRequestSuccess(result, resolver)
} }
...@@ -96,7 +99,8 @@ object BNARemoteDataSource { ...@@ -96,7 +99,8 @@ object BNARemoteDataSource {
apiCallback: IBNARequestCallBack, apiCallback: IBNARequestCallBack,
requestParams: HashMap<String, String?>, requestParams: HashMap<String, String?>,
url: String, url: String,
resolver: ResultResolver resolver: ResultResolver,
showFailurePrompt: Boolean
) { ) {
val timeStamp = System.currentTimeMillis() val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp) val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
...@@ -104,7 +108,7 @@ object BNARemoteDataSource { ...@@ -104,7 +108,7 @@ object BNARemoteDataSource {
ServiceFactory.getInstance().createService(BNAService::class.java) ServiceFactory.getInstance().createService(BNAService::class.java)
.mbPostRequest(url, publicParamsMap, privateParamsMap) .mbPostRequest(url, publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers()) .compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultObserver<Any?>() { .subscribe(object : HttpResultObserver<Any?>(showFailurePrompt = showFailurePrompt) {
override fun onSuccess(result: HttpResult<Any?>?) { override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.getRequestSuccess(result, resolver) apiCallback.getRequestSuccess(result, resolver)
} }
......
...@@ -15,6 +15,7 @@ import androidx.core.content.ContextCompat ...@@ -15,6 +15,7 @@ import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.tbruyelle.rxpermissions3.RxPermissions import com.tbruyelle.rxpermissions3.RxPermissions
import com.umeng.umcrash.UMCrash
import com.yidian.bcommon.base.BaseFragment import com.yidian.bcommon.base.BaseFragment
import com.yidian.bcommon.utils.ImageCompressUtils import com.yidian.bcommon.utils.ImageCompressUtils
import com.yidian.framework.mobile.insight.config.IdentityCardType import com.yidian.framework.mobile.insight.config.IdentityCardType
...@@ -256,12 +257,17 @@ class LifeAccountIDCardAuthFragmentV2 : BaseFragment<FragmentLifeAccountIdCardAu ...@@ -256,12 +257,17 @@ class LifeAccountIDCardAuthFragmentV2 : BaseFragment<FragmentLifeAccountIdCardAu
RxPermissions(this).request(Manifest.permission.CAMERA).subscribe { RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
if (it) { if (it) {
// 调用XInsight进行身份证采集 // 调用XInsight进行身份证采集
XInsight.startIdentityCardOcr( try {
this, XInsight.startIdentityCardOcr(
ScreenOrientation.VERTICAL, this,
if (curFace == Constant.ID_CARD_PORTRAIT_FACE) IdentityCardType.PORTRAIT else IdentityCardType.NATIONAL_EMBLEM, ScreenOrientation.VERTICAL,
Constant.REQUEST_CODE_ID_CARD_CAPTURE if (curFace == Constant.ID_CARD_PORTRAIT_FACE) IdentityCardType.PORTRAIT else IdentityCardType.NATIONAL_EMBLEM,
) Constant.REQUEST_CODE_ID_CARD_CAPTURE
)
} catch (e: Exception) {
e.printStackTrace()
UMCrash.generateCustomLog(e,"AuthenticationException")
}
} else { } else {
ToastUtil.showToast(activity, "请在设置里同意相关权限") ToastUtil.showToast(activity, "请在设置里同意相关权限")
} }
...@@ -369,59 +375,64 @@ class LifeAccountIDCardAuthFragmentV2 : BaseFragment<FragmentLifeAccountIdCardAu ...@@ -369,59 +375,64 @@ class LifeAccountIDCardAuthFragmentV2 : BaseFragment<FragmentLifeAccountIdCardAu
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE) File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE)
} }
} }
XInsight.identityCardVerify( try {
if (face == Constant.ID_CARD_PORTRAIT_FACE) IdentityCardType.PORTRAIT else IdentityCardType.NATIONAL_EMBLEM, XInsight.identityCardVerify(
uploadFile, if (face == Constant.ID_CARD_PORTRAIT_FACE) IdentityCardType.PORTRAIT else IdentityCardType.NATIONAL_EMBLEM,
object : IdentityCardVerifyCallBack { uploadFile,
override fun onSucceed(identityCardResult: IdentityCardResult?, result: String?) { object : IdentityCardVerifyCallBack {
activity?.runOnUiThread { override fun onSucceed(identityCardResult: IdentityCardResult?, result: String?) {
if (face == Constant.ID_CARD_PORTRAIT_FACE) { activity?.runOnUiThread {
identityCardResult?.let { LifeAccountAuthDataManagerV2.generateIDCardPortraitFaceData(it) } if (face == Constant.ID_CARD_PORTRAIT_FACE) {
// 回显OCR结果 identityCardResult?.let { LifeAccountAuthDataManagerV2.generateIDCardPortraitFaceData(it) }
viewBinding.evRealName.fillEditContent(identityCardResult?.posit?.name) // 回显OCR结果
viewBinding.evIdCardNumber.fillEditContent(identityCardResult?.posit?.idcard_number) viewBinding.evRealName.fillEditContent(identityCardResult?.posit?.name)
// 此时身份证人像面已上传并OCR识别完成 删除本地临时存储文件 viewBinding.evIdCardNumber.fillEditContent(identityCardResult?.posit?.idcard_number)
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply { // 此时身份证人像面已上传并OCR识别完成 删除本地临时存储文件
if (exists()) delete() File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply {
} if (exists()) delete()
// 检查下一步条件 }
if (authType == Constant.TYPE_AUTH_PERSONAL) { // 检查下一步条件
activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() } if (authType == Constant.TYPE_AUTH_PERSONAL) {
} else { activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() }
activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() } } else {
} activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() }
} else { }
identityCardResult?.let { LifeAccountAuthDataManagerV2.generateIDCardNationEmblemFaceData(it) }
// 此时身份证国徽面已上传并OCR识别完成 删除本地临时存储文件
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply {
if (exists()) delete()
}
// 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) {
activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() }
} else { } else {
activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() } identityCardResult?.let { LifeAccountAuthDataManagerV2.generateIDCardNationEmblemFaceData(it) }
// 此时身份证国徽面已上传并OCR识别完成 删除本地临时存储文件
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply {
if (exists()) delete()
}
// 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) {
activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() }
} else {
activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() }
}
} }
} }
} }
}
override fun onFail(code: Int, errMsg: String?, errDomain: String?) { override fun onFail(code: Int, errMsg: String?, errDomain: String?) {
} }
override fun onUploadTask(positImageUrl: String?, backImageUrl: String?) { override fun onUploadTask(positImageUrl: String?, backImageUrl: String?) {
if (face == Constant.ID_CARD_PORTRAIT_FACE) { if (face == Constant.ID_CARD_PORTRAIT_FACE) {
LifeAccountAuthDataManagerV2.personalAuthData.isIDCardPortraitFaceUpload = LifeAccountAuthDataManagerV2.personalAuthData.isIDCardPortraitFaceUpload =
true true
LifeAccountAuthDataManagerV2.personalAuthData.idCardPortraitFaceUrl = positImageUrl LifeAccountAuthDataManagerV2.personalAuthData.idCardPortraitFaceUrl = positImageUrl
} else { } else {
LifeAccountAuthDataManagerV2.personalAuthData.isIDCardNationalEmblemFaceUpload = LifeAccountAuthDataManagerV2.personalAuthData.isIDCardNationalEmblemFaceUpload =
true true
LifeAccountAuthDataManagerV2.personalAuthData.idCardNationalEmblemFaceUrl = backImageUrl LifeAccountAuthDataManagerV2.personalAuthData.idCardNationalEmblemFaceUrl = backImageUrl
}
} }
} })
}) } catch (e: Exception) {
e.printStackTrace()
UMCrash.generateCustomLog(e,"AuthenticationException")
}
} }
} }
......
...@@ -53,6 +53,8 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ...@@ -53,6 +53,8 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
subscribeUiEvent() subscribeUiEvent()
initList() initList()
getIntentData(intent) getIntentData(intent)
// 页面浏览埋点
vm.commitPageBuriedPoint()
} }
private fun setView() { private fun setView() {
...@@ -104,7 +106,7 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ...@@ -104,7 +106,7 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
map[IntentConstants.KEY_EXTRA_PICKUP_POINT_ID] = it map[IntentConstants.KEY_EXTRA_PICKUP_POINT_ID] = it
map[IntentConstants.KEY_EXTRA_MARKETING_ID] = id map[IntentConstants.KEY_EXTRA_MARKETING_ID] = id
XPageManager.push(XRouterPathConstants.PICKUP_POINT_ACTIVITY, map) XPageManager.push(XRouterPathConstants.PICKUP_POINT_ACTIVITY, map)
vm.commitClickBuriedPoint(2) vm.commitClickBuriedPoint(1)
} }
} }
vm.toOrderDetailEvent.observe(this) { vm.toOrderDetailEvent.observe(this) {
...@@ -195,7 +197,6 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ...@@ -195,7 +197,6 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
override fun onDoBack() { override fun onDoBack() {
// 返回按钮 // 返回按钮
vm.commitClickBuriedPoint(1)
XPageManager.pop(null) XPageManager.pop(null)
} }
......
...@@ -58,6 +58,7 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O ...@@ -58,6 +58,7 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O
binding.ivOrderInfo.setOrderInfo(status, it) binding.ivOrderInfo.setOrderInfo(status, it)
}) })
binding.rlOrderDetail.autoRefresh() binding.rlOrderDetail.autoRefresh()
vm.commitExposePageBuriedPoint()
} }
private fun initSmartRefresh() { private fun initSmartRefresh() {
...@@ -70,7 +71,6 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O ...@@ -70,7 +71,6 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O
} }
override fun onDoBack() { override fun onDoBack() {
// vm.commitWidgetBuriedPoint("return_key")
XPageManager.pop(null) XPageManager.pop(null)
} }
...@@ -79,7 +79,7 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O ...@@ -79,7 +79,7 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O
} }
override fun onGotoMarketingDetail() { override fun onGotoMarketingDetail() {
// vm.commitWidgetBuriedPoint("activity_icon")
} }
override fun onApplyRefundSuccess() { override fun onApplyRefundSuccess() {
......
...@@ -86,10 +86,6 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -86,10 +86,6 @@ class ConfirmOrderViewModel : BaseViewModel() {
calculateOriginalAmount(it.goodsList) calculateOriginalAmount(it.goodsList)
couponsAvailableList.value = it.couponList couponsAvailableList.value = it.couponList
calculateCouponsAvailableNum(it.couponList) calculateCouponsAvailableNum(it.couponList)
// 上传页面埋点信息
for (i in 1..3) {
commitPageBuriedPoint(i)
}
} }
} }
...@@ -222,7 +218,7 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -222,7 +218,7 @@ class ConfirmOrderViewModel : BaseViewModel() {
} }
} }
} }
commitClickBuriedPoint(3) commitClickBuriedPoint(2)
} }
/** /**
...@@ -269,27 +265,15 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -269,27 +265,15 @@ class ConfirmOrderViewModel : BaseViewModel() {
* 页面浏览的埋点 * 页面浏览的埋点
* 页面可见且有业务数据时上传 * 页面可见且有业务数据时上传
*/ */
private fun commitPageBuriedPoint(weightKey: Int) { fun commitPageBuriedPoint() {
// 埋点数据包装 // 埋点数据包装
val jsonObject = JSONObject() val jsonObject = JSONObject()
jsonObject.put("eventName", "VIEW_WIDGET") jsonObject.put("eventName", "EXPOSE_PAGE")
val contextJsonObject = JSONObject() val contextJsonObject = JSONObject()
contextJsonObject.put("page", "ORDER_CONFIRMATION_PAGE") contextJsonObject.put("page", "ORDER_CONFIRMATION_PAGE")
jsonObject.put("contextMap", contextJsonObject) jsonObject.put("contextMap", contextJsonObject)
val entitiesJsonObject = JSONObject()
val widgetInfoJsonObject = JSONObject()
widgetInfoJsonObject.put("widget_type", "BUTTON")
var weightName = ""
when (weightKey) {
1 -> weightName = "return_key"
2 -> weightName = "self_pick_up_site"
3 -> weightName = "immediate_payment"
}
widgetInfoJsonObject.put("widget_name", weightName)
entitiesJsonObject.put("widget_info", widgetInfoJsonObject)
jsonObject.put("entitiesMap", entitiesJsonObject)
val propertiesJsonObject = JSONObject() val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQ_R_1625560823085") propertiesJsonObject.put("event_id", "SHQNG_R_1632389690431")
jsonObject.put("propertiesMap", propertiesJsonObject) jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1) jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject) CPointUtils.performCommitLog(jsonObject)
...@@ -298,7 +282,7 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -298,7 +282,7 @@ class ConfirmOrderViewModel : BaseViewModel() {
/** /**
* 点击按钮的埋点 * 点击按钮的埋点
* *
* 点击: 1.返回按钮,则上报return_key; 2.选择自提点,则上报self_pick_up_site; 3.立即支付,则上报immediate_payment * 点击: 1)选择自提点:上报self_pick_up_site; 2)立即支付:immediate_payment.
*/ */
fun commitClickBuriedPoint(weightKey: Int) { fun commitClickBuriedPoint(weightKey: Int) {
val jsonObject = JSONObject() val jsonObject = JSONObject()
...@@ -311,15 +295,14 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -311,15 +295,14 @@ class ConfirmOrderViewModel : BaseViewModel() {
widgetInfoJsonObject.put("widget_type", "BUTTON") widgetInfoJsonObject.put("widget_type", "BUTTON")
var weightName = "" var weightName = ""
when (weightKey) { when (weightKey) {
1 -> weightName = "return_key" 1 -> weightName = "self_pick_up_site"
2 -> weightName = "self_pick_up_site" 2 -> weightName = "immediate_payment"
3 -> weightName = "immediate_payment"
} }
widgetInfoJsonObject.put("widget_name", weightName) widgetInfoJsonObject.put("widget_name", weightName)
entitiesJsonObject.put("widget_info", widgetInfoJsonObject) entitiesJsonObject.put("widget_info", widgetInfoJsonObject)
jsonObject.put("entitiesMap", entitiesJsonObject) jsonObject.put("entitiesMap", entitiesJsonObject)
val propertiesJsonObject = JSONObject() val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQ_R_1625456607092") propertiesJsonObject.put("event_id", "SHQNG_R_1632389039520")
jsonObject.put("propertiesMap", propertiesJsonObject) jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1) jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject) CPointUtils.performCommitLog(jsonObject)
......
package com.yidian.shenghuoquan.buserorder.viewmodel package com.yidian.shenghuoquan.buserorder.viewmodel
import android.text.TextUtils
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import com.yidian.bcommon.mvvm.BaseViewModel import com.yidian.bcommon.mvvm.BaseViewModel
...@@ -8,8 +7,6 @@ import com.yidian.bcommon.utils.CPointUtils ...@@ -8,8 +7,6 @@ import com.yidian.bcommon.utils.CPointUtils
import com.yidian.shenghuoquan.buserorder.dto.OrderDetailDto import com.yidian.shenghuoquan.buserorder.dto.OrderDetailDto
import com.yidian.shenghuoquan.buserorder.http.OrderRemoteDataSource import com.yidian.shenghuoquan.buserorder.http.OrderRemoteDataSource
import com.yidian.shenghuoquan.buserorder.http.callback.IGetOrderDetailCallback import com.yidian.shenghuoquan.buserorder.http.callback.IGetOrderDetailCallback
import com.yidian.shenghuoquan.buserorder.manager.OrderStatus
import com.yidian.shenghuoquan.buserorder.manager.OrderStatusManager
import org.json.JSONObject import org.json.JSONObject
import timber.log.Timber import timber.log.Timber
...@@ -29,19 +26,6 @@ class OrderDetailViewModel : BaseViewModel() { ...@@ -29,19 +26,6 @@ class OrderDetailViewModel : BaseViewModel() {
fun requestOrderDetail(orderId: String) { fun requestOrderDetail(orderId: String) {
OrderRemoteDataSource.getOrderDetail(object : IGetOrderDetailCallback { OrderRemoteDataSource.getOrderDetail(object : IGetOrderDetailCallback {
override fun getOrderDetailSuccess(result: OrderDetailDto?) { override fun getOrderDetailSuccess(result: OrderDetailDto?) {
if (_orderDetailData.value == null) {
_orderDetailData.value = result
if (result == null) return
// 订单详情按钮曝光埋点只上报一次
if (!TextUtils.isEmpty(result.placeList.phone)) {
commitViewWidgetBuriedPoint("call_up")
}
commitViewWidgetBuriedPoint("contact_seller")
if (OrderStatusManager.getOrderStatus(result.orderStatus) == OrderStatus.ORDER_STATUS_PAID) {
commitViewWidgetBuriedPoint("apply_refund")
}
return
}
_orderDetailData.value = result _orderDetailData.value = result
} }
...@@ -52,88 +36,23 @@ class OrderDetailViewModel : BaseViewModel() { ...@@ -52,88 +36,23 @@ class OrderDetailViewModel : BaseViewModel() {
} }
/** /**
* 页面浏览的埋点 * 页面曝光埋点
* 页面可见且有业务数据时上传
*/ */
private fun commitPageBuriedPoint() { fun commitExposePageBuriedPoint() {
val data = _orderDetailData.value
// 遍历商品列表
val skuIdStr = StringBuilder()
val skuNameStr = StringBuilder()
data?.mergeOrderItemList?.forEachIndexed { index, item ->
skuIdStr.append(item.goodsSkuId)
skuNameStr.append(item.goodsName)
if (index < data.mergeOrderItemList.size - 1) {
skuIdStr.append(",")
skuNameStr.append(",")
}
}
// 埋点数据包装 // 埋点数据包装
val jsonObject = JSONObject() val jsonObject = JSONObject()
jsonObject.put("eventName", "EXPOSE_PAGE") jsonObject.put("eventName", "EXPOSE_PAGE")
val contextJsonObject = JSONObject() val contextJsonObject = JSONObject()
contextJsonObject.put("page", "ORDER_DETAIL_PAGE") contextJsonObject.put("page", "ORDER_DETAIL_PAGE")
val smallOrderInfoJsonObject = JSONObject()
smallOrderInfoJsonObject.put("order_id", data?.orderId)
smallOrderInfoJsonObject.put("marketing_id", data?.marketingId)
smallOrderInfoJsonObject.put("marketing_name", data?.marketingName)
smallOrderInfoJsonObject.put("marketing_type", "SPELL_MEAL")
smallOrderInfoJsonObject.put("goods_sku_id", skuIdStr.toString())
smallOrderInfoJsonObject.put("goods_sku_name", skuNameStr.toString())
contextJsonObject.put("small_order_info", smallOrderInfoJsonObject)
jsonObject.put("contextMap", contextJsonObject) jsonObject.put("contextMap", contextJsonObject)
val propertiesJsonObject = JSONObject() val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQNG_R_1628750600250") propertiesJsonObject.put("event_id", "SHQNG_R_1632389947033")
jsonObject.put("propertiesMap", propertiesJsonObject) jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1) jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject) CPointUtils.performCommitLog(jsonObject)
Timber.tag("BUserOrderBuriedPoint").d("commit order detail page log: $jsonObject") Timber.tag("BUserOrderBuriedPoint").d("commit order detail page log: $jsonObject")
} }
/**
* 点击返回按钮的埋点
*/
fun commitWidgetBuriedPoint(widgetName: String) {
val data = _orderDetailData.value
// 遍历商品列表
val skuIdStr = StringBuilder()
val skuNameStr = StringBuilder()
data?.mergeOrderItemList?.forEachIndexed { index, item ->
skuIdStr.append(item.goodsSkuId)
skuNameStr.append(item.goodsName)
if (index < data.mergeOrderItemList.size - 1) {
skuIdStr.append(",")
skuNameStr.append(",")
}
}
// 埋点数据包装
val jsonObject = JSONObject()
jsonObject.put("eventName", "CLICK_WIDGET")
val contextJsonObject = JSONObject()
contextJsonObject.put("page", "ORDER_DETAIL_PAGE")
val smallOrderInfoJsonObject = JSONObject()
smallOrderInfoJsonObject.put("order_id", data?.orderId)
smallOrderInfoJsonObject.put("marketing_id", data?.marketingId)
smallOrderInfoJsonObject.put("marketing_name", data?.marketingName)
smallOrderInfoJsonObject.put("marketing_type", "SPELL_MEAL")
smallOrderInfoJsonObject.put("goods_sku_id", skuIdStr.toString())
smallOrderInfoJsonObject.put("goods_sku_name", skuNameStr.toString())
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", widgetName)
entitiesJsonObject.put("widget_info", widgetInfoJsonObject)
jsonObject.put("entitiesMap", entitiesJsonObject)
val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQNG_R_1628751452736")
jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject)
Timber.tag("BUserOrderBuriedPoint").d("commit order detail widget log: $jsonObject")
}
/** /**
* 按钮点击埋点 * 按钮点击埋点
*/ */
...@@ -151,31 +70,7 @@ class OrderDetailViewModel : BaseViewModel() { ...@@ -151,31 +70,7 @@ class OrderDetailViewModel : BaseViewModel() {
entitiesJsonObject.put("widget_info", widgetInfoJsonObject) entitiesJsonObject.put("widget_info", widgetInfoJsonObject)
jsonObject.put("entitiesMap", entitiesJsonObject) jsonObject.put("entitiesMap", entitiesJsonObject)
val propertiesJsonObject = JSONObject() val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQ_R_1625468015092") propertiesJsonObject.put("event_id", "SHQNG_R_1632389997706")
jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject)
Timber.tag("BUserOrderBuriedPoint").d("commit order detail widget log: $jsonObject")
}
/**
* 按钮曝光埋点
*/
fun commitViewWidgetBuriedPoint(widgetName: String) {
// 埋点数据包装
val jsonObject = JSONObject()
jsonObject.put("eventName", "VIEW_WIDGET")
val contextJsonObject = JSONObject()
contextJsonObject.put("page", "ORDER_DETAIL_PAGE")
jsonObject.put("contextMap", contextJsonObject)
val entitiesJsonObject = JSONObject()
val widgetInfoJsonObject = JSONObject()
widgetInfoJsonObject.put("widget_type", "BUTTON")
widgetInfoJsonObject.put("widget_name", widgetName)
entitiesJsonObject.put("widget_info", widgetInfoJsonObject)
jsonObject.put("entitiesMap", entitiesJsonObject)
val propertiesJsonObject = JSONObject()
propertiesJsonObject.put("event_id", "SHQ_R_1625560990174")
jsonObject.put("propertiesMap", propertiesJsonObject) jsonObject.put("propertiesMap", propertiesJsonObject)
jsonObject.put("logType", 1) jsonObject.put("logType", 1)
CPointUtils.performCommitLog(jsonObject) CPointUtils.performCommitLog(jsonObject)
......
...@@ -35,7 +35,7 @@ allprojects { ...@@ -35,7 +35,7 @@ allprojects {
ext { ext {
group_id = 'com.yidian.yacmodule.shenghuoquan' group_id = 'com.yidian.yacmodule.shenghuoquan'
artifact_id = '' artifact_id = ''
version_name = '0.0.28-SNAPSHOT' version_name = '0.0.31-SNAPSHOT'
} }
task clean(type: Delete) { task clean(type: Delete) {
......
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