Commit 35b57132 authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :小象省钱
[实现方案] :加入优惠券弹窗
parent fb3a9049
...@@ -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<SkillEntity>>> fun getFetchallCard( @Query("phone") phone: String?): Observable<Response<List<CouponsEntity>>>
} }
\ No newline at end of file
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
...@@ -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,10 +23,16 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail ...@@ -22,10 +23,16 @@ 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
...@@ -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<Any, HuafeiCouponsAdapter.ViewHolder> { class HuafeiCouponsAdapter : BaseRecyclerAdapter<CouponsEntity, HuafeiCouponsAdapter.ViewHolder> {
private var mContext: Activity? = null private var mContext: Activity? = null
private val listener: OnRecycleItemClickListener<Any> private val listener: OnRecycleItemClickListener<CouponsEntity>
private var mSelectPos = -1; private var mSelectPos = -1;
constructor( constructor(
content: Activity?, content: Activity?,
listener: OnRecycleItemClickListener<Any> listener: OnRecycleItemClickListener<CouponsEntity>
) : 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())
......
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
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)
} }
}) })
} }
......
...@@ -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)
......
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