18034727885
2026-07-02 24e757af72212bb3cdfd1325f77ae5bc1e3a1e84
城际订单改派优化
5个文件已添加
6个文件已修改
330 ■■■■■ 已修改文件
app/src/main/AndroidManifest.xml 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/base/Const.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/base/MyApplication.kt 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/bean/OperationBean.kt 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/bean/ReassignConfirmInfo.kt 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/bean/ReassignResultInfo.kt 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/netUtls/Api.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/ui/to_city/CityOrderReassignConfirmActivity.kt 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fangxinxing/xxfxx/ui/to_city/SelectDriverActivity.kt 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_city_order_reassign_confirm.xml 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/pop_pay.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml
@@ -75,6 +75,10 @@
            android:name=".ui.main.SetDestinationActivity"
            android:exported="false" />
        <activity
            android:name=".ui.to_city.CityOrderReassignConfirmActivity"
            android:exported="true"
            android:theme="@style/FadeDialog" />
        <activity
            android:name=".ui.to_city.ChangePriceActivity"
            android:exported="false" />
        <activity
app/src/main/java/com/fangxinxing/xxfxx/base/Const.java
@@ -74,6 +74,8 @@
        public final static String OFFLINE = "OFFLINE";
        public final static String REASSIGN_END_CANCEL = "REASSIGN_END_CANCEL";
        public final static String REASSIGN_CONFIRM_REQUEST = "REASSIGN_CONFIRM_REQUEST";
        public final static String REASSIGN_RESULT = "REASSIGN_RESULT";
        public final static String PASSENGERS_LOCATION_REFRESH = "PASSENGER_LOCATION";
    }
app/src/main/java/com/fangxinxing/xxfxx/base/MyApplication.kt
@@ -15,6 +15,9 @@
import androidx.annotation.RequiresApi
import cn.jpush.android.api.JPushInterface
import cn.jpush.android.api.TagAliasCallback
import com.fangxinxing.xxfxx.bean.ReassignConfirmInfo
import com.fangxinxing.xxfxx.bean.ReassignResultInfo
import com.fangxinxing.xxfxx.ui.to_city.CityOrderReassignConfirmActivity
import com.fangxinxing.xxfxx.BuildConfig
import com.fangxinxing.xxfxx.base.gaode.AMapKit
import com.fangxinxing.xxfxx.base.gaode.gpsnav.util.TTSController
@@ -36,6 +39,7 @@
import com.fangxinxing.xxfxx.bean.OrderResData
import com.fangxinxing.xxfxx.bean.OrderSimpleData
import com.fangxinxing.xxfxx.bean.websocket.HeartBean
import com.fangxinxing.xxfxx.ui.DialogUtil
import com.google.gson.Gson
import com.tencent.bugly.crashreport.CrashReport
import com.umeng.commonsdk.UMConfigure
@@ -305,6 +309,36 @@
                                )
                            }
                            Const.SOCKET_METHOD.REASSIGN_CONFIRM_REQUEST -> {
                                val info = Gson().fromJson(data, ReassignConfirmInfo::class.java)
                                if (reassignIds != info.reassignIds) {
                                    reassignIds = info.reassignIds
                                    val act = activities[activities.size - 1]
                                    act?.startActivity(
                                        CityOrderReassignConfirmActivity.getIntent(
                                            act,
                                            info
                                        ).apply {
                                            addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                                        }
                                    )
                                }
                            }
                            Const.SOCKET_METHOD.REASSIGN_RESULT -> {
                                val info = Gson().fromJson(data, ReassignResultInfo::class.java)
                                val act = activities[activities.size - 1]
                                act?.also {
                                    it.runOnUiThread {
                                        EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN))
                                        val dialog =
                                            DialogUtil.getOnlySureDialog(it, "提示", info.message) {
                                            }
                                        dialog.show()
                                    }
                                }
                            }
                            Const.SOCKET_METHOD.PASSENGERS_LOCATION_REFRESH -> {
                                EventBus.getDefault().post(
                                    BaseEvent(BaseEvent.PASSENGERS_LOCATION_REFRESH, data)
@@ -425,6 +459,7 @@
            mutableListOf()
        var testHeartNunm = 0
        var testReceiveNum = 0
        var reassignIds = ""
        fun handleSSLHandshake() {
            try {
app/src/main/java/com/fangxinxing/xxfxx/bean/OperationBean.kt
New file
@@ -0,0 +1,4 @@
package com.fangxinxing.xxfxx.bean
//操作类结果
data class OperationBean(val code: Int = 0, val msg: String? = null, val data: Boolean? = null)
app/src/main/java/com/fangxinxing/xxfxx/bean/ReassignConfirmInfo.kt
New file
@@ -0,0 +1,17 @@
package com.fangxinxing.xxfxx.bean
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
//改派确认信息
@Parcelize
data class ReassignConfirmInfo(
    var reassignIds: String,//逗号分隔的改派记录ID
    var orderIds: String,//订单ID值,逗号分隔
    var startSite: String,//起始站点
    var endSite: String,//结束站点
    var routeInfo: String,//起始站点 → 结束站点
    var totalPeopleNumber: String,//总人数
    var travelTime: String,//开始时间
    var expireTime: String,//过期时间
) : Parcelable
app/src/main/java/com/fangxinxing/xxfxx/bean/ReassignResultInfo.kt
New file
@@ -0,0 +1,14 @@
package com.fangxinxing.xxfxx.bean
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
//改派结果信息
@Parcelize
data class ReassignResultInfo(
    var reassignId: String,//改派记录ID
    var type: String,//类型
    var orderId: String,//订单id
    var orderType: String,//订单类型
    var message: String,//提示语
) : Parcelable
app/src/main/java/com/fangxinxing/xxfxx/netUtls/Api.java
@@ -52,6 +52,7 @@
    public static String queryHistoryActivityInfo = "api/driver/queryHistoryActivityInfo"; //api/driver/queryHistoryActivityInfo 获取历史日期中的活动内容
    public static String queryNeedCertificate = "base/driver/queryNeedCertificate"; //base/driver/queryNeedCertificate 注册完善个人信息根据选择的从业地判断是否需要网约车资格证
    public static String addSelfTrip = "api/crossCity/addSelfTrip"; //api/crossCity/addSelfTrip 添加自主行程
    public static String respondReassign = "api/orderCrossCity/respondReassign"; //api/orderCrossCity/respondReassign 操作司机改派订单
    public static String queryDriverLocation = "base/driver/queryNearbyCar"; // 获取司机位置
    public static String queryHeatLocation = "base/driver/queryNearbyOrderHeatMap"; // 获取热力点
app/src/main/java/com/fangxinxing/xxfxx/ui/to_city/CityOrderReassignConfirmActivity.kt
New file
@@ -0,0 +1,81 @@
package com.fangxinxing.xxfxx.ui.to_city
import android.content.Context
import android.content.Intent
import cn.sinata.xldutils.activitys.DialogActivity
import com.fangxinxing.xxfxx.R
import com.fangxinxing.xxfxx.base.BaseEvent
import com.fangxinxing.xxfxx.bean.OperationBean
import com.fangxinxing.xxfxx.bean.ReassignConfirmInfo
import com.fangxinxing.xxfxx.netUtls.Api
import com.fangxinxing.xxfxx.netUtls.callNet
import com.fangxinxing.xxfxx.netUtls.getMapByAny
import com.fangxinxing.xxfxx.utils.clickDelay
import com.fangxinxing.xxfxx.utils.toast
import com.google.gson.Gson
import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_close
import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_end
import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_people_num
import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_start
import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_sure
import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_time
import org.greenrobot.eventbus.EventBus
//跨城改派确认弹窗页
class CityOrderReassignConfirmActivity : DialogActivity() {
    private val info: ReassignConfirmInfo by lazy {
        intent.getParcelableExtra("data")
    }
    companion object {
        fun getIntent(context: Context, info: ReassignConfirmInfo): Intent {
            return Intent(context, CityOrderReassignConfirmActivity::class.java).apply {
                putExtra("data", info)
            }
        }
    }
    override fun setContentLayout(): Int {
        return R.layout.activity_city_order_reassign_confirm
    }
    override fun initView() {
        tv_time.text = info.travelTime
        tv_start.text = info.startSite
        tv_end.text = info.endSite
        tv_people_num.text = info.totalPeopleNumber + "人"
        tv_close.clickDelay { refused() }
        tv_sure.clickDelay { confirm() }
    }
    //拒绝
    private fun refused() {
        operation(2) {
            finish()
        }
    }
    //同意
    private fun confirm() {
        operation(1) { isOk ->
            finish()
            if (isOk) {
                EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN))
            }
        }
    }
    //操作
    private fun operation(responseType: Int, clickAction: (isOk: Boolean) -> Unit) {
        val map = getMapByAny()
        map["reassignIds"] = info.reassignIds
        map["responseType"] = responseType
        callNet(this, Api.respondReassign, map) {
            val bean = Gson().fromJson(it, OperationBean::class.java)
            clickAction.invoke(bean.data == true)
            if (bean.data != true && !bean.msg.isNullOrEmpty()) {
                toast(bean.msg)
            }
        }
    }
}
app/src/main/java/com/fangxinxing/xxfxx/ui/to_city/SelectDriverActivity.kt
@@ -79,6 +79,7 @@
    override fun mapObject(): HashMap<String?, Any?>? {
        var map = getMapByAny()
        map["driverShiftId"] = lineShiftDriverId
        map["orderIds"] = orderId
        return map
    }
app/src/main/res/layout/activity_city_order_reassign_confirm.xml
New file
@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/transparent">
    <LinearLayout
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:orientation="vertical">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="64dp"
            android:background="@drawable/car_get_top">
            <TextView
                android:id="@+id/tv_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="11dp"
                android:text="跨城出行订单"
                android:textColor="#ffffffff"
                android:textSize="18sp" />
            <TextView
                android:id="@+id/tv_reassign"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tv_title"
                android:layout_centerHorizontal="true"
                android:layout_marginStart="7dp"
                android:layout_marginTop="2dp"
                android:background="@drawable/bg_white_round_2"
                android:paddingStart="10dp"
                android:paddingTop="2dp"
                android:paddingEnd="10dp"
                android:paddingBottom="2dp"
                android:text="同行改派"
                android:textColor="#fffd943a"
                android:textSize="11sp" />
            <TextView
                android:id="@+id/tv_title_hint"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@id/tv_title"
                android:layout_marginStart="2dp"
                android:layout_marginEnd="20dp"
                android:layout_toRightOf="@+id/tv_title"
                android:background="@drawable/bg_white_round_2"
                android:paddingStart="2dp"
                android:paddingTop="1dp"
                android:paddingEnd="2dp"
                android:paddingBottom="1dp"
                android:text="拼车"
                android:textColor="#ff4680EB"
                android:textSize="11sp"
                android:visibility="gone" />
        </RelativeLayout>
        <LinearLayout
            android:id="@+id/ll_order_top"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:orientation="vertical"
            android:paddingStart="33dp"
            android:paddingTop="15dp"
            android:paddingBottom="11dp">
            <TextView
                android:id="@+id/tv_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="6dp"
                android:layout_marginBottom="6dp"
                android:drawableStart="@mipmap/icon_time_gray"
                android:drawablePadding="5dp"
                android:text="4月3日 14:00"
                android:textColor="#666666"
                android:textSize="16sp"
                android:textStyle="bold" />
            <TextView
                android:id="@+id/tv_start"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="6dp"
                android:layout_marginBottom="6dp"
                android:drawableStart="@drawable/bg_point_main_color"
                android:drawablePadding="5dp"
                android:text=""
                android:textColor="#ff27282d"
                android:textSize="16sp"
                android:textStyle="bold" />
            <TextView
                android:id="@+id/tv_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="6dp"
                android:layout_marginBottom="6dp"
                android:drawableStart="@drawable/bg_point_end"
                android:drawablePadding="5dp"
                android:text=""
                android:textColor="#ff27282d"
                android:textSize="16sp"
                android:textStyle="bold" />
            <TextView
                android:id="@+id/tv_people_num"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="3dp"
                android:layout_marginBottom="6dp"
                android:drawableStart="@mipmap/icon_people_gray"
                android:drawablePadding="5dp"
                android:text=""
                android:textColor="#ff27282d"
                android:textSize="16sp"
                android:textStyle="bold" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="17dp"
            android:orientation="horizontal">
            <TextView
                android:id="@+id/tv_close"
                android:layout_width="120dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:background="@drawable/car_get_close"
                android:gravity="center"
                android:paddingTop="8dp"
                android:paddingBottom="8dp"
                android:text="拒绝"
                android:textColor="@color/main_yellow_shen"
                android:textSize="16sp" />
            <include layout="@layout/include_weight_width" />
            <TextView
                android:id="@+id/tv_sure"
                android:layout_width="120dp"
                android:layout_height="wrap_content"
                android:layout_marginEnd="8dp"
                android:background="@drawable/car_get_start"
                android:gravity="center"
                android:paddingTop="8dp"
                android:paddingBottom="8dp"
                android:text="接收"
                android:textColor="@color/white"
                android:textSize="16sp" />
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>
app/src/main/res/layout/pop_pay.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@color/l_transparent"
    android:layout_height="match_parent">
@@ -58,7 +59,8 @@
            android:layout_height="wrap_content"
            android:background="@null"
            android:padding="5dp"
            android:visibility="visible"
            android:visibility="gone"
            tools:visibility="visible"
            android:text="微信支付"
            android:textColor="@color/black"
            android:textSize="@dimen/textSize" />