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/slab/cargo/CargoActivity.kt |  111 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 86 insertions(+), 25 deletions(-)

diff --git a/app/src/main/java/com/okgoincar/slab/cargo/CargoActivity.kt b/app/src/main/java/com/okgoincar/slab/cargo/CargoActivity.kt
index 4ebcd96..d9a471f 100644
--- a/app/src/main/java/com/okgoincar/slab/cargo/CargoActivity.kt
+++ b/app/src/main/java/com/okgoincar/slab/cargo/CargoActivity.kt
@@ -62,7 +62,11 @@
 class CargoActivity : MySlabBaseActivity() {
 
     private fun callOver(contexts: Context, travelFee: Double) {
-        MoneyBroadCastReceiver.callOver(contexts, travelFee)
+        callEnd(contexts, travelFee)
+    }
+
+    private fun callEnd(contexts: Context, travelFee: Double) {
+        showChangeCargoDialog()
     }
 
     private fun callStatue(contexts: Context, i: Int) {
@@ -169,21 +173,36 @@
     }
 
     private fun addSockectCancel() {
-        MyApplication.addOrderView(object : MyApplication.OrderStatueView {
-            override fun orderInfo(data: OrderSimpleData?) {
-                data?.let {
-                    if (it.status == 10 || it.status == 12) {
-                        Handler(Looper.getMainLooper()).post {
+        MyApplication.addOrderView(orderView)
+    }
+
+    var orderView = object : MyApplication.OrderStatueView {
+        override fun orderInfo(data: OrderSimpleData?) {
+            data?.let {
+                if (it.status == 10 || it.status == 11) {
+                    Handler(Looper.getMainLooper()).post {
+                        if (it.status == 10){
                             toast("用户已取消订单")
                             MyApplication.getTTsManager().setVideoText("用户已取消订单")
-                            MyApplication.currentOrderType = ""
-                            MyApplication.currentOrderId = ""
-                            finish()
+                        }else{
+                            toast("用户已改派订单")
+                            MyApplication.getTTsManager().setVideoText("用户已改派订单")
                         }
+                        finish()
+                    }
+                }
+                if (it.orderType == 4 || it.orderType == 5 && it.orderId.toString() == orderId) {
+                    Handler(Looper.getMainLooper()).post {
+                        initView()
                     }
                 }
             }
-        })
+        }
+    }
+
+    override fun finish() {
+        MyApplication.removeOrderView(orderView)
+        super.finish()
     }
 
     override fun onBackPressed() {
@@ -257,6 +276,10 @@
         }
 
         tv_gap_money.clickDelay {
+            if (orderBean.data.orderState == 12){
+                toast("用户已支付差价,不能修改")
+                return@clickDelay
+            }
             showGaoMoneyDialog()
         }
 
@@ -269,8 +292,11 @@
                         showStatueMapUI(it)
                     }
                     5, 6 -> {
-                        it.data.orderState = 6
-                        showChangeCargoDialog()
+                        sendCode {
+                            it.data.orderState = 6
+                            showChangeCargoDialog()
+                        }
+
                     }
                     12 -> {
                         it.data.orderState = 5
@@ -299,11 +325,20 @@
         }
     }
 
+    private fun sendCode(function: () -> Unit) {
+        var map = getMapByAny()
+        map["orderId"] = orderId
+        callNet(true,Api.sendVerificationCode, map) {
+            function()
+        }
+    }
+
+
     private fun callNumberCargo(num: String, click: () -> Unit) {
         var map = getMapByAny()
         map["orderId"] = orderId
         map["pickUpCode"] = num
-        callNet(true,Api.fillInPickUpCode, map) {
+        callNet(true,Api.                                                                                                                                                            fillInPickUpCode, map) {
             click()
         }
     }
@@ -312,7 +347,7 @@
     private fun callseatmoney(num: String, click: () -> Unit) {
         var map = getMapByAny()
         map["orderId"] = orderId
-        map["difference"] = num
+        map["difference"] = doubleTwo(num.toDouble())
         callNet(true,Api.makeUpTheDifference, map) {
             click()
         }
@@ -465,17 +500,12 @@
 
 
     private fun callOrder() {
-        MyApplication.currentOrderId = orderId
-        MyApplication.currentOrderType = orderType
         var map = getMapByAny()
         map["orderId"] = orderId
         map["orderType"] = orderType
         callNet(this, Api.queryOrderInfo, map) {
             orderBean = gson.fromJson(it, OrderBean::class.java)
             showUi(orderBean)
-//            Handler(Looper.getMainLooper()).postDelayed({
-//                startActivity<SlabOrderOverActivity>("orderId" to orderBean.data.orderId.toString() , "orderType" to orderBean.data.type.toString())
-//            },1000)
         }
         callPersion()
     }
@@ -523,14 +553,20 @@
     private fun showUi(orderBean: OrderBean?) {
         orderBean?.let {
             tv_name.text = orderBean.data.nickName
-            tv_car_num.text = it.data.historyNum.toString() + "次乘车"
+            tv_car_num.text = it.data.historyNum.toString() + "次寄物"
             tv_time.text = it.data.travelTime
             tv_start_address.text = it.data.startAddress
             tv_end_address.text = it.data.endAddress
             tv_name_phone.text = orderBean.data.nickName + "-" + orderBean.data.phone
             tv_type_cargo.text = "普通小件X" + orderBean.data.peopleNumber
             tv_red_money.text = doubleTwo(orderBean.data.tipMoney) + "元加急费"
+            if (orderBean.data.tipMoney == null || orderBean.data.tipMoney <= 0.0){
+                tv_red_money.gone()
+            }
             tv_phone.text = orderBean.data.phone
+            if (!it.data.differenceMoney.isNullOrEmpty() && it.data.differenceMoney.toDouble() > 0){
+                tv_gap_money.text = "¥"+doubleTwo(it.data.differenceMoney.toDouble())+"差价(点击修改)"
+            }
             showStatueMapUI(it)
         }
     }
@@ -585,6 +621,10 @@
     //    流程操作状态(3=开始出发预约点,4=到达预约点,5=开始服务,6=服务结束)
     private fun showStatueMapUI(it: OrderBean) {
         getAllMark(it)
+        tv_gap_money.gone()
+        if (it.data.orderState == 4 || it.data.orderState == 8 || it.data.orderState == 12){
+            tv_gap_money.visible()
+        }
         when (it.data.orderState) {
             2, 3 -> {
                 clickBroad()
@@ -601,7 +641,7 @@
                     setTitleText("去取货物")
                 }
             }
-            4,8-> {
+            4,8,12-> {
                 clickBroad()
                 iv_to_gd.gone()
                 closeLine()
@@ -721,11 +761,27 @@
             }
             callNumberCargo(num){
                 dialog.dismiss()
-                startActivity<SlabOrderOverActivity>(
-                    "orderId" to orderId,
-                    "orderType" to orderType
-                )
+                callStartOrder(this,6){
+                    startActivity<SlabCargoOverActivity>(
+                        "orderId" to orderId,
+                        "orderType" to orderType
+                    )
+                    finish()
+                }
             }
+        }
+    }
+
+    fun callStartOrder(contexts: Context, i: Int,func:() -> Unit) {
+        var map = getMapByAny()
+        map["orderId"] = orderId
+        map["orderType"] = orderType
+        map["state"] = i
+        map["lat"] = MyApplication.getLocation().latitude
+        map["lon"] = MyApplication.getLocation().longitude
+        callNet(contexts, Api.process, map) {
+            EventBus.getDefault().post(BaseEvent(BaseEvent.UP_TRIP))
+            func()
         }
     }
 
@@ -743,8 +799,13 @@
                 toast("请输入金额")
                 return@setOnClickListener
             }
+            if (num.toDouble() > 9999) {
+                toast("金额不能大于9999元")
+                return@setOnClickListener
+            }
             callseatmoney(num){
                 dialog.dismiss()
+                tv_gap_money.text = "¥"+doubleTwo(num.toDouble())+"差价(点击修改)"
                 toast("设置成功")
             }
         }

--
Gitblit v1.7.1