From 75ba68eb8d65a32251704c604b3e27f3121808ce Mon Sep 17 00:00:00 2001
From: liugl <liugl@sinata.cn>
Date: 星期四, 07 一月 2021 09:22:58 +0800
Subject: [PATCH] Merge branches 'cargo_small' and 'master' of http://sinata.cn:10101/gitblit/r/android/OkGoinCar into cargo_small
---
app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt | 110 ++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 84 insertions(+), 26 deletions(-)
diff --git a/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt b/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt
index 5c8e768..b720235 100644
--- a/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt
+++ b/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt
@@ -3,21 +3,41 @@
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
import cn.sinata.xldutils.utils.toast
+import com.google.gson.Gson
import com.okgoincar.bean.LocalOrderBean
+import com.okgoincar.bean.OrderBean
import com.okgoincar.netUtls.Api
import com.okgoincar.netUtls.callNet
import com.okgoincar.netUtls.getMapByAny
-import com.okgoincar.slab.util.DialogUtil
import com.okgoincar.utils.Cache.CacheKey
-import io.netty.util.NetUtil
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) {
@@ -39,13 +59,6 @@
var mileage = intent.getDoubleExtra("mileage", 0.0) //里程,单位为km
callOver(contexts!!, price)
}
-
- "android.net.conn.CONNECTIVITY_SUCCESS", "android.net.conn.CONNECTIVITY_FAILURE", "android.net.conn.CONNECTIVITY_CHANGE" -> {
-// toast("收到网络变化")
-// if (NetUtils.isNetworkConnected(MyApplication.getInstance())) {
-// callErrorOrder(contexts!!)
-// }
- }
}
}
} catch (e: Exception) {
@@ -63,6 +76,7 @@
if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理
callStartOrder(contexts, i)
} else { //无网络 存本地
+ toast("当前没有网络,订单将保存在本地")
var bean = LocalOrderBean()
bean.orderId = MyApplication.currentOrderId
bean.startTime = System.currentTimeMillis()
@@ -70,11 +84,11 @@
}
} else { //有数据存着,并且有网络上传异常订单 如果没有网络就不处理,这个肯定是线下的单
if (NetUtils.isNetworkConnected(MyApplication.getInstance())) {
- callErrorOrder(contexts)
+ toast("有网络,有异常数据,此次数据不受理")
+// callErrorOrder(contexts)
}
}
}
-
fun callOver(contexts: Context, travelFee: Double) {
if (MyApplication.currentOrderId.isEmpty()) {
@@ -85,9 +99,11 @@
if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理
callEndOrder(contexts, travelFee)
} else { //无网络 存本地
+ toast("当前没有网络,订单将保存在本地")
var bean = LocalOrderBean()
bean.orderId = MyApplication.currentOrderId
bean.endTime = System.currentTimeMillis()
+ bean.money = travelFee
CacheKey.saveLocalOrderBean(bean)
}
} else { //有数据存着,并且有网络上传异常订单 如果没有网络就不处理,这个肯定是线下的单
@@ -100,12 +116,13 @@
bean.endTime = System.currentTimeMillis()
CacheKey.saveLocalOrderBean(bean)
}
+// callEndOrder(contexts, travelFee)
callErrorOrder(contexts)
}
} else {
val bean = CacheKey.getLocalOrderBean()
bean?.let {
- if (bean.money >= 0.0) {
+ if (bean.money > 0.0) {
return@callOver
}
bean.endTime = System.currentTimeMillis()
@@ -123,23 +140,38 @@
fun callErrorOrder(contexts: Context) {
var bean = CacheKey.getLocalOrderBean()
bean?.let {
- if (bean.money <= 0.0) {
+ if (bean.endTime <= 0L){
return@let
}
- val map = getMapByAny()
- map["orderId"] = bean.orderId
- map["orderType"] = bean.orderType
- map["type"] = "1"
- map["travelFee"] = bean.money
- callNet(contexts, "api/order/confirmFees$", map) {
- toast("上传异常订单成功")
- CacheKey.saveLocalOrderBeanNull()
- EventBus.getDefault().post(BaseEvent(BaseEvent.ERROR_INFO))
+ if (bean.startTime <= 0L) {
+ if (NetUtils.isNetworkConnected(MyApplication.getInstance())){
+ CacheKey.saveLocalOrderBeanNull()
+ toast("调用正常结束,在异常订单中")
+ callEndOrder(contexts,bean.money)
+ }
+ }else{
+ if (NetUtils.isNetworkConnected(MyApplication.getInstance())){
+ val map = getMapByAny()
+ map["orderId"] = bean.orderId
+ map["orderType"] = bean.orderType
+ map["type"] = "1"
+ map["travelFee"] = bean.money
+ 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
@@ -151,8 +183,13 @@
}
}
-
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
@@ -161,7 +198,28 @@
map["lon"] = MyApplication.getLocation().longitude
map["type"] = 1
callNet(contexts, Api.confirmFees_, map) {
- EventBus.getDefault().post(BaseEvent(BaseEvent.SURE_MONEY))
+ var mapOrder = getMapByAny()
+ mapOrder["orderId"] = MyApplication.currentOrderId
+ 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("发送网约")
+ var intent = Intent();
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK;
+ intent.action = "wisdom.intent.action.topLight";
+ intent.putExtra("state", 0)
+ contexts.sendBroadcast(intent)
+ },10000)
+ }
+ }
+
}
}
--
Gitblit v1.7.1