[Taxi无人化]fix: 当从 接送/送驾 任务 -> 演练任务 时 页面没刷新的问题;

This commit is contained in:
aibingbing
2023-08-25 15:14:34 +08:00
committed by zhongchao
parent 3cf7e35b57
commit eff64e72dc
3 changed files with 19 additions and 3 deletions

View File

@@ -15,6 +15,7 @@ import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager
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.scene.SceneConstant.Companion.M_TAXI_P
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
@@ -155,13 +156,18 @@ object TaxiPassengerModel {
override fun onSuccess(data: TaxiPassengerOrdersInServiceQueryRespBean) {
if (data.data == null) {
if (currentOCHOrder != null) {
d(M_TAXI_P + TAG, "queryInAndWaitOrders queryCurrentOrderStatus()")
queryCurrentOrderStatus()
}
return
}
d(M_TAXI_P + TAG, "queryInAndWaitOrders data.data=${GsonUtils.toJson(data.data)}")
//目前后端将一个订单拆分成了多个任务,乘客屏只关心 送驾 类型的任务,这里过滤其他任务避免干扰
if (data.data.taskType != TaskType_DRIVE_TO_END) {
d(M_TAXI_P + TAG, "queryInAndWaitOrders data.taskType=${data.data.taskType}, discard data")
// 如果上一个是 接驾或送驾任务 下一个是演练任务需要reset页面状态
currentOCHOrder = null
orderStatusChange()
return
}
//1. 处理进行中订单
@@ -186,11 +192,11 @@ object TaxiPassengerModel {
}
override fun onError() {
e(M_TAXI_P + TAG, "queryInAndWaitOrders onError")
e(M_TAXI_P + TAG, "queryInAndWaitOrders: onError")
}
override fun onFail(code: Int, msg: String) {
e(M_TAXI_P + TAG, "queryInAndWaitOrders$code$msg")
e(M_TAXI_P + TAG, "queryInAndWaitOrders: code=$code, msg=$msg")
}
})
}
@@ -199,12 +205,14 @@ object TaxiPassengerModel {
* 仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder
*/
private fun queryCurrentOrderStatus() {
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)}")
if (data.data != null
&& currentOCHOrder != null
&& currentOCHOrder!!.orderNo == data.data.orderNo
@@ -326,7 +334,7 @@ object TaxiPassengerModel {
fun orderStatusChange() {
orderStatusChangeInner()
if (mOrderStatusCallbackMap.isNotEmpty()) {
d(M_TAXI_P + TAG, "最新的状态${curOrderStatus}")
d(M_TAXI_P + TAG, "最新的状态-->${curOrderStatus}")
for (callback in mOrderStatusCallbackMap.values) {
callback.onCurrentOrderStatusChanged(currentOCHOrder)
}

View File

@@ -73,6 +73,7 @@ object TaxiPassengerServiceManager {
if (ordersInServiceQueryResp.data == null
|| ordersInServiceQueryResp.data.lineId == -1L
) {
ordersInServiceQueryResp.data.trajectoryInfoByQuery = null
return@flatMap Observable.just(ordersInServiceQueryResp)
}
val lineId = ordersInServiceQueryResp.data.lineId

View File

@@ -109,6 +109,13 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
mView?.showOrHideArrivedEndLayout(isShow = false)
overMapViewClear()
}
TaxiPassengerOrderStatusEnum.None -> {
// 00 默认状态,在不同任务之间切换时使用
mView?.showOrHideStartAutopilotView(isShow = false)
mView?.showOrHidePressengerCheckPager(isShow = false)
mView?.showOrHideArrivedEndLayout(isShow = false)
overMapViewClear()
}
else -> {}
}
}