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

[提交人]:王雪伟

[提交简述] :小象省钱
[实现方案] :加入优惠券弹窗
parent fb3a9049
......@@ -398,5 +398,5 @@ interface IHomeApi {
//获取用户话费券列表
@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
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
......@@ -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<Any, HuafeiCouponsAdapter.ViewHolder> {
class HuafeiCouponsAdapter : BaseRecyclerAdapter<CouponsEntity, HuafeiCouponsAdapter.ViewHolder> {
private var mContext: Activity? = null
private val listener: OnRecycleItemClickListener<Any>
private val listener: OnRecycleItemClickListener<CouponsEntity>
private var mSelectPos = -1;
constructor(
content: Activity?,
listener: OnRecycleItemClickListener<Any>
listener: OnRecycleItemClickListener<CouponsEntity>
) : 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())
......
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
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)
}
})
}
......
......@@ -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)
......
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