diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/order/OrderModel.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/order/OrderModel.kt index fbed1c8d2d..5a88421ccd 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/order/OrderModel.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/order/OrderModel.kt @@ -7,6 +7,7 @@ object OrderModel { private val mOrderStatusCallbackMap: MutableMap = ConcurrentHashMap() var orderBean: BaseOrderBean?=null + var preOrderBean: BaseOrderBean?=null init { @@ -21,23 +22,35 @@ object OrderModel { mOrderStatusCallbackMap[tag] = callback } - fun invokeListener(orderBean: T?){ + fun invokeListener(newOrderBean: T?){ + preOrderBean?.let { + if(newOrderBean!=null){ + if(it.orderNo==newOrderBean.orderNo){ + return + } + } + } if(this.orderBean==null){ - this.orderBean = orderBean + this.orderBean = newOrderBean }else { - if(orderBean==null){ + if(newOrderBean==null){ + this.preOrderBean = this.orderBean this.orderBean = null }else{ - if (this.orderBean!!.orderNo == orderBean.orderNo && this.orderBean!!.orderStatus == orderBean.orderStatus) { - return + if(this.orderBean!!.orderNo == newOrderBean.orderNo){ + if(this.orderBean!!.orderStatus >= newOrderBean.orderStatus){ + return + }else{ + this.orderBean = newOrderBean + } }else{ - this.orderBean = orderBean + this.orderBean = newOrderBean } } } for (callback in mOrderStatusCallbackMap.values) { - callback.onCurrentOrderStatusChanged(orderBean) + callback.onCurrentOrderStatusChanged(newOrderBean) } } } \ No newline at end of file