[Taxi无人化] fix: 压测 ViewModel未初始化问题;

fix: 乘客屏 到达上车点后 后端返回状态 延迟 ,过滤数据;
refactor: 乘客屏 增加清除 概览 中轨迹和Marker的时机;
This commit is contained in:
aibingbing
2023-08-30 12:09:37 +08:00
committed by zhongchao
parent a55136ea1b
commit fb56f3afb3
3 changed files with 41 additions and 10 deletions

View File

@@ -16,6 +16,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis
import com.mogo.eagle.core.function.main.MainMoGoApplication
import com.mogo.eagle.core.network.utils.GsonUtil
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI
import com.mogo.eagle.core.utilcode.util.ClickUtils
@@ -232,7 +233,11 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
fun onCarTakeOrderStatusChanged() {
mViewModel.sendUiIntent(TaskUiIntent.StartOrEndTakeOrder)
if (this::mViewModel.isInitialized) {
mViewModel.sendUiIntent(TaskUiIntent.StartOrEndTakeOrder)
} else {
e(TAG, "onCarTakeOrderStatusChanged: mViewModel is not Initialized")
}
}
/**
@@ -420,7 +425,10 @@ class TaxiCurrentTaskFragment : BaseFragment(),
MainMoGoApplication.getApp().applicationContext,
R.drawable.task_order_type_btn_bg
)
orderPhoneAndNum.text = TaskUtils.getCurrentTaskPhoneNumAndPassengerCountHtml(order.bookingUserPhone, order.passengerSize)
orderPhoneAndNum.text = TaskUtils.getCurrentTaskPhoneNumAndPassengerCountHtml(
order.bookingUserPhone,
order.passengerSize
)
startStationName.text = order.orderStartSite?.siteName
endStationName.text = order.orderEndSite?.siteName

View File

@@ -156,12 +156,19 @@ object TaxiPassengerModel {
TaxiPassengerServiceManager.queryOrdersInAndWaitService(
object : OchCommonServiceCallback<TaxiPassengerOrdersInServiceQueryRespBean> {
override fun onSuccess(data: TaxiPassengerOrdersInServiceQueryRespBean) {
d(M_TAXI_P + TAG, "queryInAndWaitOrders data.data=${GsonUtils.toJson(data.data)}")
d(
M_TAXI_P + TAG,
"queryInAndWaitOrders data.data=${GsonUtils.toJson(data.data)}"
)
//目前后端将一个订单拆分成了多个任务,乘客屏只关心 送驾 类型的任务
//20230829 后端修改了逻辑在乘客屏startTask后taskType才会变成3
if (data.data.taskType == TaskType_NONE ||
data.data.taskType == TaskType_VIRTUAL) {
d(M_TAXI_P + TAG, "queryInAndWaitOrders data.taskType=${data.data.taskType}, discard data")
data.data.taskType == TaskType_VIRTUAL
) {
d(
M_TAXI_P + TAG,
"queryInAndWaitOrders data.taskType=${data.data.taskType}, discard data"
)
// 如果上一个是 接驾或送驾任务 下一个是演练任务需要reset页面状态
currentOCHOrder = null
orderStatusChange()
@@ -180,11 +187,19 @@ object TaxiPassengerModel {
val currentOrder = data.data.order
currentLineId = data.data.lineId
currentTrajectoryInfo = data.data.trajectoryInfoByQuery
if (currentOCHOrder == null
|| currentOCHOrder?.orderStatus != currentOrder.orderStatus
) {
if (currentOCHOrder == null) {
currentOCHOrder = currentOrder
orderStatusChange()
} else if (currentOCHOrder?.orderStatus != currentOrder.orderStatus) {
if (currentOCHOrder?.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.code
&& currentOrder.orderStatus < TaxiPassengerOrderStatusEnum.UserArriveAtStart.code
) {
// 0830 UserArriveAtStart 状态是乘客屏本地在用户验证后本地设置,而且因为后端查询数据有延迟
// 这里过下过滤如果当前是UserArriveAtStart 且后端返回是之前状态,不更新数据
} else {
currentOCHOrder = currentOrder
orderStatusChange()
}
} else {
currentOCHOrder = currentOrder
}
@@ -209,14 +224,20 @@ object TaxiPassengerModel {
* 仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder
*/
private fun queryCurrentOrderStatus() {
d(M_TAXI_P + TAG, "queryCurrentOrderStatus: currentOCHOrder.orderNo=${currentOCHOrder?.orderNo}")
d(
M_TAXI_P + TAG,
"queryCurrentOrderStatus: currentOCHOrder.orderNo=${currentOCHOrder?.orderNo}"
)
currentOCHOrder?.orderNo?.let {
TaxiPassengerServiceManager.queryOrderById(
mContext!!,
it,
object : OchCommonServiceCallback<TaxiPassengerOrderQueryRespBean> {
override fun onSuccess(data: TaxiPassengerOrderQueryRespBean) {
d(M_TAXI_P + TAG, "queryCurrentOrderStatus: onSuccess data=${GsonUtils.toJson(data)}")
d(
M_TAXI_P + TAG,
"queryCurrentOrderStatus: onSuccess data=${GsonUtils.toJson(data)}"
)
if (data.data != null
&& currentOCHOrder != null
&& currentOCHOrder!!.orderNo == data.data.orderNo

View File

@@ -71,6 +71,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
mView?.showOrHideArrivedEndLayout(isShow = false)
mView?.showOrHidePressengerCheckPager(true)
mView?.showOrHideStartAutopilotView(isShow = false)
overMapViewClear()
}
TaxiPassengerOrderStatusEnum.UserArriveAtStart -> {
@@ -78,6 +79,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
mView?.showOrHideArrivedEndLayout(isShow = false)
mView?.showOrHidePressengerCheckPager(isShow = false)
mView?.showOrHideStartAutopilotView(isShow = true)
overMapViewClear()
}
TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> {