Commit da07a994 authored by yinjiacheng's avatar yinjiacheng

update 选择自提点页面调用C端客户端信息服务获取经纬度

parent 6e2b5c44
...@@ -19,12 +19,6 @@ object IntentConstants { ...@@ -19,12 +19,6 @@ object IntentConstants {
// 活动id // 活动id
const val KEY_EXTRA_MARKETING_ID = "marketingId" const val KEY_EXTRA_MARKETING_ID = "marketingId"
// 经度
const val KEY_EXTRA_LONGITUDE = "longitude"
// 纬度
const val KEY_EXTRA_LATITUDE = "latitude"
// 自提点id // 自提点id
const val KEY_EXTRA_PICKUP_POINT_ID = "pickupPointId" const val KEY_EXTRA_PICKUP_POINT_ID = "pickupPointId"
......
...@@ -63,5 +63,8 @@ class ZapServiceActionConstants { ...@@ -63,5 +63,8 @@ class ZapServiceActionConstants {
// 清空生活号id // 清空生活号id
const val ActionDeleteLifeAccountId = "deleteLifeAccountId" const val ActionDeleteLifeAccountId = "deleteLifeAccountId"
// 获取当前位置信息
const val ActionGetCurrentLocation = "getCurrentLocation"
} }
} }
...@@ -15,8 +15,8 @@ class ClientInfoService : ZapService() { ...@@ -15,8 +15,8 @@ class ClientInfoService : ZapService() {
override fun onAction(path: String, action: String, params: Any, options: Any, resolver: ResultResolver) { override fun onAction(path: String, action: String, params: Any, options: Any, resolver: ResultResolver) {
when (action) { when (action) {
ZapServiceActionConstants.ActionGetUserInfo -> {
// 获取C端userId、userName、userPhone // 获取C端userId、userName、userPhone
ZapServiceActionConstants.ActionGetUserInfo -> {
resolver.success( resolver.success(
JSONObject() JSONObject()
.put("userId", "510227073302") .put("userId", "510227073302")
...@@ -46,6 +46,15 @@ class ClientInfoService : ZapService() { ...@@ -46,6 +46,15 @@ class ClientInfoService : ZapService() {
) )
) )
} }
// 获取C端经纬度
ZapServiceActionConstants.ActionGetCurrentLocation -> {
resolver.success(
JSONObject()
.put("longitude", 116.4955500)
.put("latitude", 39.9885500)
.put("address", "北京市朝阳区酒仙桥")
)
}
} }
} }
......
...@@ -21,6 +21,7 @@ class PickupPointListAdapter(data: List<PickupPoint>?) : RecyclerView.Adapter<Pi ...@@ -21,6 +21,7 @@ class PickupPointListAdapter(data: List<PickupPoint>?) : RecyclerView.Adapter<Pi
private val data by lazy { ArrayList<PickupPoint>() } private val data by lazy { ArrayList<PickupPoint>() }
private var curSelectId = 0L private var curSelectId = 0L
private var location = false
init { init {
data?.let { data?.let {
...@@ -47,6 +48,13 @@ class PickupPointListAdapter(data: List<PickupPoint>?) : RecyclerView.Adapter<Pi ...@@ -47,6 +48,13 @@ class PickupPointListAdapter(data: List<PickupPoint>?) : RecyclerView.Adapter<Pi
curSelectId = id ?: 0 curSelectId = id ?: 0
} }
/**
* 设置是否有位置信息
*/
fun setLocation(location: Boolean) {
this.location = location
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PickupPointListViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PickupPointListViewHolder {
val binding = DataBindingUtil.inflate<BorderItemPickupPointListBinding>( val binding = DataBindingUtil.inflate<BorderItemPickupPointListBinding>(
LayoutInflater.from(parent.context), LayoutInflater.from(parent.context),
...@@ -61,6 +69,7 @@ class PickupPointListAdapter(data: List<PickupPoint>?) : RecyclerView.Adapter<Pi ...@@ -61,6 +69,7 @@ class PickupPointListAdapter(data: List<PickupPoint>?) : RecyclerView.Adapter<Pi
holder.binding.vm = PickupPointListItemViewModel() holder.binding.vm = PickupPointListItemViewModel()
holder.binding.data = data[position] holder.binding.data = data[position]
holder.binding.selectedId = curSelectId holder.binding.selectedId = curSelectId
holder.binding.location = location
} }
override fun getItemCount(): Int { override fun getItemCount(): Int {
......
...@@ -7,6 +7,8 @@ import com.yidian.bcommon.constant.IntentConstants ...@@ -7,6 +7,8 @@ import com.yidian.bcommon.constant.IntentConstants
import com.yidian.bcommon.constant.XEventConfig import com.yidian.bcommon.constant.XEventConfig
import com.yidian.bcommon.constant.XRouterPathConstants import com.yidian.bcommon.constant.XRouterPathConstants
import com.yidian.bcommon.mvvm.BaseMvvmActivity import com.yidian.bcommon.mvvm.BaseMvvmActivity
import com.yidian.bcommon.services.ZapServiceActionConstants
import com.yidian.bcommon.services.ZapServiceNameConstants
import com.yidian.shenghuoquan.border.R import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.adapter.PickupPointListAdapter import com.yidian.shenghuoquan.border.adapter.PickupPointListAdapter
import com.yidian.shenghuoquan.border.databinding.BorderActivitySelectPickupPointBinding import com.yidian.shenghuoquan.border.databinding.BorderActivitySelectPickupPointBinding
...@@ -15,8 +17,10 @@ import com.yidian.shenghuoquan.border.viewmodel.SelectPickupPointViewModel ...@@ -15,8 +17,10 @@ import com.yidian.shenghuoquan.border.viewmodel.SelectPickupPointViewModel
import com.yidian.xarc.xevent.XBaseEvent import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager import com.yidian.xarc.xevent.XEventManager
import com.yidian.xpage.XPageViewProtocol import com.yidian.xpage.XPageViewProtocol
import com.yidian.yac.core.zap.ZapTicket
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
import org.json.JSONObject
/** /**
* author: yinjiacheng * author: yinjiacheng
...@@ -34,6 +38,7 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi ...@@ -34,6 +38,7 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
it as HashMap<*, *> it as HashMap<*, *>
} }
} }
private var location = false
/** /**
* 搜索关键字 * 搜索关键字
...@@ -47,8 +52,6 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi ...@@ -47,8 +52,6 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
XEventManager.register(this) XEventManager.register(this)
// 标记是否有当前位置
binding.location = params?.get(IntentConstants.KEY_EXTRA_LONGITUDE) != null && params?.get(IntentConstants.KEY_EXTRA_LATITUDE) != null
} }
override fun onDestroy() { override fun onDestroy() {
...@@ -97,19 +100,29 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi ...@@ -97,19 +100,29 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
if (data == null) return if (data == null) return
// 标记当前选中的自提点 // 标记当前选中的自提点
adapter.setSelectedId(params?.get(IntentConstants.KEY_EXTRA_PICKUP_POINT_ID)?.let { id -> id as Long }) adapter.setSelectedId(params?.get(IntentConstants.KEY_EXTRA_PICKUP_POINT_ID)?.let { id -> id as Long })
// 是否有位置信息 控制距离显示
adapter.setLocation(location)
adapter.updateData(data.list) adapter.updateData(data.list)
} }
/** /**
* 请求自提点列表 * 请求自提点列表 先调用C端客户端信息服务获取经纬度
*/ */
private fun requestPickupPoint(type: SelectPickupPointViewModel.LoadType) { private fun requestPickupPoint(type: SelectPickupPointViewModel.LoadType) {
vm.requestPickupPointList( var longitude: Double? = null
params?.get(IntentConstants.KEY_EXTRA_MARKETING_ID) as String, var latitude: Double? = null
params?.get(IntentConstants.KEY_EXTRA_LONGITUDE)?.let { it as Double }, // 获取C端经纬度信息
params?.get(IntentConstants.KEY_EXTRA_LATITUDE)?.let { it as Double }, ZapTicket(ZapServiceNameConstants.ClientInfoService)
keyWords, type .withAction(ZapServiceActionConstants.ActionGetCurrentLocation)
) .onResult { xResult ->
val result = xResult.result as JSONObject
longitude = result.opt("longitude")?.let { it as Double }
latitude = result.opt("latitude")?.let { it as Double }
}.ship()
location = longitude != null && latitude != null
// 是否有位置信息 控制附近自提点显示
binding.location = location
vm.requestPickupPointList(params?.get(IntentConstants.KEY_EXTRA_MARKETING_ID) as String, longitude, latitude, keyWords, type)
} }
@Subscribe(sticky = false, threadMode = ThreadMode.MAIN) @Subscribe(sticky = false, threadMode = ThreadMode.MAIN)
......
...@@ -19,6 +19,10 @@ ...@@ -19,6 +19,10 @@
name="selectedId" name="selectedId"
type="Long" /> type="Long" />
<variable
name="location"
type="Boolean" />
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
...@@ -46,7 +50,7 @@ ...@@ -46,7 +50,7 @@
android:text="@{@string/pickup_point_distance(data.distance)}" android:text="@{@string/pickup_point_distance(data.distance)}"
android:textColor="@color/color_FD7823" android:textColor="@color/color_FD7823"
android:textSize="@dimen/sp14" android:textSize="@dimen/sp14"
android:visibility="@{data.distance != 0 ? View.VISIBLE : View.GONE}" android:visibility="@{location ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_pickup_point_address" app:layout_constraintTop_toTopOf="@id/tv_pickup_point_address"
tools:text="距您:2.7km" /> tools:text="距您:2.7km" />
...@@ -55,7 +59,7 @@ ...@@ -55,7 +59,7 @@
android:layout_width="@dimen/dp1" android:layout_width="@dimen/dp1"
android:layout_height="@dimen/dp8" android:layout_height="@dimen/dp8"
android:background="@color/color_999999" android:background="@color/color_999999"
android:visibility="@{data.distance != 0 ? View.VISIBLE : View.GONE}" android:visibility="@{location ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@id/tv_pickup_point_distance" app:layout_constraintBottom_toBottomOf="@id/tv_pickup_point_distance"
app:layout_constraintEnd_toStartOf="@id/tv_pickup_point_address" app:layout_constraintEnd_toStartOf="@id/tv_pickup_point_address"
app:layout_constraintStart_toEndOf="@id/tv_pickup_point_distance" app:layout_constraintStart_toEndOf="@id/tv_pickup_point_distance"
...@@ -75,7 +79,7 @@ ...@@ -75,7 +79,7 @@
app:layout_constraintEnd_toStartOf="@id/cb_pickup_point_select" app:layout_constraintEnd_toStartOf="@id/cb_pickup_point_select"
app:layout_constraintStart_toEndOf="@id/tv_pickup_point_distance" app:layout_constraintStart_toEndOf="@id/tv_pickup_point_distance"
app:layout_constraintTop_toBottomOf="@id/tv_pickup_point_name" app:layout_constraintTop_toBottomOf="@id/tv_pickup_point_name"
app:layout_marginStart="@{data.distance != 0 ? 17 : 0}" app:layout_marginStart="@{location ? 17 : 0}"
tools:text="经济技术开发区燕顺路123号经济技术开发区燕顺路123号" /> tools:text="经济技术开发区燕顺路123号经济技术开发区燕顺路123号" />
<TextView <TextView
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<string name="search_pickup_point">搜索自提点名称/地址</string> <string name="search_pickup_point">搜索自提点名称/地址</string>
<string name="cancel">取消</string> <string name="cancel">取消</string>
<string name="nearby_pickup_point">附近自提点</string> <string name="nearby_pickup_point">附近自提点</string>
<string name="pickup_point_distance">距您: %fkm</string> <string name="pickup_point_distance">距您: %.1fkm</string>
<string name="commodity_count">共%d件</string> <string name="commodity_count">共%d件</string>
<string name="amount">¥%.2f</string> <string name="amount">¥%.2f</string>
<string name="pickup_point_contract_name">提货点联系人: %s</string> <string name="pickup_point_contract_name">提货点联系人: %s</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment