From fb56f3afb3835d1761d997c302b25070cc82e77e Mon Sep 17 00:00:00 2001 From: aibingbing Date: Wed, 30 Aug 2023 12:09:37 +0800 Subject: [PATCH] =?UTF-8?q?[Taxi=E6=97=A0=E4=BA=BA=E5=8C=96]=20fix:=20?= =?UTF-8?q?=E5=8E=8B=E6=B5=8B=20ViewModel=E6=9C=AA=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E9=97=AE=E9=A2=98=EF=BC=9B=20fix:=20=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E5=B1=8F=20=E5=88=B0=E8=BE=BE=E4=B8=8A=E8=BD=A6?= =?UTF-8?q?=E7=82=B9=E5=90=8E=20=E5=90=8E=E7=AB=AF=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=8A=B6=E6=80=81=20=E5=BB=B6=E8=BF=9F=20=EF=BC=8C=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=95=B0=E6=8D=AE=EF=BC=9B=20refactor:=20=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E5=B1=8F=20=E5=A2=9E=E5=8A=A0=E6=B8=85=E9=99=A4=20?= =?UTF-8?q?=E6=A6=82=E8=A7=88=20=E4=B8=AD=E8=BD=A8=E8=BF=B9=E5=92=8CMarker?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E6=9C=BA=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxi/ui/task/TaxiCurrentTaskFragment.kt | 12 +++++- .../passenger/model/TaxiPassengerModel.kt | 37 +++++++++++++++---- .../presenter/BaseTaxiPassengerPresenter.kt | 2 + 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt index 024522157c..abe6a23479 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -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 diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index 161ac6e44e..6e5a910e77 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -156,12 +156,19 @@ object TaxiPassengerModel { TaxiPassengerServiceManager.queryOrdersInAndWaitService( object : OchCommonServiceCallback { 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 { 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 diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt index 8afb17216f..88c3ad387a 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -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 -> {