Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
0ce94962
Commit
0ce94962
authored
Aug 25, 2021
by
shiyl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
联调选择自提点
parent
2b23c402
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
107 additions
and
44 deletions
+107
-44
IntentConstants.kt
.../main/java/com/yidian/bcommon/constant/IntentConstants.kt
+3
-0
OrderConfirmDto.kt
...ava/com/yidian/shenghuoquan/border/dto/OrderConfirmDto.kt
+14
-18
ConfirmOrderActivity.kt
...com/yidian/shenghuoquan/border/ui/ConfirmOrderActivity.kt
+27
-4
ConfirmOrderViewModel.kt
...om/yidian/shenghuoquan/border/ui/ConfirmOrderViewModel.kt
+38
-17
border_activity_confirm_order.xml
...der/src/main/res/layout/border_activity_confirm_order.xml
+25
-5
No files found.
CommonLib/BCommon/src/main/java/com/yidian/bcommon/constant/IntentConstants.kt
View file @
0ce94962
...
...
@@ -27,4 +27,7 @@ object IntentConstants {
// 自提点id
const
val
KEY_EXTRA_PICKUP_POINT_ID
=
"pickupPointId"
// 确认订单进选择优惠券列表
const
val
KEY_EXTRA_COUPON_LIST
=
"couponList"
}
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/dto/OrderConfirmDto.kt
View file @
0ce94962
...
...
@@ -7,9 +7,9 @@ import kotlinx.parcelize.Parcelize
@Parcelize
data class
OrderConfirmResDto
(
@SerializedName
(
"coupon_list"
)
val
coupon
Dto
:
List
<
CouponDto
>?
=
null
,
val
coupon
List
:
List
<
CouponDto
>?
=
null
,
@SerializedName
(
"goods_list"
)
val
goods
Dto
:
List
<
GoodsDto
>?
=
null
,
val
goods
List
:
List
<
GoodsDto
>?
=
null
,
@SerializedName
(
"shipping"
)
val
shipping
:
Shipping
?
=
null
,
)
:
Parcelable
...
...
@@ -24,14 +24,16 @@ data class CouponDto(
val
amount
:
String
?
=
null
,
// 优惠券金额
@SerializedName
(
"desc"
)
val
desc
:
String
?
=
null
,
// 优惠券描述
// @SerializedName("desc
")
// val desc
: String? = null,// 优惠券使用门槛
@SerializedName
(
"scope_use
"
)
val
scopeUse
:
String
?
=
null
,
// 优惠券使用门槛
@SerializedName
(
"start_time"
)
val
startTime
:
String
?
=
null
,
// 有效期开始时间
@SerializedName
(
"end_time"
)
val
endTime
:
String
?
=
null
,
// 有效期结束时间
@SerializedName
(
"status"
)
val
status
:
Int
?
=
null
,
// 优惠券状态
@SerializedName
(
"selected"
)
var
selected
:
Boolean
?
=
false
,
// 优惠券是否被选中
)
:
Parcelable
/**
...
...
@@ -54,24 +56,18 @@ data class GoodsDto(
*/
@Parcelize
data class
Shipping
(
@SerializedName
(
"create_time"
)
val
createTime
:
String
?
=
null
,
@SerializedName
(
"order_id"
)
val
orderId
:
String
?
=
null
,
// 订单id
@SerializedName
(
"receiver_address"
)
val
receiverAddress
:
String
?
=
null
,
// 收获地址
@SerializedName
(
"receiver_mobile"
)
val
receiverMobile
:
String
?
=
null
,
// 收货人手机号
@SerializedName
(
"receiver_name"
)
val
receiverName
:
String
?
=
null
,
// 收货人姓名
@SerializedName
(
"shipping_id"
)
val
shippingId
:
String
?
=
null
,
@SerializedName
(
"take_place_id"
)
va
l
takePlaceId
:
Int
?
=
null
,
va
r
takePlaceId
:
Long
?
=
null
,
// 自提点id
@SerializedName
(
"take_place_name"
)
val
takePlaceName
:
String
?
=
null
,
@SerializedName
(
"update_time"
)
val
updateTime
:
String
?
=
null
,
@SerializedName
(
"user_id"
)
val
userId
:
String
?
=
null
var
takePlaceName
:
String
?
=
null
,
// 自提点名称
@SerializedName
(
"contact_name"
)
var
contactName
:
String
?
=
null
,
// 自提点联系人
@SerializedName
(
"phone"
)
var
phone
:
String
?
=
null
,
// 自提点电话
@SerializedName
(
"address"
)
var
address
:
String
?
=
null
,
// 自提点地址
)
:
Parcelable
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/ui/ConfirmOrderActivity.kt
View file @
0ce94962
...
...
@@ -2,24 +2,29 @@ package com.yidian.shenghuoquan.border.ui
import
android.content.Intent
import
androidx.activity.viewModels
import
com.yidian.bcommon.constant.IntentConstants
import
com.yidian.bcommon.constant.XEventConfig
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.mvvm.BaseMvvmActivity
import
com.yidian.shenghuoquan.border.R
import
com.yidian.shenghuoquan.border.adapter.OrderConfirmCommodityListAdapter
import
com.yidian.shenghuoquan.border.databinding.BorderActivityConfirmOrderBinding
import
com.yidian.shenghuoquan.border.dto.
CouponDto
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.XEventManager
import
com.yidian.xpage.XPageManager
import
org.greenrobot.eventbus.Subscribe
import
org.greenrobot.eventbus.ThreadMode
import
timber.log.Timber
/**
* 确认订单
*/
class
ConfirmOrderActivity
:
BaseMvvmActivity
<
BorderActivityConfirmOrderBinding
,
ConfirmOrderViewModel
>()
{
private
var
marketingId
:
String
?
=
null
// 活动id
private
val
adapter
by
lazy
{
OrderConfirmCommodityListAdapter
()
}
override
val
layoutId
:
Int
=
R
.
layout
.
border_activity_confirm_order
...
...
@@ -41,6 +46,7 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
val
paramsMap
=
intent
?.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
if
(
paramsMap
!=
null
)
{
paramsMap
as
HashMap
<
String
,
String
?>
marketingId
=
paramsMap
[
"marketing_id"
]
vm
.
requestConfirmOrderInfo
(
paramsMap
)
}
}
...
...
@@ -49,6 +55,23 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
vm
.
goodsSuccessEvent
.
observe
(
this
,
{
adapter
.
setList
(
it
)
})
vm
.
chooseCouponEvent
.
observe
(
this
)
{
// 将最新的优惠券列表传递过去
val
hashMap
=
HashMap
<
String
,
Any
?>()
hashMap
[
IntentConstants
.
KEY_EXTRA_COUPON_LIST
]
=
it
XPageManager
.
push
(
XRouterPathConstants
.
CHOOSE_VOUCHER_ACTIVITY
,
hashMap
)
}
vm
.
choosePointEvent
.
observe
(
this
)
{
// 将选择的自提点id传递过去
marketingId
?.
let
{
id
->
val
hashMap
=
HashMap
<
String
,
Any
?>()
hashMap
[
IntentConstants
.
KEY_EXTRA_PICKUP_POINT_ID
]
=
it
hashMap
[
IntentConstants
.
KEY_EXTRA_MARKETING_ID
]
=
id
Timber
.
e
(
"活动id: $id"
)
XPageManager
.
push
(
XRouterPathConstants
.
PICKUP_POINT_ACTIVITY
,
hashMap
)
}
}
}
...
...
@@ -62,13 +85,13 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
when
(
event
?.
name
)
{
XEventConfig
.
CONFIRM_ORDER_CHOOSE_POINT_SUCCESS
->
{
// 选择自提点成功
val
point
=
event
.
body
as
Shipping
val
point
=
event
.
body
as
PickupPoint
vm
.
choosePickUpPointSuccess
(
point
)
}
XEventConfig
.
CONFIRM_ORDER_CHOOSE_COUPON_SUCCESS
->
{
// 选择优惠券成功
val
coupon
=
event
.
body
as
CouponDto
vm
.
chooseVoucherSuccess
(
coupon
)
val
selectedCouponIndex
=
event
.
body
as
Int
vm
.
chooseVoucherSuccess
(
selectedCouponIndex
)
}
}
}
...
...
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/ui/ConfirmOrderViewModel.kt
View file @
0ce94962
...
...
@@ -6,9 +6,11 @@ import com.yidian.bcommon.mvvm.BaseViewModel
import
com.yidian.bcommon.utils.ToastUtils
import
com.yidian.shenghuoquan.border.dto.CouponDto
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
class
ConfirmOrderViewModel
:
BaseViewModel
()
{
private
var
originalAmount
:
Double
=
0.00
// 原价总和
...
...
@@ -17,8 +19,8 @@ class ConfirmOrderViewModel : BaseViewModel() {
var
selectedPickUpPoint
=
MutableLiveData
<
Shipping
?>()
// 自提点
var
receivingName
=
MutableLiveData
<
String
>()
// 收货人姓名
var
receivingPhone
=
MutableLiveData
<
String
>()
//收货人电话
var
selectedCoupon
=
MutableLiveData
<
CouponDto
>()
// 选中的优惠券
var
couponsAvailable
Num
=
MutableLiveData
<
Int
>()
// 可用优惠券数量
var
selectedCoupon
=
MutableLiveData
<
CouponDto
?
>()
// 选中的优惠券
var
couponsAvailable
List
=
MutableLiveData
<
List
<
CouponDto
>?>()
// 可用优惠券列表
var
totalAmount
=
MutableLiveData
(
0.00
)
// 合计金额 = 原价 - 优惠
var
remark
=
MutableLiveData
<
String
>()
...
...
@@ -28,6 +30,18 @@ class ConfirmOrderViewModel : BaseViewModel() {
private
val
_goodsSuccessEvent
=
MutableLiveData
<
List
<
GoodsDto
>?>()
val
goodsSuccessEvent
:
LiveData
<
List
<
GoodsDto
>?>
=
_goodsSuccessEvent
/**
* 选择自提点 Event
*/
private
val
_choosePointEvent
=
MutableLiveData
<
Long
?>()
val
choosePointEvent
:
LiveData
<
Long
?>
=
_choosePointEvent
/**
* 选择优惠券 Event
*/
private
val
_chooseCouponEvent
=
MutableLiveData
<
List
<
CouponDto
>?>()
val
chooseCouponEvent
:
LiveData
<
List
<
CouponDto
>?>
=
_chooseCouponEvent
/**
* 请求订单信息
*/
...
...
@@ -39,10 +53,9 @@ class ConfirmOrderViewModel : BaseViewModel() {
selectedPickUpPoint
.
value
=
it
.
shipping
receivingName
.
value
=
it
.
shipping
?.
receiverName
?:
""
receivingPhone
.
value
=
it
.
shipping
?.
receiverMobile
?:
""
_goodsSuccessEvent
.
value
=
it
.
goodsDto
calculateOriginalAmount
(
it
.
goodsDto
)
couponsAvailableNum
.
value
=
it
.
couponDto
?.
size
?:
0
// 显示0张便于查看不能使用的优惠券
_goodsSuccessEvent
.
value
=
it
.
goodsList
calculateOriginalAmount
(
it
.
goodsList
)
couponsAvailableList
.
value
=
it
.
couponList
}
}
...
...
@@ -67,30 +80,38 @@ class ConfirmOrderViewModel : BaseViewModel() {
totalAmount
.
value
=
originalAmount
-
couponAmount
}
/**
* 选择自提点
* 选择自提点
,如果有上次选中的带过去自提点id
*/
fun
choosePickUpPoint
()
{
//
todo 带过去当前选中自提点
ToastUtils
.
showLongSafe
(
"去选择自提点"
)
//
带过去当前选中自提点id
_choosePointEvent
.
value
=
selectedPickUpPoint
.
value
?.
takePlaceId
}
fun
choosePickUpPointSuccess
(
point
:
Shipping
)
{
selectedPickUpPoint
.
value
=
point
fun
choosePickUpPointSuccess
(
point
:
PickupPoint
)
{
selectedPickUpPoint
.
value
=
Shipping
(
takePlaceId
=
point
.
takePlaceId
,
takePlaceName
=
point
.
takePlaceName
,
contactName
=
point
.
contactName
,
phone
=
point
.
phone
,
address
=
point
.
address
)
}
/**
* 选择代金券
* 选择代金券
, 如果有上次选中的带过去最新的列表
*/
fun
chooseVoucher
()
{
// todo 带过去当前选中优惠券
ToastUtils
.
showLongSafe
(
"去选择优惠券"
)
_chooseCouponEvent
.
value
=
couponsAvailableList
.
value
}
fun
chooseVoucherSuccess
(
coupon
:
CouponDto
)
{
fun
chooseVoucherSuccess
(
selectedIndex
:
Int
)
{
// 获取选中的优惠券
val
coupon
=
couponsAvailableList
.
value
?.
get
(
selectedIndex
)
//将该优惠券更新为选中状态
coupon
?.
selected
=
true
selectedCoupon
.
value
=
coupon
couponAmount
=
coupon
.
amount
?.
toDouble
()
?:
0.00
couponAmount
=
coupon
?
.
amount
?.
toDouble
()
?:
0.00
// 重新计算相关金额
calculateTotalAmount
()
}
...
...
Components/BOrder/src/main/res/layout/border_activity_confirm_order.xml
View file @
0ce94962
...
...
@@ -111,7 +111,7 @@
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp8"
android:text=
"@{vm.selectedPickUpPoint.
takePlaceName
}"
android:text=
"@{vm.selectedPickUpPoint.
address
}"
android:textColor=
"@color/color_999999"
android:textSize=
"@dimen/sp14"
app:isShow=
"@{vm.selectedPickUpPoint.takePlaceName != null}"
...
...
@@ -125,7 +125,7 @@
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp8"
android:text=
"@{@string/pickup_point_contract_person +
vm.selectedPickUpPoint.receiverName + vm.selectedPickUpPoint.receiverMobile
}"
android:text=
"@{@string/pickup_point_contract_person +
String.valueOf(vm.selectedPickUpPoint.contactName + vm.selectedPickUpPoint.phone)
}"
android:textColor=
"@color/color_999999"
android:textSize=
"@dimen/sp14"
app:isShow=
"@{vm.selectedPickUpPoint.takePlaceName != null}"
...
...
@@ -242,7 +242,7 @@
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp8"
android:onClick=
"@{() -> vm.chooseVoucher()}"
app:isShow=
"@{vm.couponsAvailable
Num
> 0}"
app:isShow=
"@{vm.couponsAvailable
List.size()
> 0}"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/rv_goods_list"
>
...
...
@@ -254,7 +254,7 @@
android:drawableStart=
"@drawable/icon_red_envelope"
android:drawablePadding=
"@dimen/dp5"
android:singleLine=
"true"
android:text=
"
红包/优惠券
"
android:text=
"
@{vm.selectedCoupon.name ?? @string/red_packet_or_coupon}
"
android:textColor=
"@color/color_333333"
android:textSize=
"@dimen/sp14"
app:layout_constraintBottom_toBottomOf=
"parent"
...
...
@@ -272,9 +272,10 @@
android:paddingTop=
"@dimen/dp2"
android:paddingEnd=
"@dimen/dp5"
android:paddingBottom=
"@dimen/dp2"
android:text=
"@{vm.couponsAvailable
Num
+ @string/coupons_available_num}"
android:text=
"@{vm.couponsAvailable
List.size()
+ @string/coupons_available_num}"
android:textColor=
"@color/white"
android:textSize=
"11sp"
app:isShow=
"@{vm.selectedCoupon.amount == null}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/iv_coupons_next_arrow"
app:layout_constraintHorizontal_bias=
"1"
...
...
@@ -282,6 +283,25 @@
app:layout_constraintTop_toTopOf=
"parent"
tools:text=
"3张优惠券可用"
/>
<TextView
android:id=
"@+id/tv_coupons_amount"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:paddingStart=
"@dimen/dp5"
android:paddingTop=
"@dimen/dp2"
android:paddingEnd=
"@dimen/dp5"
android:paddingBottom=
"@dimen/dp2"
android:text=
"@{vm.selectedCoupon.amount}"
android:textColor=
"@color/color_FD7823"
android:textSize=
"11sp"
app:isShow=
"@{vm.selectedCoupon.amount != null}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/iv_coupons_next_arrow"
app:layout_constraintHorizontal_bias=
"1"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:text=
"- ¥10.00"
/>
<ImageView
android:id=
"@+id/iv_coupons_next_arrow"
android:layout_width=
"wrap_content"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment