Commit cd1a4149 authored by shiyl's avatar shiyl

修改网络请求工具类支持JSONObject参数,自定义本地json参数测试创建订单

parent e0e28792
...@@ -14,6 +14,10 @@ import com.yidian.bcommon.utils.NetWorkUtils ...@@ -14,6 +14,10 @@ import com.yidian.bcommon.utils.NetWorkUtils
import com.yidian.framework.mobile.xdiamond.SecretUtil import com.yidian.framework.mobile.xdiamond.SecretUtil
import com.yidian.yac.core.zap.ZapTicket import com.yidian.yac.core.zap.ZapTicket
import com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager import com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
import okhttp3.MediaType
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject import org.json.JSONObject
import timber.log.Timber import timber.log.Timber
import java.lang.reflect.Type import java.lang.reflect.Type
...@@ -80,6 +84,32 @@ class HttpParamsUtils { ...@@ -80,6 +84,32 @@ class HttpParamsUtils {
} }
} }
/**
* 获取业务参数(参数为JSONObject的情况)
* C端增加user_id
*/
fun getPrivateParamsMap(paramsJson: JSONObject, timeStamp: Long): RequestBody {
return if (RunConfig.IS_ENCRYPT) {
paramsJson.put("secret", getSignString(getRequestId(timeStamp), timeStamp))
paramsJson.put("ts", timeStamp.toString())
// C端身份请求加uid
BCommonManager.getUid()?.let { paramsJson.put("user_id", it) }
Timber.tag(BCommonManager.TAG_HTTP).d("request private params: $paramsJson")
val jsonObject = JSONObject()
jsonObject.put("tok", SecretUtil.rsaEncrypt(paramsJson.toString()))
//指定content type为json类型
val contentType: MediaType? = "application/json".toMediaTypeOrNull()
// JSONObject转为RequestBody
jsonObject.toString().toRequestBody(contentType)
} else {
// C端身份请求加uid
BCommonManager.getUid()?.let { paramsJson.put("user_id", it) }
Timber.tag(BCommonManager.TAG_HTTP).d("request private params: $paramsJson")
val contentType: MediaType? = "application/json".toMediaTypeOrNull()
paramsJson.toString().toRequestBody(contentType)
}
}
/** /**
* RSA解密Response * RSA解密Response
*/ */
......
package com.yidian.shenghuoquan.bmanagercenter.utils package com.yidian.bcommon.utils
import android.content.Context import android.content.Context
import android.content.res.AssetManager import android.content.res.AssetManager
......
...@@ -22,5 +22,9 @@ data class Goods( ...@@ -22,5 +22,9 @@ data class Goods(
@SerializedName("goods_sku_id") @SerializedName("goods_sku_id")
val goodsSkuId: String? = null, val goodsSkuId: String? = null,
@SerializedName("goods_sku_num") @SerializedName("goods_sku_num")
val goodsSkuNum: Int? = null val goodsSkuNum: Int? = null,
@SerializedName("marketing_id")
val marketingId: Int? = null,// 活动id
@SerializedName("marketing_type")
val marketingType: Int? = null// 活动类型 类型:1分销 2团购 3秒杀,4 团餐
) : Parcelable ) : Parcelable
...@@ -30,7 +30,7 @@ class DemoTestActivity : BaseActivity<ActivityDemoTestBinding>() { ...@@ -30,7 +30,7 @@ class DemoTestActivity : BaseActivity<ActivityDemoTestBinding>() {
private fun initClick() { private fun initClick() {
val list = mutableListOf<Goods>() val list = mutableListOf<Goods>()
list.add(Goods(goodsSkuId = "04qbwzoazPixJUhfOppD", goodsSkuNum = 1)) list.add(Goods(goodsSkuId = "04qbwzoazPixJUhfOppD", goodsSkuNum = 1, marketingId = 1, marketingType = 4))
val confirmOrderReqDto = ConfirmOrderRequest(businessFrom = 2, goodsList = list, marketingId = "79") val confirmOrderReqDto = ConfirmOrderRequest(businessFrom = 2, goodsList = list, marketingId = "79")
// 模拟h5进入确认订单的参数和逻辑 // 模拟h5进入确认订单的参数和逻辑
viewBind.btnOrderConfirm.clickAntiShake { viewBind.btnOrderConfirm.clickAntiShake {
......
...@@ -11,7 +11,7 @@ import com.yidian.shenghuoquan.bmanagercenter.adapter.FirstCareerListAdapter ...@@ -11,7 +11,7 @@ import com.yidian.shenghuoquan.bmanagercenter.adapter.FirstCareerListAdapter
import com.yidian.shenghuoquan.bmanagercenter.adapter.SecondCareerListAdapter import com.yidian.shenghuoquan.bmanagercenter.adapter.SecondCareerListAdapter
import com.yidian.shenghuoquan.bmanagercenter.bean.CareerListBean import com.yidian.shenghuoquan.bmanagercenter.bean.CareerListBean
import com.yidian.shenghuoquan.bmanagercenter.databinding.ActivityChooseCareerBinding import com.yidian.shenghuoquan.bmanagercenter.databinding.ActivityChooseCareerBinding
import com.yidian.shenghuoquan.bmanagercenter.utils.JsonUtils import com.yidian.bcommon.utils.JsonUtils
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.XPageManager import com.yidian.xpage.XPageManager
......
{
"goods_list": [
{
"goods_sku_id": "04qbwzoazPixJUhfOppD",
"goods_sku_num": 1,
"marketing_id": 99,
"marketing_type": 4
}
],
"business_from": 2,
"marketing_id": 1
}
\ No newline at end of file
...@@ -33,13 +33,13 @@ data class SelectedCoupon( ...@@ -33,13 +33,13 @@ data class SelectedCoupon(
*/ */
data class OrderGoods( data class OrderGoods(
@SerializedName("goods_sku_id") @SerializedName("goods_sku_id")
val goodsSkuId: String? = null,// 商品id var goodsSkuId: String? = null,// 商品id
@SerializedName("goods_sku_num") @SerializedName("goods_sku_num")
val goodsSkuNum: Int? = null,// 商品数量 var goodsSkuNum: Int? = null,// 商品数量
@SerializedName("marketing_id") @SerializedName("marketing_id")
val marketingId: Int? = null,// 活动id var marketingId: Int? = null,// 活动id
@SerializedName("marketing_type") @SerializedName("marketing_type")
val marketingType: Int? = null// 活动类型 类型:1分销 2团购 3秒杀,4 团餐 var marketingType: Int? = null// 活动类型 类型:1分销 2团购 3秒杀,4 团餐
) )
......
...@@ -4,6 +4,24 @@ import android.os.Parcelable ...@@ -4,6 +4,24 @@ import android.os.Parcelable
import com.google.gson.annotations.SerializedName import com.google.gson.annotations.SerializedName
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
/**
* 确认订单参数
*/
data class OrderConfirmReqDto(
@SerializedName("business_from")
val businessFrom: Int? = null,// 订单业务线--- 1 普通订单,2接龙订单
@SerializedName("marketing_id")
val marketingId: Int? = null,// 活动id
@SerializedName("goods_list")
val goodsList: List<OrderGoods>? = null,// 商品数组
// @SerializedName("user_id")
// val userId: Long? = null// 用户ID
)
/**
* 确认订单响应
*/
@Parcelize @Parcelize
data class OrderConfirmResDto( data class OrderConfirmResDto(
@SerializedName("coupon_list") @SerializedName("coupon_list")
...@@ -71,3 +89,4 @@ data class Shipping( ...@@ -71,3 +89,4 @@ data class Shipping(
@SerializedName("address") @SerializedName("address")
var address: String? = null,// 自提点地址 var address: String? = null,// 自提点地址
) : Parcelable ) : Parcelable
...@@ -2,6 +2,8 @@ package com.yidian.shenghuoquan.border.http ...@@ -2,6 +2,8 @@ package com.yidian.shenghuoquan.border.http
import com.yidian.bcommon.http.HttpResult import com.yidian.bcommon.http.HttpResult
import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.core.Observable
import okhttp3.RequestBody
import org.json.JSONObject
import retrofit2.http.* import retrofit2.http.*
/** /**
...@@ -47,7 +49,7 @@ interface OrderApiService { ...@@ -47,7 +49,7 @@ interface OrderApiService {
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
fun requestOrderConfirm( fun requestOrderConfirm(
@QueryMap commonParams: Map<String, String>, @QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?> @Body body: RequestBody
): Observable<HttpResult<Any?>> ): Observable<HttpResult<Any?>>
/** /**
...@@ -57,7 +59,7 @@ interface OrderApiService { ...@@ -57,7 +59,7 @@ interface OrderApiService {
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
fun requestCreateOrder( fun requestCreateOrder(
@QueryMap commonParams: Map<String, String>, @QueryMap commonParams: Map<String, String>,
@Body requestParams: Map<String, String?> @Body body: RequestBody
): Observable<HttpResult<Any?>> ): Observable<HttpResult<Any?>>
/** /**
......
...@@ -9,6 +9,7 @@ import com.yidian.shenghuoquan.border.dto.* ...@@ -9,6 +9,7 @@ import com.yidian.shenghuoquan.border.dto.*
import com.yidian.shenghuoquan.border.http.callback.IApplyRefundCallback import com.yidian.shenghuoquan.border.http.callback.IApplyRefundCallback
import com.yidian.shenghuoquan.border.http.callback.IGetOrderDetailCallback import com.yidian.shenghuoquan.border.http.callback.IGetOrderDetailCallback
import com.yidian.shenghuoquan.border.http.callback.IGetPickupPointListCallback import com.yidian.shenghuoquan.border.http.callback.IGetPickupPointListCallback
import org.json.JSONObject
/** /**
* author: yinjiacheng * author: yinjiacheng
...@@ -62,7 +63,7 @@ object OrderRemoteDataSource { ...@@ -62,7 +63,7 @@ object OrderRemoteDataSource {
/** /**
* 获取确认订单 * 获取确认订单
*/ */
fun requestOrderConfirm(requestParams: HashMap<String, String?>, callback: ((OrderConfirmResDto?) -> Unit)? = null) { fun requestOrderConfirm(requestParams: JSONObject, callback: ((OrderConfirmResDto?) -> Unit)? = null) {
val timeStamp = System.currentTimeMillis() val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp) val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp) val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp)
...@@ -83,7 +84,7 @@ object OrderRemoteDataSource { ...@@ -83,7 +84,7 @@ object OrderRemoteDataSource {
/** /**
* 创建订单 * 创建订单
*/ */
fun requestCreateOrder(requestParams: HashMap<String, String?>, callback: ((CreateOrderResDto?) -> Unit)? = null) { fun requestCreateOrder(requestParams: JSONObject, callback: ((CreateOrderResDto?) -> Unit)? = null) {
val timeStamp = System.currentTimeMillis() val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp) val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp) val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp)
......
...@@ -6,18 +6,20 @@ import com.yidian.bcommon.constant.IntentConstants ...@@ -6,18 +6,20 @@ 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.utils.JsonUtils
import com.yidian.shenghuoquan.border.R import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.adapter.OrderConfirmCommodityListAdapter import com.yidian.shenghuoquan.border.adapter.OrderConfirmCommodityListAdapter
import com.yidian.shenghuoquan.border.databinding.BorderActivityConfirmOrderBinding import com.yidian.shenghuoquan.border.databinding.BorderActivityConfirmOrderBinding
import com.yidian.shenghuoquan.border.dto.PickupPoint import com.yidian.shenghuoquan.border.dto.PickupPoint
import com.yidian.shenghuoquan.border.dto.Shipping
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.XPageManager import com.yidian.xpage.XPageManager
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
import org.json.JSONObject
import timber.log.Timber import timber.log.Timber
/** /**
* 确认订单 * 确认订单
*/ */
...@@ -43,14 +45,34 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ...@@ -43,14 +45,34 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
} }
private fun getIntentData(intent: Intent?) { private fun getIntentData(intent: Intent?) {
val paramsMap = intent?.getSerializableExtra(XRouterPathConstants.ParamsKey) val params = intent?.getSerializableExtra(XRouterPathConstants.ParamsKey)
if (paramsMap != null) { if (params != null) {
paramsMap as HashMap<String, String?> // 注意接收h5传过来的JSONObject
marketingId = paramsMap["marketing_id"] params as HashMap<String, Any?>
vm.requestConfirmOrderInfo(paramsMap) // params["自定义一个共用的key"] as JSONObject
// TODO 修改为h5传递的参数
parsingParameters()
}
}
private fun parsingParameters() {
// 解析本地json数据
val jsonStr = JsonUtils.file2JsonStr(this, "order.json")
jsonStr?.let {
val jsonObject = JSONObject(it)
Timber.tag("确认订单").e("订单请求参数JSON:${jsonObject}")
marketingId = jsonObject.optInt("marketing_id").toString()
requestConfirmOrder(jsonObject)
} }
} }
/**
* 请求确认订单
*/
private fun requestConfirmOrder(jsonObject: JSONObject) {
vm.requestConfirmOrderInfo(jsonObject)
}
private fun subscribeUiEvent() { private fun subscribeUiEvent() {
vm.goodsSuccessEvent.observe(this, { vm.goodsSuccessEvent.observe(this, {
adapter.setList(it) adapter.setList(it)
...@@ -67,10 +89,8 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ...@@ -67,10 +89,8 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
val hashMap = HashMap<String, Any?>() val hashMap = HashMap<String, Any?>()
hashMap[IntentConstants.KEY_EXTRA_PICKUP_POINT_ID] = it hashMap[IntentConstants.KEY_EXTRA_PICKUP_POINT_ID] = it
hashMap[IntentConstants.KEY_EXTRA_MARKETING_ID] = id hashMap[IntentConstants.KEY_EXTRA_MARKETING_ID] = id
Timber.e("活动id: $id")
XPageManager.push(XRouterPathConstants.PICKUP_POINT_ACTIVITY, hashMap) XPageManager.push(XRouterPathConstants.PICKUP_POINT_ACTIVITY, hashMap)
} }
} }
} }
...@@ -90,8 +110,8 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ...@@ -90,8 +110,8 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
} }
XEventConfig.CONFIRM_ORDER_CHOOSE_COUPON_SUCCESS -> { XEventConfig.CONFIRM_ORDER_CHOOSE_COUPON_SUCCESS -> {
// 选择优惠券成功 // 选择优惠券成功
val selectedCouponIndex = event.body as Int val indexList = event.body as List<Int>
vm.chooseVoucherSuccess(selectedCouponIndex) vm.chooseVoucherSuccess(indexList)
} }
} }
} }
......
...@@ -3,23 +3,26 @@ package com.yidian.shenghuoquan.border.ui ...@@ -3,23 +3,26 @@ package com.yidian.shenghuoquan.border.ui
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import com.yidian.bcommon.mvvm.BaseViewModel import com.yidian.bcommon.mvvm.BaseViewModel
import com.yidian.bcommon.mvvm.ErrorInfo
import com.yidian.bcommon.utils.ToastUtils import com.yidian.bcommon.utils.ToastUtils
import com.yidian.shenghuoquan.border.dto.CouponDto import com.yidian.shenghuoquan.border.dto.*
import com.yidian.shenghuoquan.border.dto.GoodsDto
import com.yidian.shenghuoquan.border.dto.PickupPoint
import com.yidian.shenghuoquan.border.dto.Shipping
import com.yidian.shenghuoquan.border.http.OrderRemoteDataSource import com.yidian.shenghuoquan.border.http.OrderRemoteDataSource
import org.json.JSONArray
import org.json.JSONObject
class ConfirmOrderViewModel : BaseViewModel() { class ConfirmOrderViewModel : BaseViewModel() {
private lateinit var currentParamsJson: JSONObject// 当前订单的请求参数
private var originalAmount: Double = 0.00// 原价总和 private var originalAmount: Double = 0.00// 原价总和
var couponAmount: Double = 0.00// 优惠券金额 var couponAmount: Double = 0.00// 优惠券金额
var couponAmountValue = MutableLiveData(0.00)
var couponNameValue = MutableLiveData("红包/优惠券")
var selectedPickUpPoint = MutableLiveData<Shipping?>()// 自提点 var selectedPickUpPoint = MutableLiveData<Shipping?>()// 自提点
var receivingName = MutableLiveData<String>()// 收货人姓名 var receivingName = MutableLiveData<String>()// 收货人姓名
var receivingPhone = MutableLiveData<String>()//收货人电话 var receivingPhone = MutableLiveData<String>()//收货人电话
var selectedCoupon = MutableLiveData<CouponDto?>()// 选中的优惠券 var selectedCouponList = MutableLiveData<MutableList<CouponDto>?>()// 选中的优惠券
var couponsAvailableList = MutableLiveData<List<CouponDto>?>()// 可用优惠券列表 var couponsAvailableList = MutableLiveData<List<CouponDto>?>()// 可用优惠券列表
var totalAmount = MutableLiveData(0.00)// 合计金额 = 原价 - 优惠 var totalAmount = MutableLiveData(0.00)// 合计金额 = 原价 - 优惠
var remark = MutableLiveData<String>() var remark = MutableLiveData<String>()
...@@ -45,11 +48,12 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -45,11 +48,12 @@ class ConfirmOrderViewModel : BaseViewModel() {
/** /**
* 请求订单信息 * 请求订单信息
*/ */
fun requestConfirmOrderInfo(paramsMap: HashMap<String, String?>) { fun requestConfirmOrderInfo(paramsJson: JSONObject) {
OrderRemoteDataSource.requestOrderConfirm(paramsMap) { OrderRemoteDataSource.requestOrderConfirm(paramsJson) {
if (it == null) { if (it == null) {
return@requestOrderConfirm return@requestOrderConfirm
} }
currentParamsJson = paramsJson
selectedPickUpPoint.value = it.shipping selectedPickUpPoint.value = it.shipping
receivingName.value = it.shipping?.receiverName ?: "" receivingName.value = it.shipping?.receiverName ?: ""
receivingPhone.value = it.shipping?.receiverMobile ?: "" receivingPhone.value = it.shipping?.receiverMobile ?: ""
...@@ -77,7 +81,11 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -77,7 +81,11 @@ class ConfirmOrderViewModel : BaseViewModel() {
* 计算商品合计 = 原价 - 优惠 * 计算商品合计 = 原价 - 优惠
*/ */
private fun calculateTotalAmount() { private fun calculateTotalAmount() {
totalAmount.value = originalAmount - couponAmount var total = originalAmount - couponAmount
if (total < 0) {
total = 0.00
}
totalAmount.value = total
} }
/** /**
...@@ -105,13 +113,27 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -105,13 +113,27 @@ class ConfirmOrderViewModel : BaseViewModel() {
_chooseCouponEvent.value = couponsAvailableList.value _chooseCouponEvent.value = couponsAvailableList.value
} }
fun chooseVoucherSuccess(selectedIndex: Int) { /**
* 选择的优惠券金额已支持多选,⚠️ :名称和UI暂不支持
*/
fun chooseVoucherSuccess(indexList: List<Int>) {
// 获取选中的优惠券 // 获取选中的优惠券
val coupon = couponsAvailableList.value?.get(selectedIndex) val list = mutableListOf<CouponDto>()
//将该优惠券更新为选中状态 indexList.forEach {
coupon?.selected = true val coupon = couponsAvailableList.value?.get(it)
selectedCoupon.value = coupon //将该优惠券更新为选中状态
couponAmount = coupon?.amount?.toDouble() ?: 0.00 coupon?.let { couponDto ->
// 累加优惠券金额
couponAmount += couponDto.amount?.toDouble() ?: 0.00
couponDto.selected = true
list.add(couponDto)
}
}
selectedCouponList.value = list
// 更新优惠券总金额
couponAmountValue.value = couponAmount
// 更新选择优惠券名称
couponNameValue.value = couponsAvailableList.value?.get(0)?.name
// 重新计算相关金额 // 重新计算相关金额
calculateTotalAmount() calculateTotalAmount()
} }
...@@ -120,12 +142,30 @@ class ConfirmOrderViewModel : BaseViewModel() { ...@@ -120,12 +142,30 @@ class ConfirmOrderViewModel : BaseViewModel() {
* 创建订单 * 创建订单
*/ */
fun createOrder() { fun createOrder() {
val paramsMap = HashMap<String, String?>() if (selectedPickUpPoint.value?.takePlaceId == null) {
paramsMap["business_from"] = "2" postErrorEvent(ErrorInfo(message = "请选择自提点"))
paramsMap["user_id"] = "510235230818" return
// todo 添加其他参数 }
if (receivingName.value.isNullOrBlank()) {
OrderRemoteDataSource.requestCreateOrder(paramsMap) { postErrorEvent(ErrorInfo(message = "请输入收货姓名"))
return
}
if (receivingPhone.value.isNullOrBlank()) {
postErrorEvent(ErrorInfo(message = "请输入手机号码"))
return
}
if (receivingPhone.value?.length != 11) {
postErrorEvent(ErrorInfo(message = "请输入11位手机号码"))
return
}
if (!selectedCouponList.value.isNullOrEmpty()) {// 添加上选中的优惠券
currentParamsJson.put("coupon_list", JSONArray(selectedCouponList.value))
}
currentParamsJson.put("take_place_id", selectedPickUpPoint.value?.takePlaceId)
currentParamsJson.put("receiver_name", receivingName.value)
currentParamsJson.put("receiver_mobile", receivingPhone.value)
currentParamsJson.put("comment", remark.value)
OrderRemoteDataSource.requestCreateOrder(currentParamsJson) {
ToastUtils.showShort("创建订单成功${it?.orderId}") ToastUtils.showShort("创建订单成功${it?.orderId}")
} }
} }
......
...@@ -193,6 +193,7 @@ ...@@ -193,6 +193,7 @@
android:background="@null" android:background="@null"
android:hint="请输入收货人电话号码" android:hint="请输入收货人电话号码"
android:inputType="phone" android:inputType="phone"
android:maxLength="11"
android:singleLine="true" android:singleLine="true"
android:text="@={vm.receivingPhone}" android:text="@={vm.receivingPhone}"
android:textColor="@color/color_333333" android:textColor="@color/color_333333"
...@@ -254,7 +255,7 @@ ...@@ -254,7 +255,7 @@
android:drawableStart="@drawable/icon_red_envelope" android:drawableStart="@drawable/icon_red_envelope"
android:drawablePadding="@dimen/dp5" android:drawablePadding="@dimen/dp5"
android:singleLine="true" android:singleLine="true"
android:text="@{vm.selectedCoupon.name ?? @string/red_packet_or_coupon}" android:text="@{vm.couponNameValue ?? @string/red_packet_or_coupon}"
android:textColor="@color/color_333333" android:textColor="@color/color_333333"
android:textSize="@dimen/sp14" android:textSize="@dimen/sp14"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
...@@ -275,7 +276,7 @@ ...@@ -275,7 +276,7 @@
android:text="@{vm.couponsAvailableList.size() + @string/coupons_available_num}" android:text="@{vm.couponsAvailableList.size() + @string/coupons_available_num}"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="11sp" android:textSize="11sp"
app:isShow="@{vm.selectedCoupon.amount == null}" app:isShow="@{vm.selectedCouponList.size() == 0}"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_coupons_next_arrow" app:layout_constraintEnd_toStartOf="@id/iv_coupons_next_arrow"
app:layout_constraintHorizontal_bias="1" app:layout_constraintHorizontal_bias="1"
...@@ -291,10 +292,10 @@ ...@@ -291,10 +292,10 @@
android:paddingTop="@dimen/dp2" android:paddingTop="@dimen/dp2"
android:paddingEnd="@dimen/dp5" android:paddingEnd="@dimen/dp5"
android:paddingBottom="@dimen/dp2" android:paddingBottom="@dimen/dp2"
android:text="@{vm.selectedCoupon.amount}" android:text="@{vm.couponAmountValue.toString()}"
android:textColor="@color/color_FD7823" android:textColor="@color/color_FD7823"
android:textSize="11sp" android:textSize="11sp"
app:isShow="@{vm.selectedCoupon.amount != null}" app:isShow="@{vm.selectedCouponList.size() > 0}"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_coupons_next_arrow" app:layout_constraintEnd_toStartOf="@id/iv_coupons_next_arrow"
app:layout_constraintHorizontal_bias="1" app:layout_constraintHorizontal_bias="1"
......
...@@ -66,6 +66,9 @@ object BaseInitConfig { ...@@ -66,6 +66,9 @@ object BaseInitConfig {
}, 20//webview缓存池数量,默认不缓存 }, 20//webview缓存池数量,默认不缓存
) )
/**
* 接收h5调用服务传递的数据
*/
XBridManager.registerServiceInvoker(object : OnServiceInvoke { XBridManager.registerServiceInvoker(object : OnServiceInvoke {
override fun onCall( override fun onCall(
identifier: String, // the identifier assigned when webview created identifier: String, // the identifier assigned when webview created
...@@ -94,8 +97,12 @@ object BaseInitConfig { ...@@ -94,8 +97,12 @@ object BaseInitConfig {
} }
}) })
/**
* 接收h5调用XPage传递的数据
*/
XBridManager.registerXPageInvoker(object : OnXPageInvoke { XBridManager.registerXPageInvoker(object : OnXPageInvoke {
override fun onCall(identifier: String, xWebView: XWebView, request: XPageRequest) { override fun onCall(identifier: String, xWebView: XWebView, request: XPageRequest) {
// 将传递的参数整合到新建的map中,如果下游页面需要的参数是JSONObject需要将JSONObject作为map的value传递
val params = mutableMapOf<String, Any>() val params = mutableMapOf<String, Any>()
(request.params as JSONObject).let { reParams -> (request.params as JSONObject).let { reParams ->
reParams.keys().forEach { reParams.keys().forEach {
......
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