From adf8013576cbdd12e5ebea8ff7e32baf5d558b27 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期二, 13 六月 2023 18:30:19 +0800
Subject: [PATCH] 公务出行订单列表

---
 app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt            |   52 +++++++++++++
 app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt             |   23 +++++
 app/src/main/res/layout/activity_order_cancel_detail.xml                    |    1 
 app/src/main/res/layout/activity_safe.xml                                   |    2 
 app/src/main/res/layout/item_order.xml                                      |   28 +++++++
 app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt    |    8 ++
 app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt |   85 +++++++++++++++++++++
 7 files changed, 199 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt b/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt
index c5f4cc1..6567198 100644
--- a/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt
+++ b/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt
@@ -57,6 +57,7 @@
     var state: Int = 0, //订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)加个15作为改派成功
     var auditStatus: Int = -1, //审核状态(-1 其他正常订单 -2取消订单 0待审核 1审核通过 2拒绝)
     val auditRemark: String = "",
+    val auditUser: String = "",
     val time: String = "",
     val travelMoney: Double = 0.0,
     val roadTollMoney: Double = 0.0,
@@ -117,6 +118,28 @@
         else->""
     }
 
+    fun getOfficialStateStr() = when(state){
+        1->{
+            when(auditStatus){
+                0->"待处理"
+                2->"已处理"
+                -2->"已取消"
+                else->"等待应答"
+            }
+        }
+        2,3->"等待接驾"
+        4->"等待上车"
+        5->"服务中"
+        6->"待确认费用"
+        7->"待支付"
+        8->"待评价"
+        9->"已完成"
+        10->"已取消"
+        11->"改派中"
+        12->"取消待支付"
+        else->""
+    }
+
     fun getCharterState() = when(state){
         1->"待处理"
         2->"已处理"
diff --git a/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt b/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt
index 6694c25..403ab67 100644
--- a/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt
+++ b/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt
@@ -22,6 +22,7 @@
 import com.kuanzhai.user.ui.crosscity.PayCrossActivity
 import com.kuanzhai.user.ui.mine.adapter.CharterOrderAdapter
 import com.kuanzhai.user.ui.mine.adapter.LogisticsAdapter
+import com.kuanzhai.user.ui.mine.adapter.OfficialOrderAdapter
 import com.kuanzhai.user.ui.mine.adapter.TripOrderAdapter
 import com.kuanzhai.user.ui.trip.OrderCancelDetailActivity
 import com.kuanzhai.user.ui.trip.OrderDetailActivity
@@ -62,6 +63,8 @@
                     payThankDialog.show(childFragmentManager, "thank")
                 }
             })
+            TYPE_OFFICIAL -> OfficialOrderAdapter(datas)
+
             TYPE_LOGISTICS_SAME, TYPE_LOGISTICS_CROSS -> LogisticsAdapter(datas,
                 object : LogisticsAdapter.ClickCallback {
                     override fun onPay(index: Int) {
@@ -211,6 +214,55 @@
                         }
                     }
                 }
+                Const.OrderType.TYPE_OFFICIAL->{
+                    if (order.auditStatus == 2){
+                        startActivityForResult<OrderCancelDetailActivity>(
+                            1,
+                            "id" to order.orderId,
+                            "type" to order.orderType
+                        )
+                    } else if (order.auditStatus == 0){
+                        startActivityForResult<TripActivity>(
+                            1,
+                            "id" to order.orderId,
+                            "type" to order.orderType
+                        )
+                    }else{
+                        when (order.state) {
+                            in (1..6) -> startActivityForResult<TripActivity>(
+                                1,
+                                "id" to order.orderId,
+                                "type" to order.orderType
+                            )
+                            10 -> {
+                                startActivityForResult<OrderCancelDetailActivity>(
+                                    1,
+                                    "id" to order.orderId,
+                                    "type" to order.orderType
+                                )
+                            }
+                            11 -> {
+                                startActivityForResult<TripActivity>(
+                                    1,
+                                    "id" to order.orderId,
+                                    "type" to order.orderType
+                                )
+                            }
+                            7, 12 ->
+                                startActivityForResult<OrderDetailActivity>(
+                                    1,
+                                    "id" to order.orderId,
+                                    "type" to order.orderType
+                                )
+                            else ->
+                                startActivityForResult<OrderDetailWithMapActivity>(
+                                    1,
+                                    "id" to order.orderId,
+                                    "type" to order.orderType
+                                )
+                        }
+                    }
+                }
             }
         }
     }
diff --git a/app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt b/app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt
new file mode 100644
index 0000000..a5044b8
--- /dev/null
+++ b/app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt
@@ -0,0 +1,85 @@
+package com.kuanzhai.user.ui.mine.adapter
+
+import android.view.View
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.core.os.bundleOf
+import cn.sinata.xldutils.activity.BaseActivity
+import cn.sinata.xldutils.adapter.HFRecyclerAdapter
+import cn.sinata.xldutils.adapter.util.ViewHolder
+import cn.sinata.xldutils.gone
+import cn.sinata.xldutils.utils.myToast
+import cn.sinata.xldutils.visible
+import com.kuanzhai.user.R
+import com.kuanzhai.user.dialog.TipDialog
+import com.kuanzhai.user.interfaces.StringCallback
+import com.kuanzhai.user.network.HttpManager
+import com.kuanzhai.user.network.entity.Order
+import com.kuanzhai.user.network.request
+import com.kuanzhai.user.utils.Const
+import org.jetbrains.anko.textColorResource
+
+data class OfficialOrderAdapter(val datas:ArrayList<Order>):HFRecyclerAdapter<Order>(datas, R.layout.item_order) {
+    override fun onBind(holder: ViewHolder, position: Int, data: Order) {
+        holder.bind<TextView>(R.id.tv_tag).gone()
+        holder.bind<View>(R.id.tv_thank).gone()
+        holder.bind<TextView>(R.id.tv_thank_money).gone()
+
+
+        holder.setText(R.id.tv_time,data.orderTime)
+        holder.setText(R.id.tv_state,data.getOfficialStateStr())
+        holder.bind<TextView>(R.id.tv_state).textColorResource = data.getStateColor()
+
+        val tvTime = holder.bind<TextView>(R.id.tv_trip_time)
+        val tvStart = holder.bind<TextView>(R.id.tv_start)
+        val tvEnd = holder.bind<TextView>(R.id.tv_end)
+        val ll_check = holder.bind<LinearLayout>(R.id.ll_check)
+        if (data.auditStatus == 0||data.auditStatus == 2){ //待审核和审核失败
+            ll_check.visible()
+            val tvAction = holder.bind<TextView>(R.id.tv_action_check)
+            tvAction.text = if (data.auditStatus == 0) "取消订单" else "详情"
+            tvAction.setOnClickListener {
+                if (data.auditStatus == 0){
+                    val tipDialog = TipDialog()
+                    tipDialog.arguments = bundleOf("msg" to "是否确认取消订单?")
+                    tipDialog.setCallback(object :TipDialog.OnClickCallback{
+                        override fun onOk() {
+                            HttpManager.cancelOrder(data.orderId,data.orderType).request(context as BaseActivity){_,_->
+                                (context as BaseActivity).myToast("取消成功")
+                                data.state = 10
+                                data.auditStatus = -2
+                                notifyItemChanged(position)
+                            }
+                        }
+
+                        override fun onCancel() {
+                        }
+                    })
+                    tipDialog.show((context as BaseActivity).supportFragmentManager,"cancel")
+                }
+            }
+            tvTime.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
+            tvStart.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
+            tvEnd.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
+            tvStart.textColorResource = R.color.textColor66
+            tvEnd.textColorResource = R.color.textColor66
+        }else{
+            ll_check.gone()
+            tvTime.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_time,0,0,0)
+            tvStart.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_starting_point,0,0,0)
+            tvEnd.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_end_point,0,0,0)
+            tvStart.textColorResource = R.color.textColor
+            tvEnd.textColorResource = R.color.textColor
+        }
+
+        holder.setText(R.id.tv_trip_time,data.time)
+        holder.setText(R.id.tv_start,data.startAddress)
+        holder.setText(R.id.tv_end,data.endAddress)
+        holder.bind<TextView>(R.id.tv_count).apply {
+            visibility = if (data.orderType == Const.OrderType.TYPE_CROSS_CITY) {
+                text = String.format("%d人",data.num)
+                View.VISIBLE
+            } else View.GONE
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt b/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt
index 94ebc47..5154f86 100644
--- a/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt
+++ b/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt
@@ -4,6 +4,7 @@
 import com.kuanzhai.user.network.HttpManager
 import com.kuanzhai.user.network.request
 import com.kuanzhai.user.ui.TransparentStatusBarActivity
+import com.kuanzhai.user.utils.Const
 import kotlinx.android.synthetic.main.activity_order_cancel_detail.*
 
 class OrderCancelDetailActivity:TransparentStatusBarActivity() {
@@ -31,6 +32,13 @@
                 tv_money.text = String.format("%.2f",it.cancelMoney)
                 tv_reason.text = it.cancelReason
                 tv_describe.text = if (it.cancelRemark.isEmpty()) "无" else it.cancelRemark
+                if (type == Const.OrderType.TYPE_OFFICIAL&&it.auditStatus == 2){
+                    title = "审核失败"
+                    tv_1.text = "审核方"
+                    tv_side.text = it.auditUser
+                    tv_reason.text = "审核不通过"
+                    tv_reason.text = it.auditRemark
+                }
             }
         }
     }
diff --git a/app/src/main/res/layout/activity_order_cancel_detail.xml b/app/src/main/res/layout/activity_order_cancel_detail.xml
index a5719fc..75e9546 100644
--- a/app/src/main/res/layout/activity_order_cancel_detail.xml
+++ b/app/src/main/res/layout/activity_order_cancel_detail.xml
@@ -120,6 +120,7 @@
             android:textStyle="bold"
             tools:text="无"/>
         <TextView
+            android:id="@+id/tv_1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="取消方:"
diff --git a/app/src/main/res/layout/activity_safe.xml b/app/src/main/res/layout/activity_safe.xml
index 91567c8..17a26da 100644
--- a/app/src/main/res/layout/activity_safe.xml
+++ b/app/src/main/res/layout/activity_safe.xml
@@ -23,6 +23,7 @@
         android:layout_height="wrap_content"
         android:id="@+id/tv_real_name"
         android:text="实名认证"
+        android:visibility="gone"
         style="@style/style_form_text_setting"
         android:layout_marginEnd="14dp"
         android:layout_marginStart="14dp"
@@ -31,6 +32,7 @@
     <View style="@style/style_form_divider_line"
         android:layout_marginStart="14dp"
         android:layout_marginEnd="14dp"
+        android:visibility="gone"
         app:layout_constraintTop_toBottomOf="@id/tv_real_name"/>
     <TextView
         android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/item_order.xml b/app/src/main/res/layout/item_order.xml
index 2f44901..eefc055 100644
--- a/app/src/main/res/layout/item_order.xml
+++ b/app/src/main/res/layout/item_order.xml
@@ -133,5 +133,33 @@
             android:background="@drawable/bg_thank"
             android:layout_marginTop="24dp"
             android:padding="8dp"/>
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:id="@+id/ll_check"
+            android:visibility="gone"
+            app:layout_constraintTop_toBottomOf="@id/tv_end">
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1px"
+                android:background="@color/dividing_line_color"
+                android:layout_marginTop="13dp"
+                android:layout_marginStart="20dp"/>
+            <TextView
+                android:id="@+id/tv_action_check"
+                android:layout_width="86dp"
+                android:layout_height="wrap_content"
+                android:text="详情"
+                android:textColor="@color/colorPrimary"
+                android:textSize="15sp"
+                android:layout_gravity="end"
+                android:textStyle="bold"
+                android:gravity="center"
+                android:background="@drawable/bg_orange_line_4dp"
+                android:paddingVertical="7dp"
+                android:layout_marginTop="12dp"
+                android:layout_marginEnd="7dp"/>
+        </LinearLayout>
     </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file

--
Gitblit v1.7.1