From 40f9ac00ec5e4d6363450d1c8e0b0937cc0b1de4 Mon Sep 17 00:00:00 2001 From: liugl <liugl@sinata.cn> Date: 星期四, 14 一月 2021 10:50:18 +0800 Subject: [PATCH] 1。4:处理预约单导致串单的问题 隐藏预约单 --- app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 42 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt b/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt index 55c5149..b720235 100644 --- a/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt +++ b/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt @@ -3,7 +3,6 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.net.ConnectivityManager import android.os.Handler import android.os.Looper import cn.sinata.xldutils.netstatus.NetUtils @@ -18,6 +17,27 @@ import org.greenrobot.eventbus.EventBus import java.lang.Exception +/*** + * 为了支持本页面所需的 MyApplication.currentOrderId 所以在订单列表获取处,订单页面,设置了这个常量的值 + * + * 1:接单后 重车时无网 + * --车载屏无反应 + * 缓存 订单开始状态 + * 来网后空车时 --》 查看是否有进行中id,是否有缓存 + * + * + * 2:接单后 空车时无网 + * + * + * + * 3:接单后 正常状态 + * + * + * + * 4:接单后 都没有网络 + * + * + */ class MoneyBroadCastReceiver : BroadcastReceiver() { override fun onReceive(contexts: Context?, intent: Intent?) { if (intent == null && contexts == null) { @@ -56,6 +76,7 @@ if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理 callStartOrder(contexts, i) } else { //无网络 存本地 + toast("当前没有网络,订单将保存在本地") var bean = LocalOrderBean() bean.orderId = MyApplication.currentOrderId bean.startTime = System.currentTimeMillis() @@ -63,11 +84,11 @@ } } else { //有数据存着,并且有网络上传异常订单 如果没有网络就不处理,这个肯定是线下的单 if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { - callErrorOrder(contexts) + toast("有网络,有异常数据,此次数据不受理") +// callErrorOrder(contexts) } } } - fun callOver(contexts: Context, travelFee: Double) { if (MyApplication.currentOrderId.isEmpty()) { @@ -78,6 +99,7 @@ if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理 callEndOrder(contexts, travelFee) } else { //无网络 存本地 + toast("当前没有网络,订单将保存在本地") var bean = LocalOrderBean() bean.orderId = MyApplication.currentOrderId bean.endTime = System.currentTimeMillis() @@ -124,27 +146,32 @@ if (bean.startTime <= 0L) { if (NetUtils.isNetworkConnected(MyApplication.getInstance())){ CacheKey.saveLocalOrderBeanNull() + toast("调用正常结束,在异常订单中") callEndOrder(contexts,bean.money) } }else{ if (NetUtils.isNetworkConnected(MyApplication.getInstance())){ - CacheKey.saveLocalOrderBeanNull() val map = getMapByAny() map["orderId"] = bean.orderId map["orderType"] = bean.orderType map["type"] = "1" map["travelFee"] = bean.money - callNet(contexts, "api/order/confirmFees$", map) { + CacheKey.saveLocalOrderBeanNull() + toast("调用异常结束,在异常订单中 id==="+bean.orderId) + callNet(contexts, "api/order/confirmFees$", map,{ + MyApplication.currentOrderId = "" toast("上传异常订单成功") EventBus.getDefault().post(BaseEvent(BaseEvent.ERROR_INFO)) + }) { + toast("上传异常订单失败") + CacheKey.saveLocalOrderBean(bean) } } } - } } - private fun callStartOrder(contexts: Context, i: Int) { + fun callStartOrder(contexts: Context, i: Int) { var map = getMapByAny() map["orderId"] = MyApplication.currentOrderId map["orderType"] = MyApplication.currentOrderType @@ -157,6 +184,12 @@ } private fun callEndOrder(contexts: Context, travelFee: Double) { + if (MyApplication.getLocation().latitude == 0.0){ + Handler(Looper.getMainLooper()).post { + toast("结束时的位置为空,停止结束") + } + return + } var map = getMapByAny() map["orderId"] = MyApplication.currentOrderId map["orderType"] = MyApplication.currentOrderType @@ -170,9 +203,11 @@ mapOrder["orderType"] = MyApplication.currentOrderType callNet(contexts, Api.queryOrderInfo, mapOrder) { var orderBean = Gson().fromJson(it, OrderBean::class.java) + EventBus.getDefault().post(BaseEvent(BaseEvent.UPDATA_MAIN_CAR)) if (orderBean.data.orderState == 7){ EventBus.getDefault().post(BaseEvent(BaseEvent.SURE_MONEY)) } + MyApplication.currentOrderId = "" if (orderBean.data.orderState == 2 ||orderBean.data.orderState == 3 || orderBean.data.orderState == 4 ){ Handler(Looper.getMainLooper()).postDelayed({ toast("发送网约") -- Gitblit v1.7.1