From bd6a8872438a35d47821c5d5da7fe149e5fed3ab Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期三, 21 六月 2023 09:53:36 +0800 Subject: [PATCH] 处理收不到广播 --- app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 46 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 2f84cdf..e98e7f3 100644 --- a/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt +++ b/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.os.Handler import android.os.Looper +import android.util.Log import cn.sinata.xldutils.netstatus.NetUtils import cn.sinata.xldutils.utils.toast import com.google.gson.Gson @@ -17,8 +18,31 @@ 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?) { + MyApplication.upLog("收到广播,Action:${intent?.action}") + Log.e("MoneyBroadCastReceiver","收到广播,Action:${intent?.action}") if (intent == null && contexts == null) { toast("内容获取为空,广播接收消息错误") return @@ -28,6 +52,7 @@ when (intent!!.action) { "wisdom.intent.action.ledLight" -> { val isHeavy = intent!!.getBooleanExtra("isHeavy", true) + MyApplication.upLog("广播内容,isHeavy:${isHeavy}") if (isHeavy) { callStatue(contexts!!, 5) //代表让订单到进行中 } @@ -48,6 +73,7 @@ companion object { fun callStatue(contexts: Context, i: Int) { if (MyApplication.currentOrderId.isEmpty()) { + MyApplication.upLog("callStatue error,MyApplication.currentOrderId.isEmpty") toast("没有进行中的订单,无法开始") return } @@ -55,6 +81,7 @@ if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理 callStartOrder(contexts, i) } else { //无网络 存本地 + toast("当前没有网络,订单将保存在本地") var bean = LocalOrderBean() bean.orderId = MyApplication.currentOrderId bean.startTime = System.currentTimeMillis() @@ -62,11 +89,11 @@ } } else { //有数据存着,并且有网络上传异常订单 如果没有网络就不处理,这个肯定是线下的单 if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { - callErrorOrder(contexts) + toast("有网络,有异常数据,此次数据不受理") +// callErrorOrder(contexts) } } } - fun callOver(contexts: Context, travelFee: Double) { if (MyApplication.currentOrderId.isEmpty()) { @@ -77,6 +104,7 @@ if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理 callEndOrder(contexts, travelFee) } else { //无网络 存本地 + toast("当前没有网络,订单将保存在本地") var bean = LocalOrderBean() bean.orderId = MyApplication.currentOrderId bean.endTime = System.currentTimeMillis() @@ -123,25 +151,28 @@ if (bean.startTime <= 0L) { if (NetUtils.isNetworkConnected(MyApplication.getInstance())){ CacheKey.saveLocalOrderBeanNull() - MyApplication.currentOrderId = "" + toast("调用正常结束,在异常订单中") callEndOrder(contexts,bean.money) } }else{ if (NetUtils.isNetworkConnected(MyApplication.getInstance())){ - CacheKey.saveLocalOrderBeanNull() - MyApplication.currentOrderId = "" 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) } } } - } } @@ -158,6 +189,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 @@ -171,9 +208,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