18034727885
2026-05-20 eb98fdac45ce52c592a32c862423ef139faf2bce
修复问题
3个文件已修改
243 ■■■■■ 已修改文件
app/src/main/java/com/driver/igotrip/bean/OrderBean.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/dialog_sure_and_del.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/driver/igotrip/bean/OrderBean.java
@@ -48,7 +48,7 @@
        this.msg = msg;
    }
    public static class OrderPositionListBean{
    public static class OrderPositionListBean {
        private Double altitude;
        private Double directionAngle;
        private int driverId;
@@ -160,7 +160,7 @@
        private String nickName;
        private String userName;
        private int orderId;
        private  double orderMoney;
        private double orderMoney;
        private String orderName;
        private int orderState; //1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付
        private int payManner;
@@ -192,7 +192,7 @@
        private String differenceMoney;
        private String driverPay; //1待支付 2已支付
//        private List<OrderPositionListBean> orderPositionList;
        //        private List<OrderPositionListBean> orderPositionList;
        private String orderPositionList;
        private Long timeOutCancel; // 超时取消时间 分钟
        private int cancelMidway; // 中途取消(0=否,1=是)
@@ -226,10 +226,11 @@
        }
        public List<OrderPositionListBean> getOrderPositionList() {
            if (orderPositionList == null || orderPositionList.isEmpty()){
            if (orderPositionList == null || orderPositionList.isEmpty()) {
                return new ArrayList<>();
            }else {
                return new Gson().fromJson(orderPositionList,new TypeToken<List<OrderPositionListBean>>(){}.getType());
            } else {
                return new Gson().fromJson(orderPositionList, new TypeToken<List<OrderPositionListBean>>() {
                }.getType());
            }
        }
@@ -529,10 +530,12 @@
                    return driverPay.equals("1") ? context.getString(R.string.列表待支付) : context.getString(R.string.待评价);
                case 9:
                    if (driverPay.equals("1")) {
                        if (cancelMidway == 1) return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.列表待支付);
                        if (cancelMidway == 1)
                            return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.列表待支付);
                        return context.getString(R.string.列表待支付);
                    } else {
                        if (cancelMidway == 1) return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.已完成);
                        if (cancelMidway == 1)
                            return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.已完成);
                        else return context.getString(R.string.已完成);
                    }
                case 10:
@@ -560,12 +563,14 @@
                case 6:
                    return context.getString(R.string.已送达);
                case 7:
                    if (cancelMidway == 1) return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.列表待支付);
                    if (cancelMidway == 1)
                        return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.列表待支付);
                    return context.getString(R.string.列表待支付);
                case 8:
                    return context.getString(R.string.待评价);
                case 9:
                    if (cancelMidway == 1) return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.已完成);
                    if (cancelMidway == 1)
                        return "【" + context.getString(R.string.途中取消) + "】\n" + context.getString(R.string.已完成);
                    else return context.getString(R.string.已完成);
                case 10:
                    return context.getString(R.string.cancel_ed);
@@ -635,5 +640,18 @@
        public void setTravelTime(String travelTime) {
            this.travelTime = travelTime;
        }
        /**
         * 获取快件总支付金额
         */
        public double getExpressPayAllMoney() {
            double value = payMoney == null ? 0 : payMoney;
            try {
                return value + Double.parseDouble(differenceMoney);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return value;
        }
    }
}
app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
@@ -11,8 +11,6 @@
import android.widget.ImageView
import android.widget.TextView
import cn.sinata.xldutils.utils.*
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.Marker
import com.driver.igotrip.R
import com.driver.igotrip.base.BaseEvent
import com.driver.igotrip.base.Const
@@ -30,12 +28,13 @@
import com.driver.igotrip.ui.DialogUtil
import com.driver.igotrip.ui.UiUtil
import com.driver.igotrip.ui.main.ReassignActivity
import com.driver.igotrip.ui.main.major.MajorSureMoneyActivity
import com.driver.igotrip.utils.DateUtil
import com.driver.igotrip.utils.MyUtils
import com.driver.igotrip.utils.view.SlidingButton
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.Marker
import com.google.android.gms.maps.model.Polyline
import com.google.gson.Gson
import com.trello.rxlifecycle3.android.ActivityEvent
@@ -43,7 +42,6 @@
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivity
@@ -115,9 +113,9 @@
        var language = SPUtils.getString(Const.language)
        if (language == Const.Language.ENGLISH || language == Const.Language.FRENCH)
            btn_gap_money.setTextSize(TypedValue.COMPLEX_UNIT_SP,12f)
            btn_gap_money.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f)
        else
            btn_gap_money.setTextSize(TypedValue.COMPLEX_UNIT_SP,14f)
            btn_gap_money.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f)
    }
    override fun initView() {
@@ -129,14 +127,14 @@
        MyApplication.addOrderView(object : MyApplication.OrderStatueView {
            override fun orderInfo(data: OrderSimpleData?) {
                data?.let {
                    if (it.status == 10 || it.status == 11|| it.status == 12) {
                    if (it.status == 10 || it.status == 11 || it.status == 12) {
                        MyApplication.currentOrderType = ""
                        MyApplication.currentOrderId = ""
                        Handler(Looper.getMainLooper()).post {
                            finish()
                        }
                    }
                    if ((it.orderType == 4 || it.orderType == 5) && it.orderId.toString() == orderId && (it.status != 10 && it.status != 11&& it.status != 12)) {
                    if ((it.orderType == 4 || it.orderType == 5) && it.orderId.toString() == orderId && (it.status != 10 && it.status != 11 && it.status != 12)) {
                        Handler(Looper.getMainLooper()).post {
                            callOrder() {}
                        }
@@ -158,7 +156,7 @@
                    OrderSimpleData::class.java
                )
            orderSimpleData?.let {
                if (it.status == 10||it.status == 12) {
                if (it.status == 10 || it.status == 12) {
                    MyApplication.currentOrderType = ""
                    MyApplication.currentOrderId = ""
                    Handler(Looper.getMainLooper()).post {
@@ -250,7 +248,7 @@
                    callseatmoney(num) {
                        dialog.dismiss()
                        btn_gap_money.text = getString(R.string.差价待确认).format(num.toDouble())
                        btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
                        btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, 0)
//                        toast(getString(R.string.set_success))
                    }
                }
@@ -321,13 +319,26 @@
                when (it.data.orderState) {
                    2, 3, 4 -> {
                        if (it.data.orderState == 4) {
//                            showNumDialog { num ->
                            it.data.orderState++
                            callStatue("1", it.data.orderState) {
                                iv_to_gd.callOnClick()
                            if (orderType == "4") {
                                DialogUtil.getDelAndSureDialog(
                                    this,
                                    getString(R.string.确认现金金额).format(it.data.expressPayAllMoney)
                                        .replace(",", "."),
                                    {},
                                    {
                                        it.data.orderState++
                                        callStatue("1", it.data.orderState) {
                                            iv_to_gd.callOnClick()
                                        }
                                        showStatueMapUI(it)
                                    })
                            } else {
                                it.data.orderState++
                                callStatue("1", it.data.orderState) {
                                    iv_to_gd.callOnClick()
                                }
                                showStatueMapUI(it)
                            }
                            showStatueMapUI(it)
//                            }
                        } else {
                            it.data.orderState++
                            callStatue(it.data.orderState, "") {
@@ -359,7 +370,7 @@
                            if (it.data.driverPay == "1") {
                                tv_money.visible()
                                tv_money.text =
                                    getString(R.string.确认现金金额).format(if (it.data.payMoney == 0.0) it.data.orderMoney else it.data.payMoney)
                                    getString(R.string.确认现金金额).format(if (orderType == "4") it.data.expressPayAllMoney else if (it.data.payMoney == 0.0) it.data.orderMoney else it.data.payMoney)
                                        .replace(",", ".")
                            }
                            tv_sure_car_num.setOnClickListener {
@@ -374,10 +385,10 @@
//                                        "orderId" to orderId,
//                                        "orderType" to orderType
//                                    )
                                   /* startActivity<MajorSureMoneyActivity>(
                                        "orderId" to orderId,
                                        "orderType" to orderType
                                    )*/
                                    /* startActivity<MajorSureMoneyActivity>(
                                         "orderId" to orderId,
                                         "orderType" to orderType
                                     )*/
                                    finish()
                                }
                            }
@@ -452,7 +463,10 @@
        map["state"] = i
        if (!num.isNullOrEmpty())
            map["pickUpCode"] = num
        Log.e("定位==============》", "${MyApplication.getLocation()?.latitude},${MyApplication.getLocation()?.longitude}")
        Log.e(
            "定位==============》",
            "${MyApplication.getLocation()?.latitude},${MyApplication.getLocation()?.longitude}"
        )
        map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
        map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
        callNet(Api.process, map) {
@@ -484,17 +498,19 @@
    private fun initMineLocation() {
        aMap.setOnMyLocationChangeListener {
            it.let { latlon ->
                MyApplication.aMapLocation = LatLng(it.latitude,it.longitude)
                MyApplication.aMapLocation = LatLng(it.latitude, it.longitude)
            }
            orderBean?.let {
                when (it.data.orderState) {
                    2, 3 -> {
                        changeCarThree(false)
                    }
                    4->{
                    4 -> {
                        //getTripInfo(4,false)
                        changeCarThree(false)
                    }
                    5, 6 -> {
                        changeCarFive(false)
                    }
@@ -588,7 +604,7 @@
        }
    }
    private fun callOrder(reNavi:Boolean = false,function: () -> Unit) {
    private fun callOrder(reNavi: Boolean = false, function: () -> Unit) {
        MyApplication.currentOrderId = orderId
        MyApplication.currentOrderType = orderType
        var map = getMapByAny()
@@ -598,15 +614,21 @@
            orderBean = gson.fromJson(it, OrderBean::class.java)
            showUi(orderBean)
            function()
            if (reNavi){
                EventBus.getDefault().post(BaseEvent(BaseEvent.RELOAD_NAVI,orderBean!!.data.endLat.toString(),orderBean!!.data.endLon.toString()))
            if (reNavi) {
                EventBus.getDefault().post(
                    BaseEvent(
                        BaseEvent.RELOAD_NAVI,
                        orderBean!!.data.endLat.toString(),
                        orderBean!!.data.endLon.toString()
                    )
                )
            }
        }
    }
    private fun showUi(orderBean: OrderBean?) {
        orderBean?.let {
            if (it.data.isFrozen == 2){
            if (it.data.isFrozen == 2) {
                toast(getString(R.string.已冻结))
                finish()
            }
@@ -628,8 +650,9 @@
//                tv_money_cargo.gone()
//            }
            if (!it.data.differenceMoney.isNullOrEmpty() && it.data.differenceMoney.toDouble() > 0) {
                btn_gap_money.text = getString(R.string.差价点击修改).format(it.data.differenceMoney.toDouble())
                btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
                btn_gap_money.text =
                    getString(R.string.差价点击修改).format(it.data.differenceMoney.toDouble())
                btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, 0)
            }
            var latLngList = mutableListOf<LatLng>()
            for (item in orderBean.data.orderPositionList) {
@@ -658,7 +681,7 @@
            val view = createView(R.layout.item_map_market, this)
            view.find<ImageView>(R.id.iv_img).setImageResource(UiUtil.getLangEndBitmap())
            endMarker = addMarker(aMap, it.data.endLat, it.data.endLon, view, "")
        }else{ //可能修改终点
        } else { //可能修改终点
            endMarker?.position = LatLng(it.data.endLat, it.data.endLon)
        }
        endMarker!!.isVisible = false
@@ -757,58 +780,58 @@
        }
    }
    private fun getTripInfo(state:Int,isMove: Boolean){
       /* var map = getMapByAny()
        map["orderId"] = orderId
        map["orderType"] = orderType
        Log.e("QXS=mmp","getTripInfo:state=${state},orderId=${orderId},orderType=${orderType}")
        callNet(false,Api.getTripInfo, map) {
            val bean = Gson().fromJson(it, StringBean::class.java)
            if (bean.code == 200&&!bean.data.isNullOrEmpty()){
                val trip = Gson().fromJson(bean.data, GoogleTripInfo::class.java)
                val latlon = if (trip?.lastLocation == null) LocationX(MyApplication.aMapLocation!!.latitude,MyApplication.aMapLocation!!.longitude) else trip.lastLocation.location //车辆位置
                carMarker?.position = LatLng(latlon.latitude, latlon.longitude)
                if (state != 4){
                    graylist.add(LatLng(latlon.latitude, latlon.longitude))
                    grayline?.remove()
                    grayline = AMapKit.drawLine(this, aMap, graylist, R.color.gray)
                    val routs = arrayListOf<LatLng>()
                    if (!trip.route.isNullOrEmpty())
                        routs.addAll(trip.route.map { LatLng(it.latitude,it.longitude) })
                    addline(routs)
                }else{
                    closeLine()
                    graylist.clear()
                    grayline?.remove()
                }
                if (state == 3){
                    val tance = AMapKit.getTance(this@SmallCargoActivity, trip.remainingDistanceMeters.toFloat())
                    val content = getString(R.string.距取货点, tance)
                    val sp = SpanBuilder.content(content)
                        .colorSpan(
                            this@SmallCargoActivity,
                            content.indexOf(tance),
                            content.indexOf(tance) + tance.length,
                            R.color.color_5DB03D
                        ).build()
                    var view = creatCarView(sp)
                    carMarker!!.setIcon(getIcon(view))
                }
                if (state == 5){
                    val tance = AMapKit.getTance(this, trip.remainingDistanceMeters.toFloat())
                    val seconds = trip.remainingWaypoints?.firstOrNull()?.duration ?:"0s"
                    val time = (seconds.substring(0,seconds.length-1).toDouble()/60).toInt().toString()
                    val content = getString(R.string.预计还需, tance, time)
                    val sb = SpanBuilder.content(content).colorSpan(this,content.indexOf(tance),content.indexOf(tance)+tance.length,R.color.color_5DB03D)
                        .colorSpan(this,content.indexOf(time),content.indexOf(time)+time.length,R.color.color_5DB03D).build()
                    var view = creatCarView(sb)
                    carMarker!!.setIcon(getIcon(view))
                }
                if (isMove) {
                    iv_move.callOnClick()
                }
            }
        }*/
    private fun getTripInfo(state: Int, isMove: Boolean) {
        /* var map = getMapByAny()
         map["orderId"] = orderId
         map["orderType"] = orderType
         Log.e("QXS=mmp","getTripInfo:state=${state},orderId=${orderId},orderType=${orderType}")
         callNet(false,Api.getTripInfo, map) {
             val bean = Gson().fromJson(it, StringBean::class.java)
             if (bean.code == 200&&!bean.data.isNullOrEmpty()){
                 val trip = Gson().fromJson(bean.data, GoogleTripInfo::class.java)
                 val latlon = if (trip?.lastLocation == null) LocationX(MyApplication.aMapLocation!!.latitude,MyApplication.aMapLocation!!.longitude) else trip.lastLocation.location //车辆位置
                 carMarker?.position = LatLng(latlon.latitude, latlon.longitude)
                 if (state != 4){
                     graylist.add(LatLng(latlon.latitude, latlon.longitude))
                     grayline?.remove()
                     grayline = AMapKit.drawLine(this, aMap, graylist, R.color.gray)
                     val routs = arrayListOf<LatLng>()
                     if (!trip.route.isNullOrEmpty())
                         routs.addAll(trip.route.map { LatLng(it.latitude,it.longitude) })
                     addline(routs)
                 }else{
                     closeLine()
                     graylist.clear()
                     grayline?.remove()
                 }
                 if (state == 3){
                     val tance = AMapKit.getTance(this@SmallCargoActivity, trip.remainingDistanceMeters.toFloat())
                     val content = getString(R.string.距取货点, tance)
                     val sp = SpanBuilder.content(content)
                         .colorSpan(
                             this@SmallCargoActivity,
                             content.indexOf(tance),
                             content.indexOf(tance) + tance.length,
                             R.color.color_5DB03D
                         ).build()
                     var view = creatCarView(sp)
                     carMarker!!.setIcon(getIcon(view))
                 }
                 if (state == 5){
                     val tance = AMapKit.getTance(this, trip.remainingDistanceMeters.toFloat())
                     val seconds = trip.remainingWaypoints?.firstOrNull()?.duration ?:"0s"
                     val time = (seconds.substring(0,seconds.length-1).toDouble()/60).toInt().toString()
                     val content = getString(R.string.预计还需, tance, time)
                     val sb = SpanBuilder.content(content).colorSpan(this,content.indexOf(tance),content.indexOf(tance)+tance.length,R.color.color_5DB03D)
                         .colorSpan(this,content.indexOf(time),content.indexOf(time)+time.length,R.color.color_5DB03D).build()
                     var view = creatCarView(sb)
                     carMarker!!.setIcon(getIcon(view))
                 }
                 if (isMove) {
                     iv_move.callOnClick()
                 }
             }
         }*/
    }
@@ -921,18 +944,27 @@
                MyApplication.currentOrderType = ""
                finish()
            }
            BaseEvent.BACK_CAR_OVER -> {
                finish()
            }
            BaseEvent.DIFF_PRICE_AGREE -> {
                if (mapInitStatus) initView2()
            }
            BaseEvent.DIFF_PRICE_REFUSE -> {
                btn_gap_money.text = getString(R.string.补差价)
                btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.ic_add,0,0,0)
                btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(
                    R.mipmap.ic_add,
                    0,
                    0,
                    0
                )
            }
            BaseEvent.MODIFY_ADDRESS_SUC -> {
                callOrder(true){}
                callOrder(true) {}
            }
        }
    }
app/src/main/res/layout/dialog_sure_and_del.xml
@@ -37,8 +37,7 @@
            android:layout_below="@+id/view_hint_close_base"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="30dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingHorizontal="30dp"
            android:text=""
            android:textColor="#ff666666"
            android:textSize="15sp" />