Browse Source

1.司机端-抢单。

石慧云 4 years ago
parent
commit
7cadfd5229

+ 7 - 3
app/src/main/java/com/quansu/heifengwuliu/activity/GrabDetailsActivity.kt

@@ -1,6 +1,5 @@
 package com.quansu.heifengwuliu.activity
 
-import android.graphics.Color
 import android.graphics.Color.parseColor
 import android.os.Bundle
 import com.quansu.heifengwuliu.R
@@ -12,13 +11,18 @@ import com.quansu.heifengwuliu.vmodel.GrabDetailsVModel
  *Created by shihuiyun
  *on 2020/9/20
  */
-class GrabDetailsActivity : MBActivity<GrabDetailsVModel, ActivityGrabdetailsBinding>(){
+class GrabDetailsActivity : MBActivity<GrabDetailsVModel, ActivityGrabdetailsBinding>() {
 
 
     override fun initCreate(savedInstanceState: Bundle?) {
         super.initCreate(savedInstanceState)
-        titleBar()?.tvRight?.text=getString(R.string.share)
+        titleBar()?.tvRight?.text = getString(R.string.share)
         titleBar()?.tvRight?.setTextColor(parseColor("#FFBC00"))
+
+        var info_id = intent?.extras?.getString("info_id", "")
+
+        vm.getInfo(info_id!!)
+
     }
 
     override fun vmClass(): Class<GrabDetailsVModel> {

+ 18 - 0
app/src/main/java/com/quansu/heifengwuliu/fragment/IndexFragment.kt

@@ -1,9 +1,13 @@
 package com.quansu.heifengwuliu.fragment
 
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.ViewGroup
 import com.quansu.heifengwuliu.adapter.IndexAdapter
 import com.quansu.heifengwuliu.base.MBRFragment
+import com.quansu.heifengwuliu.config.MIntentAction
 import com.quansu.heifengwuliu.databinding.FragmentIndexBinding
 import com.quansu.heifengwuliu.vmodel.IndexVModel
 
@@ -15,6 +19,12 @@ import com.quansu.heifengwuliu.vmodel.IndexVModel
 class IndexFragment :  MBRFragment<IndexVModel, IndexAdapter, FragmentIndexBinding>(){
 
 
+    override fun init(savedInstanceState: Bundle?) {
+        super.init(savedInstanceState)
+        vm.setFragment(this)
+    }
+
+
     override fun vmClass(): Class<IndexVModel> {
         return IndexVModel::class.java
     }
@@ -36,6 +46,14 @@ class IndexFragment :  MBRFragment<IndexVModel, IndexAdapter, FragmentIndexBindi
 
     }
 
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        super.onActivityResult(requestCode, resultCode, data)
+        if (MIntentAction.REQUEST_CODE_ONE == requestCode && resultCode == Activity.RESULT_OK) {
+            //刷新列表
+            onRefresh()
+        }
+    }
+
 
 
 }

+ 84 - 0
app/src/main/java/com/quansu/heifengwuliu/model/SourceDetails.kt

@@ -0,0 +1,84 @@
+package com.quansu.heifengwuliu.model
+
+import com.google.gson.annotations.SerializedName
+import com.ysnows.base.inter.IModel
+
+/**
+ *Created by shihuiyun
+ *on 2020/9/21
+ */
+data class SourceDetails(var info:InfoBean,var company:CompanyBean ): IModel {
+
+    data class InfoBean(var info_id: String, var info_state: Int,
+                        var info_sn: String,var type_id:String, var is_pay: String,
+                        var uid: String, var price: String,
+                        var total: String,var all_total:String,
+                        var nums: String, var is_public: String,
+                        var driver: List<String>,
+                        var is_insurance: String, var type: Int,
+                        var data: String, var pay_time: String,
+                        var create_time: String, var update_time: String,
+                        var delete_time: String, var send: List<SendBean>,
+                        var receive: List<ReceiveBean>,
+                        var type_info: TypeInfoBean
+    ): IModel{
+
+        data class TypeInfoBean(var type_id: String, var type_name: String, @SerializedName("long") var longx: String,
+
+                                ): IModel{
+        }
+        data class ReceiveBean(var data_id: String, var info_id: String, var lat: String,
+                               var lng: String, var address: String, var name: String, var mobile: String, var goods: String,
+                               var goods_type: GoodsTypeBean, var nums: String, var nums_type: NumsTypeBean, var price: String, var total: String,
+                               var time: String, var type: String, var create_time: String, var update_time: String, var delete_time: String,
+                               var province: ProvinceBean, var city: CityBean, var area: AreaBean
+        ) : IModel {
+            data class ProvinceBean(var name: String, var code: String) : IModel {
+
+            }
+
+            data class CityBean(var name: String, var code: String) : IModel {
+
+            }
+
+            data class AreaBean(var name: String, var code: String) : IModel {
+
+            }
+
+            data class GoodsTypeBean(var name: String, var code: String) : IModel {
+
+            }
+
+            data class NumsTypeBean(var name: String, var code: String) : IModel {
+
+            }
+
+
+        }
+
+        data class SendBean(var data_id: String, var info_id: String, var lat: String,
+                            var lng: String, var address: String, var name: String, var mobile: String,
+                            var time: String, var type: String,
+                            var province: ProvinceBean, var city: CityBean, var area: AreaBean
+        ) : IModel {
+
+            data class ProvinceBean(var name: String, var code: String) : IModel {
+
+            }
+
+            data class CityBean(var name: String, var code: String) : IModel {
+
+            }
+
+            data class AreaBean(var name: String, var code: String) : IModel {
+
+            }
+
+        }
+
+    }
+    data class CompanyBean(var company_name: String,var info_nums: String,var name: String,
+                           var mobile: String,var good: String,var hpl: String):IModel{
+
+    }
+}

+ 19 - 1
app/src/main/java/com/quansu/heifengwuliu/utils/net/ApiService.kt

@@ -191,7 +191,7 @@ interface ApiService {
     fun setAddressDel(@Query("addr_id") addr_id: String?): Observable<Response<Any>>
 
     /**
-     * 获取详情
+     * 获取详情-货主端
      * @return
      */
     @GET("api/info/infoGet")
@@ -345,4 +345,22 @@ interface ApiService {
     fun infoListDriver(@Query("k") k: String?, @Query("p") p: Int): Observable<Response<List<InfoListBean>>>
 
 
+
+    /**
+     * 获取详情-司机端
+     * @return
+     */
+    @GET("api/order/infoGet")
+    fun infoGetDriver(@Query("info_id") info_id: String?): Observable<Response<SourceDetails>>
+
+
+
+    /**
+     * 抢单-司机端
+     * @return
+     */
+    @GET("api/order/getInfo")
+    fun getInfoDriver(@Query("info_id") info_id: String?): Observable<Response<Any>>
+
+
 }

+ 87 - 0
app/src/main/java/com/quansu/heifengwuliu/vmodel/GrabDetailsVModel.kt

@@ -1,5 +1,18 @@
 package com.quansu.heifengwuliu.vmodel
 
+import android.Manifest.permission.CALL_PHONE
+import android.annotation.SuppressLint
+import android.app.Activity
+import android.content.Intent
+import android.net.Uri
+import android.text.TextUtils
+import androidx.lifecycle.MutableLiveData
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
+import com.quansu.heifengwuliu.model.SourceDetails
+import com.quansu.heifengwuliu.utils.net.NetEngine
+import com.yanzhenjie.permission.Action
+import com.yanzhenjie.permission.AndPermission
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
 
@@ -9,5 +22,79 @@ import com.ysnows.base.base.BViewModel
  */
 open class GrabDetailsVModel: BViewModel<BRepository>() {
 
+    val info: MutableLiveData<SourceDetails> = MutableLiveData<SourceDetails>()
+
+    fun getInfo(info_id: String) {
+        repository().preq(NetEngine.service.infoGetDriver(info_id))
+                .doOnNext() {
+                    if (it.ok()) {
+
+                        info.value = it.data() as SourceDetails
+
+                    }
+                }
+                .subscribe()
+    }
+
+
+    @SuppressLint("WrongConstant")
+    fun toCallPhone(mobile:String){
+        //拨打电话
+        if(TextUtils.isEmpty(mobile)){
+            toast("未添加该公司的电话!!")
+            return
+        }
+
+        AndPermission.with(repository().context)
+                .runtime()
+                .permission(CALL_PHONE)
+                .onGranted(Action<List<String?>?> {
+                    val intent = Intent(Intent.ACTION_DIAL)
+                    val uri = Uri.parse("tel:$mobile")
+                    intent.data = uri
+                    repository().context!!.startActivity(intent)
+                }).start()
+
+
+    }
+
+    fun toGrab(info_id:String){
+        //抢单
+        QMUIDialog.MessageDialogBuilder(repository().context)
+                .setTitle("提示")
+                .setMessage("确定要抢单么")
+                .addAction("取消", QMUIDialogAction.ActionListener(){
+                    dialog, index ->
+                    dialog.dismiss()
+                })
+                .addAction("确定", QMUIDialogAction.ActionListener(){
+                    dialog, index ->
+                    setSureGrab(info_id)
+
+
+                    dialog.dismiss()
+                })
+                .show()
+
+    }
+
+
+    fun  setSureGrab(info_id:String){
+
+        repository().lreq(NetEngine.service.getInfoDriver(info_id))
+                .doOnNext() {
+                    if (it.ok(true)) {
+                        val intent = Intent()
+                        var con = repository().context as Activity
+                        con.setResult(Activity.RESULT_OK, intent)
+                        con.finish()
+
+                    }
+                }
+                .subscribe()
+
+    }
+
+
 }
 

+ 11 - 2
app/src/main/java/com/quansu/heifengwuliu/vmodel/IndexVModel.kt

@@ -1,7 +1,10 @@
 package com.quansu.heifengwuliu.vmodel
 
 import android.os.Bundle
+import androidx.fragment.app.Fragment
 import com.quansu.heifengwuliu.activity.GrabDetailsActivity
+import com.quansu.heifengwuliu.config.MIntentAction
+import com.quansu.heifengwuliu.fragment.IndexFragment
 import com.quansu.heifengwuliu.utils.net.NetEngine
 import com.ysnows.base.base.BRRepository
 import com.ysnows.base.base.BRViewModel
@@ -11,12 +14,18 @@ import io.reactivex.Observable
 
 class IndexVModel : BRViewModel<BRRepository>()  {
 
+     var indexframent:IndexFragment?=null
+
+    fun setFragment(indexframent:IndexFragment){
+        this.indexframent=indexframent
+    }
+
 
     fun gotoInfoDetails(info_id: String) {
         //到详情界面
-        UiSwitch.bundle(repository().context, GrabDetailsActivity::class.java, Bundle().apply {
+        UiSwitch.bundleRes(indexframent, GrabDetailsActivity::class.java, Bundle().apply {
             putString("info_id", info_id)
-        })
+        }, MIntentAction.REQUEST_CODE_ONE)
 
 
     }

+ 1 - 1
app/src/main/java/com/quansu/heifengwuliu/vmodel/SourceDetailsVModel.kt

@@ -41,7 +41,7 @@ open class SourceDetailsVModel : BViewModel<BRepository>() {
 
 
     fun getInfo(info_id: String) {
-        repository().lreq(NetEngine.service.infoGet(info_id))
+        repository().preq(NetEngine.service.infoGet(info_id))
                 .doOnNext() {
                     if (it.ok()) {
 

+ 86 - 35
app/src/main/res/layout/activity_grabdetails.xml

@@ -3,20 +3,24 @@
 
     <data>
 
+        <variable
+            name="vm"
+            type="com.quansu.heifengwuliu.vmodel.GrabDetailsVModel" />
+
     </data>
 
     <LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginStart="17dp"
-        android:layout_marginEnd="16dp"
         android:background="#F5F5F5"
         android:orientation="vertical">
 
         <ScrollView
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            android:layout_marginStart="17dp"
+            android:layout_marginEnd="16dp"
             android:scrollbars="none">
 
 
@@ -63,44 +67,48 @@
                                 android:textColor="@color/text_title"
                                 android:textSize="@dimen/sp_15"
                                 android:textStyle="bold"
-                                tools:text="12344" />
+                                android:text="@{vm.info.info.send[0].province.name+vm.info.info.send[0].city.name}"
+                               tools:text="12344" />
 
-                        </LinearLayout>
 
+                    </LinearLayout>
 
-                        <ImageView
-                            android:id="@+id/img_arrow"
-                            android:layout_width="26dp"
-                            android:layout_height="4dp"
-                            android:src="@drawable/ic_long_arrow" />
 
+                    <ImageView
+                        android:id="@+id/img_arrow"
+                        android:layout_width="26dp"
+                        android:layout_height="4dp"
+                        android:src="@drawable/ic_long_arrow" />
 
-                        <LinearLayout
-                            android:layout_width="0dp"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="center_vertical">
 
-                            <ImageView
-                                android:id="@+id/iv_red"
-                                android:layout_width="9dp"
-                                android:layout_height="10dp"
-                                android:layout_marginStart="14dp"
-                                android:src="@drawable/ic_circle_red" />
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:gravity="center_vertical">
 
-                            <TextView
-                                android:id="@+id/tv_to"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginStart="22dp"
-                                android:textColor="@color/text_title"
-                                android:textSize="@dimen/sp_15"
-                                android:textStyle="bold"
-                                tools:text="12344" />
+                        <ImageView
+                            android:id="@+id/iv_red"
+                            android:layout_width="9dp"
+                            android:layout_height="10dp"
+                            android:layout_marginStart="14dp"
+                            android:src="@drawable/ic_circle_red" />
+
+                        <TextView
+                            android:id="@+id/tv_to"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="22dp"
+                            android:textColor="@color/text_title"
+                            android:textSize="@dimen/sp_15"
+                            android:textStyle="bold"
+                            android:text="@{vm.info.info.receive[vm.info.info.receive.size()-1].province.name+vm.info.info.send[vm.info.info.receive.size()-1].city.name}"
+                            tools:text="12344" />
 
                         </LinearLayout>
 
 
+
                     </LinearLayout>
 
                     <LinearLayout
@@ -115,21 +123,27 @@
                             android:layout_height="wrap_content"
                             android:layout_weight="1"
                             android:gravity="center"
-                            android:text="经开区香港路9号"
+                            tools:text="经开区香港路9号"
+                            android:text="@{vm.info.info.send[0].address}"
                             android:textColor="@color/text_title"
                             android:textSize="13sp" />
 
 
+
+
+
                         <TextView
                             android:layout_width="0dp"
                             android:layout_height="wrap_content"
                             android:layout_weight="1"
                             android:gravity="center"
-                            android:text="经开区香港路9号"
+                            tools:text="经开区香港路9号"
+                            android:text="@{vm.info.info.receive[vm.info.info.receive.size()-1].address}"
                             android:textColor="@color/text_title"
                             android:textSize="13sp" />
 
 
+
                     </LinearLayout>
 
 
@@ -168,8 +182,10 @@
                             android:textColor="@color/text_title"
                             android:textSize="16sp"
                             android:textStyle="bold"
+                            android:text="@{vm.info.company.company_name}"
                             tools:text="临沂市昆仑物流有限公司" />
 
+
                         <LinearLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
@@ -181,7 +197,17 @@
                                 android:layout_height="wrap_content"
                                 android:textColor="#979899"
                                 android:textSize="16sp"
-                                tools:text="累计交易 1569单" />
+                                android:text="累计交易"
+                                android:layout_marginEnd="@dimen/dp_10"
+                                />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:textColor="#979899"
+                                android:textSize="16sp"
+                                android:text="@{vm.info.company.info_nums+@string/single}"
+                                tools:text="@string/single" />
+
 
 
                             <TextView
@@ -190,7 +216,18 @@
                                 android:layout_marginStart="@dimen/dp_10"
                                 android:textColor="#979899"
                                 android:textSize="16sp"
-                                tools:text="好评率 100%" />
+                                android:layout_marginEnd="@dimen/dp_10"
+                                android:text="好评率" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:textColor="#979899"
+                                android:textSize="16sp"
+                                android:text="@{vm.info.company.hpl+@string/percent_sign}"
+
+                                tools:text="@string/percent_sign" />
+
 
 
                         </LinearLayout>
@@ -198,10 +235,11 @@
 
                     </LinearLayout>
 
-                    <LinearLayout
+                  <LinearLayout
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:orientation="vertical">
+                      android:onClick="@{v->vm.toCallPhone(vm.info.company.mobile)}"
+                      android:orientation="vertical">
 
                         <ImageView
                             android:layout_width="24dp"
@@ -215,6 +253,7 @@
                             android:layout_marginTop="4dp"
                             android:textColor="@color/text_title"
                             android:textSize="13sp"
+                            android:text="@{vm.info.company.name}"
                             tools:text="马勇" />
 
 
@@ -266,8 +305,11 @@
                             android:gravity="right"
                             android:textColor="@color/text_title"
                             android:textSize="@dimen/sp_13"
+                            android:text="@{vm.info.info.send[0].time}"
+
                             tools:text="2020-09-03 下午" />
 
+
                     </LinearLayout>
 
                     <LinearLayout
@@ -291,8 +333,10 @@
                             android:gravity="right"
                             android:textColor="@color/text_title"
                             android:textSize="@dimen/sp_13"
+                            android:text="@{vm.info.info.receive[vm.info.info.receive.size()-1].time}"
                             tools:text="2020-09-03 下午" />
 
+
                     </LinearLayout>
 
                     <LinearLayout
@@ -316,8 +360,10 @@
                             android:gravity="right"
                             android:textColor="@color/text_title"
                             android:textSize="@dimen/sp_13"
+                            android:text="@{vm.info.info.receive[vm.info.info.receive.size()-1].goods+@string/left_bracket+vm.info.info.receive[vm.info.info.receive.size()-1].goods_type.name+@string/right_bracket}"
                             tools:text="苹果(农产品)" />
 
+
                     </LinearLayout>
 
                     <LinearLayout
@@ -341,6 +387,7 @@
                             android:gravity="right"
                             android:textColor="@color/text_title"
                             android:textSize="@dimen/sp_13"
+                            android:text="@{vm.info.info.type_info.type_name+@string/spot+vm.info.info.type_info.longx}"
                             tools:text="平板货车 · 13米" />
 
                     </LinearLayout>
@@ -366,6 +413,7 @@
                             android:gravity="right"
                             android:textColor="@color/text_title"
                             android:textSize="@dimen/sp_13"
+                            android:text="@{vm.info.info.receive[vm.info.info.receive.size()-1].nums+vm.info.info.receive[vm.info.info.receive.size()-1].nums_type.name}"
                             tools:text="35吨" />
 
                     </LinearLayout>
@@ -391,6 +439,7 @@
                             android:gravity="right"
                             android:textColor="@color/text_title"
                             android:textSize="@dimen/sp_13"
+                            android:text="@{@string/total_img+vm.info.info.receive[vm.info.info.receive.size()-1].price}"
                             tools:text="¥3500" />
 
                     </LinearLayout>
@@ -417,6 +466,7 @@
                             android:gravity="right"
                             android:textColor="@color/text_title"
                             android:textSize="@dimen/sp_13"
+                            android:text="@{vm.info.info.data}"
                             tools:text="稳中求快" />
 
                     </LinearLayout>
@@ -478,6 +528,7 @@
                     <ImageView
                         android:layout_width="match_parent"
                         android:layout_height="106dp"
+                        android:onClick="@{v->vm.toGrab(vm.info.info.info_id)}"
                         android:src="@drawable/ic_details_grab" />
 
 

+ 1 - 1
app/src/main/res/layout/item_index.xml

@@ -27,6 +27,7 @@
         app:qmui_borderColor="@color/white"
         app:qmui_backgroundColor="@color/white"
         android:paddingStart="@dimen/dp_12"
+        android:onClick="@{v->vm.gotoInfoDetails(item.info_id)}"
         android:paddingEnd="@dimen/dp_15"
         app:qmui_radius="@dimen/dp_4" >
 
@@ -40,7 +41,6 @@
                 android:layout_height="match_parent"
                 android:paddingStart="@dimen/dp_10"
                 android:paddingEnd="@dimen/dp_10"
-                android:onClick="@{v->vm.gotoInfoDetails(item.info_id)}"
                 android:paddingBottom="@dimen/dp_5" >
 
                 <ImageView

+ 6 - 0
app/src/main/res/values/strings.xml

@@ -478,6 +478,12 @@ Api 已达到使用限制
     <string name="to_settled">待结算</string>
     <string name="share">分享</string>
     <string name="source_details">货源详情</string>
+    <string name="single">单</string>
+    <string name="praise_rate">好评率 %1$s%</string>
+    <string name="percent_sign">%</string>
+    <string name="left_bracket">(</string>
+    <string name="right_bracket">)</string>
+
 
 
 </resources >