[fix]
[订单不可逆逻辑校验]
This commit is contained in:
yangyakun
2024-07-18 14:21:53 +08:00
parent bb0d566089
commit 776688625d

View File

@@ -7,6 +7,7 @@ object OrderModel {
private val mOrderStatusCallbackMap: MutableMap<String, OrderListener> = ConcurrentHashMap()
var orderBean: BaseOrderBean?=null
var preOrderBean: BaseOrderBean?=null
init {
@@ -21,23 +22,35 @@ object OrderModel {
mOrderStatusCallbackMap[tag] = callback
}
fun <T: BaseOrderBean?>invokeListener(orderBean: T?){
fun <T: BaseOrderBean?>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)
}
}
}