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
Show 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 {
...
@@ -398,5 +398,5 @@ interface IHomeApi {
//获取用户话费券列表
//获取用户话费券列表
@GET
(
NetConfig
.
QY
.
XX_GOODS_FETCHALL_CARD
)
@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
...
@@ -10,6 +10,7 @@ import com.zxbw.modulemain.view.DialogUtils
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.cms.net.SettingPreference
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.net.model.qy.RightsDetailEntity
import
com.zxhl.cms.utils.OnRecycleItemClickListener
import
com.zxhl.cms.utils.OnRecycleItemClickListener
import
kotlinx.android.synthetic.main.activity_layout_recharge.*
import
kotlinx.android.synthetic.main.activity_layout_recharge.*
...
@@ -22,8 +23,14 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
...
@@ -22,8 +23,14 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
override
fun
onClick
(
v
:
View
?)
{
override
fun
onClick
(
v
:
View
?)
{
when
(
v
)
{
when
(
v
)
{
id_tv_select_coupons
->
{
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
...
@@ -46,6 +53,8 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
id_rl_recharge
?.
layoutManager
=
GridLayoutManager
(
this
,
3
)
id_rl_recharge
?.
layoutManager
=
GridLayoutManager
(
this
,
3
)
id_rl_recharge
?.
adapter
=
mAdapter
id_rl_recharge
?.
adapter
=
mAdapter
mPresenter
?.
getFetchCard
(
user
.
nickname
)
mPresenter
?.
getFetchCard
(
user
.
nickname
)
id_tv_select_coupons
?.
setOnClickListener
(
this
)
}
}
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
RightsDetailEntity
?)
{
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
RightsDetailEntity
?)
{
...
@@ -55,4 +64,9 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
...
@@ -55,4 +64,9 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
override
fun
setData
()
{
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
...
@@ -11,18 +11,19 @@ import androidx.recyclerview.widget.RecyclerView
import
com.zxbw.modulemain.R
import
com.zxbw.modulemain.R
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.base.BaseRecyclerAdapter
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.utils.OnRecycleItemClickListener
import
com.zxhl.cms.widget.RecycleImageView
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
var
mContext
:
Activity
?
=
null
private
val
listener
:
OnRecycleItemClickListener
<
An
y
>
private
val
listener
:
OnRecycleItemClickListener
<
CouponsEntit
y
>
private
var
mSelectPos
=
-
1
;
private
var
mSelectPos
=
-
1
;
constructor
(
constructor
(
content
:
Activity
?,
content
:
Activity
?,
listener
:
OnRecycleItemClickListener
<
An
y
>
listener
:
OnRecycleItemClickListener
<
CouponsEntit
y
>
)
:
super
()
{
)
:
super
()
{
mContext
=
content
mContext
=
content
this
.
listener
=
listener
this
.
listener
=
listener
...
@@ -34,6 +35,7 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
...
@@ -34,6 +35,7 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
}
}
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
{
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
{
val
couponsEntity
=
mList
[
position
]
if
(
mSelectPos
==
position
)
{
if
(
mSelectPos
==
position
)
{
holder
.
id_ll_huafei_coupons_item_view
?.
setBackgroundResource
(
R
.
drawable
.
icon_huafei_select
)
holder
.
id_ll_huafei_coupons_item_view
?.
setBackgroundResource
(
R
.
drawable
.
icon_huafei_select
)
holder
.
id_tv_huafei_amount
?.
setTextColor
(
Color
.
parseColor
(
"#FFE5C6"
))
holder
.
id_tv_huafei_amount
?.
setTextColor
(
Color
.
parseColor
(
"#FFE5C6"
))
...
@@ -43,11 +45,12 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
...
@@ -43,11 +45,12 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
holder
.
id_tv_huafei_amount
?.
setTextColor
(
Color
.
parseColor
(
"#894F2A"
))
holder
.
id_tv_huafei_amount
?.
setTextColor
(
Color
.
parseColor
(
"#894F2A"
))
holder
.
id_tv_huafei_desc
?.
setTextColor
(
Color
.
parseColor
(
"#999999"
))
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
{
holder
.
id_ll_huafei_coupons_item_view
?.
setOnClickListener
{
if
(
mSelectPos
!=
position
)
{
if
(
mSelectPos
!=
position
)
{
mSelectPos
=
position
mSelectPos
=
position
listener
.
onItemClick
(
it
,
position
,
null
)
listener
.
onItemClick
(
it
,
position
,
couponsEntity
)
}
else
{
}
else
{
mSelectPos
=
-
1
;
mSelectPos
=
-
1
;
listener
.
onItemClick
(
it
,
position
,
null
)
listener
.
onItemClick
(
it
,
position
,
null
)
...
@@ -56,10 +59,6 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
...
@@ -56,10 +59,6 @@ class HuafeiCouponsAdapter : BaseRecyclerAdapter<Any, HuafeiCouponsAdapter.ViewH
}
}
}
}
override
fun
getItemCount
():
Int
{
return
10
}
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
return
ViewHolder
(
return
ViewHolder
(
LayoutInflater
.
from
(
AppContext
.
get
())
LayoutInflater
.
from
(
AppContext
.
get
())
...
...
moduleMain/src/main/java/com/zxbw/modulemain/contract/RechargeContract.kt
View file @
35b57132
package
com.zxbw.modulemain.contract
package
com.zxbw.modulemain.contract
import
com.zxhl.cms.net.model.qy.CouponsEntity
class
RechargeContract
{
class
RechargeContract
{
interface
View
{
interface
View
{
fun
setData
()
fun
setData
()
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
}
}
interface
Presenter
{
interface
Presenter
{
fun
getFetchCard
(
phone
:
String
)
fun
getFetchCard
(
phone
:
String
)
fun
getPayList
()
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
package
com.zxbw.modulemain.presenter
import
android.util.Log
import
com.zxbw.modulemain.contract.RechargeContract
import
com.zxbw.modulemain.contract.RechargeContract
import
com.zxhl.cms.net.ApiClient
import
com.zxhl.cms.net.ApiClient
import
com.zxhl.cms.net.RxSchedulers
import
com.zxhl.cms.net.RxSchedulers
import
com.zxhl.cms.net.callback.BaseObserver
import
com.zxhl.cms.net.callback.BaseObserver
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.SkillEntity
import
com.zxhl.cms.net.model.qy.SkillEntity
class
RechargePresenter
:
RechargeContract
.
Presenter
{
class
RechargePresenter
:
RechargeContract
.
Presenter
{
...
@@ -13,17 +15,16 @@ class RechargePresenter : RechargeContract.Presenter {
...
@@ -13,17 +15,16 @@ class RechargePresenter : RechargeContract.Presenter {
constructor
(
mView
:
RechargeContract
.
View
)
{
constructor
(
mView
:
RechargeContract
.
View
)
{
this
.
mView
=
mView
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
?)
{
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
...
@@ -17,6 +17,7 @@ import com.zxbw.modulemain.adapter.HuafeiCouponsAdapter
import
com.zxbw.modulemain.box.adapter.SelectBoxAdapter
import
com.zxbw.modulemain.box.adapter.SelectBoxAdapter
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.utils.*
import
com.zxhl.cms.utils.*
import
java.util.*
import
java.util.*
...
@@ -447,11 +448,19 @@ object DialogUtils {
...
@@ -447,11 +448,19 @@ object DialogUtils {
}
}
interface
OnFetchCardListener
{
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
if
(
context
.
isDestroyed
)
return
val
mDialog
=
Dialog
(
context
,
R
.
style
.
CenterCompatDialogTheme
)
val
mDialog
=
Dialog
(
context
,
R
.
style
.
CenterCompatDialogTheme
)
val
mDialogView
=
val
mDialogView
=
...
@@ -462,21 +471,53 @@ object DialogUtils {
...
@@ -462,21 +471,53 @@ object DialogUtils {
0
,
0
,
Gravity
.
CENTER
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
youhuiList
=
mDialogView
.
findViewById
<
RecyclerView
>(
R
.
id
.
id_rcl_huafei_list
);
val
huafeiCouponsAdapter
=
val
huafeiCouponsAdapter
=
HuafeiCouponsAdapter
(
context
,
object
:
OnRecycleItemClickListener
<
Any
>
{
HuafeiCouponsAdapter
(
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
Any
?)
{
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
.
layoutManager
=
GridLayoutManager
(
context
,
2
)
youhuiList
.
adapter
=
huafeiCouponsAdapter
youhuiList
.
adapter
=
huafeiCouponsAdapter
huafeiCouponsAdapter
.
appendToList
(
result
)
mDialogView
.
findViewById
<
ImageView
>(
R
.
id
.
id_img_close_dialog
).
setOnClickListener
{
mDialogView
.
findViewById
<
ImageView
>(
R
.
id
.
id_img_close_dialog
).
setOnClickListener
{
mDialog
.
dismiss
()
mDialog
.
dismiss
()
}
}
mDialogView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_bottom_btn
).
setOnClickListener
{
mDialogView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_bottom_btn
).
setOnClickListener
{
mDialog
.
dismiss
()
mDialog
.
dismiss
()
listener
.
onSelectCoupons
(
selectCoupon
)
}
}
mDialog
.
setCanceledOnTouchOutside
(
false
)
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