Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
X
xxsq
Project
Project
Details
Activity
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王雪伟
xxsq
Commits
35b57132
Commit
35b57132
authored
Jun 10, 2022
by
王雪伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[提交人]:王雪伟
[提交简述] :小象省钱 [实现方案] :加入优惠券弹窗
parent
fb3a9049
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
102 additions
and
29 deletions
+102
-29
IHomeApi.kt
cms/src/main/java/com/zxhl/cms/net/api/IHomeApi.kt
+1
-1
CouponsEntity.kt
cms/src/main/java/com/zxhl/cms/net/model/qy/CouponsEntity.kt
+15
-0
RechargeActivity.kt
...ain/java/com/zxbw/modulemain/activity/RechargeActivity.kt
+18
-4
HuafeiCouponsAdapter.kt
.../java/com/zxbw/modulemain/adapter/HuafeiCouponsAdapter.kt
+8
-9
RechargeContract.kt
...ain/java/com/zxbw/modulemain/contract/RechargeContract.kt
+4
-1
RechargePresenter.kt
...n/java/com/zxbw/modulemain/presenter/RechargePresenter.kt
+8
-7
DialogUtils.kt
...ain/src/main/java/com/zxbw/modulemain/view/DialogUtils.kt
+48
-7
No files found.
cms/src/main/java/com/zxhl/cms/net/api/IHomeApi.kt
View file @
35b57132
...
...
@@ -398,5 +398,5 @@ interface IHomeApi {
//获取用户话费券列表
@GET
(
NetConfig
.
QY
.
XX_GOODS_FETCHALL_CARD
)
fun
getFetchallCard
(
@Query
(
"phone"
)
phone
:
String
?):
Observable
<
Response
<
List
<
Skill
Entity
>>>
fun
getFetchallCard
(
@Query
(
"phone"
)
phone
:
String
?):
Observable
<
Response
<
List
<
Coupons
Entity
>>>
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/net/model/qy/CouponsEntity.kt
0 → 100644
View file @
35b57132
package
com.zxhl.cms.net.model.qy
class
CouponsEntity
{
var
id
:
String
?
=
""
var
cardType
:
String
?
=
""
var
cardStatus
:
String
?
=
""
var
depotIds
:
String
?
=
""
var
cfg
:
String
?
=
""
var
desc
:
String
?
=
""
var
amount
:
String
?
=
""
var
usageTime
:
String
?
=
""
var
datadate
:
String
?
=
""
var
createdAt
:
String
?
=
""
var
updatedAt
:
String
?
=
""
}
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/activity/RechargeActivity.kt
View file @
35b57132
...
...
@@ -10,6 +10,7 @@ import com.zxbw.modulemain.view.DialogUtils
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.RightsDetailEntity
import
com.zxhl.cms.utils.OnRecycleItemClickListener
import
kotlinx.android.synthetic.main.activity_layout_recharge.*
...
...
@@ -22,10 +23,16 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
override
fun
onClick
(
v
:
View
?)
{
when
(
v
)
{
id_tv_select_coupons
->
{
DialogUtils
.
showFetchAllCard
(
this
,
object
:
DialogUtils
.
OnFetchCardListener
{
override
fun
onSelectCoupons
()
{
}
})
//如果有默认选中,传入默认选中的优惠券
DialogUtils
.
showFetchAllCard
(
this
,
null
,
mCouponsResult
,
object
:
DialogUtils
.
OnFetchCardListener
{
override
fun
onSelectCoupons
(
coupons
:
CouponsEntity
?)
{
//coupons==null 没有选择优惠券 !=null 选中的优惠券信息
}
})
}
}
}
...
...
@@ -46,6 +53,8 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
id_rl_recharge
?.
layoutManager
=
GridLayoutManager
(
this
,
3
)
id_rl_recharge
?.
adapter
=
mAdapter
mPresenter
?.
getFetchCard
(
user
.
nickname
)
id_tv_select_coupons
?.
setOnClickListener
(
this
)
}
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
RightsDetailEntity
?)
{
...
...
@@ -55,4 +64,9 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
override
fun
setData
()
{
}
private
var
mCouponsResult
:
List
<
CouponsEntity
>?
=
null
;
override
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
{
mCouponsResult
=
result
}
}
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/adapter/HuafeiCouponsAdapter.kt
View file @
35b57132
...
...
@@ -11,18 +11,19 @@ import androidx.recyclerview.widget.RecyclerView
import
com.zxbw.modulemain.R
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.base.BaseRecyclerAdapter
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.utils.OnRecycleItemClickListener
import
com.zxhl.cms.widget.RecycleImageView
class
HuafeiCouponsAdapter
:
BaseRecyclerAdapter
<
An
y
,
HuafeiCouponsAdapter
.
ViewHolder
>
{
class
HuafeiCouponsAdapter
:
BaseRecyclerAdapter
<
CouponsEntit
y
,
HuafeiCouponsAdapter
.
ViewHolder
>
{
private
var
mContext
:
Activity
?
=
null
private
val
listener
:
OnRecycleItemClickListener
<
An
y
>
private
val
listener
:
OnRecycleItemClickListener
<
CouponsEntit
y
>
private
var
mSelectPos
=
-
1
;
constructor
(
content
:
Activity
?,
listener
:
OnRecycleItemClickListener
<
An
y
>
listener
:
OnRecycleItemClickListener
<
CouponsEntit
y
>
)
:
super
()
{
mContext
=
content
this
.
listener
=
listener
...
...
@@ -34,6 +35,7 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
}
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
{
val
couponsEntity
=
mList
[
position
]
if
(
mSelectPos
==
position
)
{
holder
.
id_ll_huafei_coupons_item_view
?.
setBackgroundResource
(
R
.
drawable
.
icon_huafei_select
)
holder
.
id_tv_huafei_amount
?.
setTextColor
(
Color
.
parseColor
(
"#FFE5C6"
))
...
...
@@ -43,11 +45,12 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
holder
.
id_tv_huafei_amount
?.
setTextColor
(
Color
.
parseColor
(
"#894F2A"
))
holder
.
id_tv_huafei_desc
?.
setTextColor
(
Color
.
parseColor
(
"#999999"
))
}
holder
.
id_tv_huafei_amount
?.
text
=
"¥ ${couponsEntity.amount}"
holder
.
id_tv_huafei_desc
?.
text
=
"${couponsEntity.desc}"
holder
.
id_ll_huafei_coupons_item_view
?.
setOnClickListener
{
if
(
mSelectPos
!=
position
)
{
mSelectPos
=
position
listener
.
onItemClick
(
it
,
position
,
null
)
listener
.
onItemClick
(
it
,
position
,
couponsEntity
)
}
else
{
mSelectPos
=
-
1
;
listener
.
onItemClick
(
it
,
position
,
null
)
...
...
@@ -56,10 +59,6 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
}
}
override
fun
getItemCount
():
Int
{
return
10
}
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
return
ViewHolder
(
LayoutInflater
.
from
(
AppContext
.
get
())
...
...
moduleMain/src/main/java/com/zxbw/modulemain/contract/RechargeContract.kt
View file @
35b57132
package
com.zxbw.modulemain.contract
import
com.zxhl.cms.net.model.qy.CouponsEntity
class
RechargeContract
{
interface
View
{
fun
setData
()
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
}
interface
Presenter
{
fun
getFetchCard
(
phone
:
String
)
fun
getFetchCard
(
phone
:
String
)
fun
getPayList
()
}
}
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/presenter/RechargePresenter.kt
View file @
35b57132
package
com.zxbw.modulemain.presenter
import
android.util.Log
import
com.zxbw.modulemain.contract.RechargeContract
import
com.zxhl.cms.net.ApiClient
import
com.zxhl.cms.net.RxSchedulers
import
com.zxhl.cms.net.callback.BaseObserver
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.SkillEntity
class
RechargePresenter
:
RechargeContract
.
Presenter
{
...
...
@@ -13,17 +15,16 @@ class RechargePresenter : RechargeContract.Presenter {
constructor
(
mView
:
RechargeContract
.
View
)
{
this
.
mView
=
mView
}
override
fun
getFetchCard
(
phone
:
String
)
{
ApiClient
.
homeApi
.
getFetchallCard
(
phone
).
compose
(
RxSchedulers
.
observableIO2Main
())
.
subscribe
(
object
:
BaseObserver
<
List
<
SkillEntity
>>()
{
override
fun
onSuccess
(
result
:
List
<
SkillEntity
>?)
{
if
(!
result
.
isNullOrEmpty
()){
}
override
fun
getFetchCard
(
phone
:
String
)
{
ApiClient
.
homeApi
.
getFetchallCard
(
phone
).
compose
(
RxSchedulers
.
observableIO2Main
())
.
subscribe
(
object
:
BaseObserver
<
List
<
CouponsEntity
>>()
{
override
fun
onSuccess
(
result
:
List
<
CouponsEntity
>?)
{
mView
.
setCouponsList
(
result
)
}
override
fun
onFailure
(
e
:
Throwable
?,
code
:
String
?,
errorMsg
:
String
?)
{
mView
.
setCouponsList
(
null
)
}
})
}
...
...
moduleMain/src/main/java/com/zxbw/modulemain/view/DialogUtils.kt
View file @
35b57132
...
...
@@ -17,6 +17,7 @@ import com.zxbw.modulemain.adapter.HuafeiCouponsAdapter
import
com.zxbw.modulemain.box.adapter.SelectBoxAdapter
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.utils.*
import
java.util.*
...
...
@@ -447,11 +448,19 @@ object DialogUtils {
}
interface
OnFetchCardListener
{
fun
onSelectCoupons
();
fun
onSelectCoupons
(
coupons
:
CouponsEntity
?
);
}
//话费优惠券列表
fun
showFetchAllCard
(
context
:
Activity
,
listener
:
OnFetchCardListener
)
{
fun
showFetchAllCard
(
context
:
Activity
,
defaultCoupon
:
CouponsEntity
?,
result
:
List
<
CouponsEntity
>?,
listener
:
OnFetchCardListener
)
{
if
(
result
.
isNullOrEmpty
())
{
return
}
if
(
context
.
isDestroyed
)
return
val
mDialog
=
Dialog
(
context
,
R
.
style
.
CenterCompatDialogTheme
)
val
mDialogView
=
...
...
@@ -462,21 +471,53 @@ object DialogUtils {
0
,
Gravity
.
CENTER
)
val
btnBg
=
mDialogView
.
findViewById
<
RelativeLayout
>(
R
.
id
.
id_rl_bottom_btn_view
);
val
btnTv
=
mDialogView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_bottom_btn
);
var
selectCoupon
:
CouponsEntity
?
=
null
val
youhuiList
=
mDialogView
.
findViewById
<
RecyclerView
>(
R
.
id
.
id_rcl_huafei_list
);
val
huafeiCouponsAdapter
=
HuafeiCouponsAdapter
(
context
,
object
:
OnRecycleItemClickListener
<
Any
>
{
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
Any
?)
{
HuafeiCouponsAdapter
(
context
)
{
view
,
position
,
data
->
selectCoupon
=
data
if
(
selectCoupon
==
null
)
{
btnBg
.
setBackgroundResource
(
R
.
drawable
.
icon_huafei_bottom_bg_unselect
)
btnTv
.
setTextColor
(
Color
.
parseColor
(
"#999999"
))
btnTv
.
text
=
"暂不使用"
}
else
{
btnBg
.
setBackgroundResource
(
R
.
drawable
.
icon_huafei_bottom_bg
)
btnTv
.
setTextColor
(
Color
.
parseColor
(
"#F8E8CC"
))
btnTv
.
text
=
"立即支付"
}
}
if
(
defaultCoupon
==
null
)
{
huafeiCouponsAdapter
.
setSelectPos
(-
1
)
btnBg
.
setBackgroundResource
(
R
.
drawable
.
icon_huafei_bottom_bg_unselect
)
btnTv
.
setTextColor
(
Color
.
parseColor
(
"#999999"
))
btnTv
.
text
=
"暂不使用"
}
else
{
for
(
i
in
result
.
indices
)
{
if
(
defaultCoupon
.
id
==
result
[
i
].
id
)
{
huafeiCouponsAdapter
.
setSelectPos
(
i
)
btnBg
.
setBackgroundResource
(
R
.
drawable
.
icon_huafei_bottom_bg
)
btnTv
.
setTextColor
(
Color
.
parseColor
(
"#F8E8CC"
))
btnTv
.
text
=
"立即支付"
break
}
})
}
}
youhuiList
.
layoutManager
=
GridLayoutManager
(
context
,
2
)
youhuiList
.
adapter
=
huafeiCouponsAdapter
huafeiCouponsAdapter
.
appendToList
(
result
)
mDialogView
.
findViewById
<
ImageView
>(
R
.
id
.
id_img_close_dialog
).
setOnClickListener
{
mDialog
.
dismiss
()
}
mDialogView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_bottom_btn
).
setOnClickListener
{
mDialog
.
dismiss
()
listener
.
onSelectCoupons
(
selectCoupon
)
}
mDialog
.
setCanceledOnTouchOutside
(
false
)
...
...
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