lmw
2023-05-27 ff365ff4346d220edf2ec1d0041f2284befe3870
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.fanghua.driver.ui.main
 
import android.content.Intent
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.getString
import com.amap.api.services.core.PoiItem
import com.amap.api.services.poisearch.PoiResult
import com.amap.api.services.poisearch.PoiSearch
import com.fanghua.driver.R
import com.fanghua.driver.base.MyApplication
import com.fanghua.driver.base.MyBaseActivity
import com.fanghua.driver.base.gaode.AMapKit
import com.fanghua.driver.bean.BaseBean
import com.fanghua.driver.bean.StringBean
import com.fanghua.driver.netUtls.Api
import com.fanghua.driver.netUtls.callNet
import com.fanghua.driver.netUtls.getMapByAny
import com.fanghua.driver.ui.main.add_order.OrderHomeActivity
import com.fanghua.driver.ui.main.add_order.SearchSiteActivity
import com.fanghua.driver.utils.PhoneCheckUtil
import kotlinx.android.synthetic.main.activity_add_order.*
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.toast
 
class AddOrderActivity: MyBaseActivity() {
    override fun setContentView() {
        setContentView(R.layout.activity_add_order)
    }
 
    private var startLat = 0.0
    private var startLon = 0.0
    private var endLat = 0.0
    private var endLon = 0.0
 
    override fun initView() {
       setTitleText("下单")
        getStartAddress()
    }
 
    override fun setOnclick() {
        tv_sure.clickDelay {
            val phone = et_phone.getString()
            if (phone.isEmpty()){
                toast("请输入手机号")
                return@clickDelay
            }
            if (!PhoneCheckUtil.phoneCheck(phone)){
                toast("手机号格式错误")
                return@clickDelay
            }
            if (startLat == 0.0){
                toast("请选择起点")
                return@clickDelay
            }
            val map = getMapByAny()
            map["phone"] = phone
            map["startAddress"] = tv_start.text.toString()
            map["startLat"] = startLat
            map["startLng"] = startLon
            if (endLat!=0.0){
                map["endAddress"] = tv_end.text.toString()
                map["endLat"] = endLat
                map["endLng"] = endLon
            }
            val name = et_name.text.toString()
            if (name.isNotEmpty())
                map["userName"] = name
            callNet(Api.driverAddOrder,map){
                var bean = gson.fromJson<StringBean>(it, StringBean::class.java)
                if (bean.resultUtil.code == 10000){
                    if (bean.resultUtil.data.isNullOrEmpty())
                        startActivity<OrderHomeActivity>()
                    else
                        startActivity<TripActivity>("orderId" to bean.resultUtil.data)
                    toast("下单成功")
                    finish()
                }else
                    toast(bean.resultUtil.msg)
            }
        }
        tv_start.setOnClickListener {
            startActivityForResult<SearchSiteActivity>(1,"type" to "1")
        }
        tv_end.setOnClickListener {
            startActivityForResult<SearchSiteActivity>(2,"type" to "2")
        }
    }
 
    private fun getStartAddress() {
        if (MyApplication.aMapLocation == null) {
            return
        }
        AMapKit.searchPoint(this,MyApplication.aMapLocation!!.latitude,MyApplication.aMapLocation!!.longitude,object :PoiSearch.OnPoiSearchListener{
            override fun onPoiSearched(p0: PoiResult?, p1: Int) {
                if (p0?.pois!!.size > 0) {
                    tv_start.text =  p0.pois[0].title
                    startLat =  p0.pois[0].latLonPoint.latitude
                    startLon =  p0.pois[0].latLonPoint.longitude
                }
            }
 
            override fun onPoiItemSearched(p0: PoiItem?, p1: Int) {
            }
        })
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == RESULT_OK&&data!=null){
            if (requestCode == 1){
                startLat = data.getDoubleExtra("lat",0.0)
                startLon = data.getDoubleExtra("lon",0.0)
                tv_start.text = data.getStringExtra("name")
            }else{
                endLat = data.getDoubleExtra("lat",0.0)
                endLon = data.getDoubleExtra("lon",0.0)
                tv_end.text = data.getStringExtra("name")
            }
        }
    }
}