[fea]
[taxi order change listener]
This commit is contained in:
yangyakun
2024-07-10 19:43:23 +08:00
parent 21f39a83e7
commit 42443c0b71
21 changed files with 73 additions and 47 deletions

View File

@@ -1,4 +1,4 @@
package com.mogo.och.taxi.passenger.ui.model.order;
package com.mogo.och.common.module.biz.order;
public class BaseOrderBean {
public String orderNo;// 订单号

View File

@@ -1,4 +1,6 @@
package com.mogo.och.taxi.passenger.ui.model.order
package com.mogo.och.common.module.biz.order
import com.mogo.och.common.module.biz.order.BaseOrderBean
interface OrderListener {
// 当前进行单状态变更:新到进行中订单、进行中单状态变更

View File

@@ -1,15 +1,14 @@
package com.mogo.och.taxi.passenger.ui.model.order
package com.mogo.och.common.module.biz.order
import com.mogo.och.taxi.passenger.ui.model.music.MusicModel
import java.util.concurrent.ConcurrentHashMap
object OrderModel {
private val mOrderStatusCallbackMap: MutableMap<String, OrderListener> = ConcurrentHashMap()
var orderBean:BaseOrderBean?=null
var orderBean: BaseOrderBean?=null
init {
MusicModel.load()
}
fun setOrderStatusCallback(tag: String?, callback: OrderListener?) {
@@ -22,7 +21,23 @@ object OrderModel {
}
fun <T: BaseOrderBean?>invokeListener(orderBean: T?){
this.orderBean = orderBean
if(this.orderBean==null){
this.orderBean = orderBean
}else {
if(orderBean==null){
this.orderBean = orderBean
}else{
if (this.orderBean!!.orderNo == orderBean.orderNo && this.orderBean!!.orderStatus == orderBean.orderStatus) {
return
}else{
this.orderBean = orderBean
}
}
}
for (callback in mOrderStatusCallbackMap.values) {
callback.onCurrentOrderStatusChanged(orderBean)
}

View File

@@ -1,6 +1,7 @@
package com.mogo.och.taxi.bean;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.common.module.biz.order.BaseOrderBean;
import java.util.List;
import java.util.Objects;
@@ -13,13 +14,11 @@ import java.util.Objects;
public class OrderQueryRespBean extends BaseData {
public Result data;
public static class Result implements Comparable<Result>{
// 订单no
public String orderNo;
public static class Result extends BaseOrderBean implements Comparable<Result>{
// 订单类型
public int orderType; //1即时单 2预约单
// 订单状态
public int orderStatus;
// 订单运营类型 9出租车10小巴
public int businessType;
// 起始站点id
@@ -68,6 +67,11 @@ public class OrderQueryRespBean extends BaseData {
// !!!接口中暂无此字段仅用于本地实现逻辑使用起始站目的站距离km
public double travelDistance;
@Override
public String getEndSiteAddr() {
return endSiteAddr;
}
/**
* @param distance
*/

View File

@@ -20,6 +20,7 @@ import com.mogo.och.common.module.biz.login.ILoginCallback;
import com.mogo.och.common.module.biz.login.LoginStatusEnum;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum;
import com.mogo.och.common.module.biz.order.OrderModel;
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
import com.mogo.och.common.module.manager.autopilot.line.LineManager;
@@ -286,6 +287,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
@Override
public void onCurrentOrderStatusChanged(OrderQueryRespBean.Result order) {
OchChainLogManager.writeChainLog("订单信息变化",order.toString());
OrderModel.INSTANCE.invokeListener(order);
CallerLogger.d(M_TAXI + TAG, "order = " + order.toString());
LineManager.setLineId(order.lineId);
if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus) {

View File

@@ -1,7 +1,7 @@
package com.mogo.och.taxi.passenger.bean;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean;
import com.mogo.och.common.module.biz.order.BaseOrderBean;
import java.util.List;
import java.util.Objects;

View File

@@ -36,7 +36,7 @@ import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum.Companion.valueOf
import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager
import java.util.concurrent.ConcurrentHashMap

View File

@@ -14,9 +14,9 @@ import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.taxi.passenger.model.AutopilotManager
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean
import com.mogo.och.taxi.passenger.ui.model.order.OrderListener
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
/**
* @author: wangmingjun

View File

@@ -2,9 +2,9 @@ package com.mogo.och.taxi.passenger.ui.checkstartautopilot
import androidx.lifecycle.ViewModel
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean
import com.mogo.och.taxi.passenger.ui.model.order.OrderListener
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
class ChekAndStartAutopilotViewModel : ViewModel(), OrderListener {

View File

@@ -9,9 +9,9 @@ import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean
import com.mogo.och.taxi.passenger.ui.model.order.OrderListener
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
import kotlin.math.ceil
class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback, OrderListener {

View File

@@ -3,7 +3,7 @@ package com.mogo.och.taxi.passenger.ui.arrived
import androidx.lifecycle.ViewModel
import com.mogo.och.common.module.manager.distance.IDistanceListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.OrderModel
class ArrivedViewModel : ViewModel(), IDistanceListener {

View File

@@ -6,7 +6,7 @@ import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.distance.IDistanceListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.OrderModel
class EvaluateViewModel : ViewModel(), IDistanceListener {

View File

@@ -7,9 +7,9 @@ import com.mogo.och.common.module.manager.audition.AuditionManager
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean
import com.mogo.och.taxi.passenger.ui.model.order.OrderListener
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import io.reactivex.disposables.Disposable
@@ -21,7 +21,7 @@ object MusicModel : OrderListener, IOchAutopilotStatusListener {
}
private var stopMusicDisposable: Disposable? = null
private var orderInfo:BaseOrderBean? = null
private var orderInfo: BaseOrderBean? = null
private const val startMusicWithOrderKey = "STARTMUSICWITHORDER"

View File

@@ -1,6 +1,7 @@
package com.mogo.och.taxi.passenger.ui.music
import androidx.lifecycle.ViewModel
import com.mogo.och.taxi.passenger.ui.model.music.MusicModel
class MusicViewModel: ViewModel() {
@@ -9,7 +10,7 @@ class MusicViewModel: ViewModel() {
private var viewCallback: IMusicViewCallback?=null
init {
MusicModel.load()
}
fun setDistanceCallback(viewCallback: IMusicViewCallback){

View File

@@ -1,6 +1,7 @@
package com.mogo.och.unmanned.taxi.bean
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.unmanned.taxi.constant.TaskStatusEnum
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
@@ -10,8 +11,6 @@ import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
*/
data class OrderDetail(
var orderNo: String,
var orderStatus: Int,
var orderStartSite: Site?,
var orderEndSite: Site?,
var planningLines: Array<Long>, //返回的是接驾任务的id集合
@@ -20,7 +19,7 @@ data class OrderDetail(
var fullMinutes: Int, //到站后返回的总里程 /公里
var fullMileage: Float, // 到站后返回的总用时 /分钟
var orderLine: Long // 订单路线id
) {
): BaseOrderBean() {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
@@ -238,14 +237,12 @@ data class QueryCarOrderByNoReqBean(
data class QueryCarOrderByNoRespBean(var data: Result) : BaseData() {
data class Result(
var sn: String,
var orderNo: String,
var orderStatus: Int,
var bookingUserPhone: String,
var businessType: String,
var mileage: Float,
var duration: Float,
var passengerSize: Int
)
):BaseOrderBean()
}
/**

View File

@@ -40,6 +40,7 @@ import com.mogo.och.common.module.manager.socket.cloud.data.OCHOperationalMessag
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.login.LoginService
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
@@ -772,6 +773,7 @@ object TaxiTaskModel {
if (newOrderStatus!=mCurrentTaskWithOrder?.order?.orderStatus) {
// 订单状态发生改变
orderStatusChange = true
OrderModel.invokeListener(mCurrentTaskWithOrder!!.order)
}
}
//订单或者伪任务更新, 都去刷新下界面
@@ -911,6 +913,7 @@ object TaxiTaskModel {
TaxiOrderStatusEnum.Cancel.code -> {
//更新本地标志位
mCurrentTaskWithOrder = null
OrderModel.invokeListener(data.data)
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onOrderCancel()
@@ -918,6 +921,7 @@ object TaxiTaskModel {
}
TaxiOrderStatusEnum.ArriveAtEnd.code -> {
OrderModel.invokeListener(data.data)
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onOrderTripInfoChanged(
@@ -930,6 +934,7 @@ object TaxiTaskModel {
TaxiOrderStatusEnum.JourneyCompleted.code -> {
//更新本地标志位
mCurrentTaskWithOrder = null
OrderModel.invokeListener(data.data)
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onOrderJourneyCompleted()

View File

@@ -1,7 +1,7 @@
package com.mogo.och.unmanned.passenger.bean;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean;
import com.mogo.och.common.module.biz.order.BaseOrderBean;
import java.util.List;
import java.util.Objects;

View File

@@ -31,7 +31,7 @@ import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum.Companion.valueOf
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.unmanned.passenger.bean.TaxiPassengerBaseRespBean
import com.mogo.och.unmanned.passenger.bean.TaxiPassengerGetTrajectoryByLineIdRespBean
import com.mogo.och.unmanned.passenger.bean.TaxiPassengerOrderQueryRespBean

View File

@@ -10,9 +10,9 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.unmanned.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean
import com.mogo.och.taxi.passenger.ui.model.order.OrderListener
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.unmanned.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.unmanned.passenger.model.TaxiPassengerModel
import com.mogo.och.unmanned.passenger.ui.TaxiPassengerBaseFragment

View File

@@ -2,9 +2,9 @@ package com.mogo.och.unmanned.passenger.ui.checkstartautopilot
import androidx.lifecycle.ViewModel
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean
import com.mogo.och.taxi.passenger.ui.model.order.OrderListener
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
class ChekAndStartAutopilotViewModel : ViewModel(), OrderListener {

View File

@@ -7,9 +7,9 @@ import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil
import com.mogo.och.unmanned.taxi.passenger.R
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean
import com.mogo.och.taxi.passenger.ui.model.order.OrderListener
import com.mogo.och.taxi.passenger.ui.model.order.OrderModel
import com.mogo.och.common.module.biz.order.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.unmanned.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.unmanned.passenger.model.TaxiPassengerModel
import kotlin.math.ceil