lmw
2023-05-12 f67802a41f9e01444d1115f34ecc6e1beb05fc3b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.fuban.user.ui.trip
 
import android.app.Activity
import android.content.Intent
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayout
import com.fuban.user.R
import com.fuban.user.network.HttpManager
import com.fuban.user.network.entity.Coupon
import com.fuban.user.network.request
import com.fuban.user.ui.TransparentStatusBarActivity
import com.fuban.user.ui.mine.GiveCouponActivity
import com.fuban.user.ui.trip.adapter.CouponAdapter
import kotlinx.android.synthetic.main.activity_choose_coupon.*
import org.jetbrains.anko.startActivityForResult
 
class ChooseCouponActivity :TransparentStatusBarActivity(){
    override fun setContentView() = R.layout.activity_choose_coupon
 
    private val isPay by lazy { //true支付选择 false赠送选择
        intent.getBooleanExtra("isPay",true)
    }
    private val datas = arrayListOf<Coupon>()
    private val adapter by lazy {
        CouponAdapter(datas)
    }
    private val id by lazy {
        intent.getIntExtra("id",0)
    }
    private val type by lazy {
        intent.getIntExtra("type",0)
    }
 
    override fun initClick() {
        adapter.setOnItemClickListener { _, position ->
            adapter.checkedPosition = position
            adapter.notifyDataSetChanged()
        }
 
        tv_action.setOnClickListener {
            if (adapter.checkedPosition == -1)
                myToast("请选择一张优惠券")
            else if (isPay){
                setResult(Activity.RESULT_OK,intent.putExtra("id",datas[adapter.checkedPosition].id).putExtra("money",datas[adapter.checkedPosition].money))
                finish()
            }else
                startActivityForResult<GiveCouponActivity>(1,"id" to datas[adapter.checkedPosition].id)
        }
    }
 
    override fun initView() {
        title = "选择优惠券"
        tv_action.text = if (isPay) "确定" else "下一步"
        swipeRefreshLayout.setLayoutManager(LinearLayoutManager(this))
        swipeRefreshLayout.setAdapter(adapter)
        swipeRefreshLayout.setOnRefreshListener(object :SwipeRefreshRecyclerLayout.OnRefreshListener{
            override fun onRefresh() {
                page = 1
                getData()
            }
 
            override fun onLoadMore() {
                page++
                getData()
            }
        })
        getData()
    }
 
    private var page = 1
    private fun getData(){
        if (isPay)
            HttpManager.queryCoupon(id,type,page).request(this,success = {_,data->
                swipeRefreshLayout.isRefreshing = false
                data?.let {
                    if (page == 1)
                        datas.clear()
                    datas.addAll(data)
                    if (datas.isEmpty())
                        swipeRefreshLayout.setLoadMoreText("暂无可用优惠券")
                    else if (data.isEmpty())
                        swipeRefreshLayout.setLoadMoreText("没有更多")
                    adapter.notifyDataSetChanged()
                }
            },error = {_,_->
                swipeRefreshLayout.isRefreshing = false
            })
        else
            HttpManager.queryMyCoupons(page,1).request(this,success = {_,data->
                swipeRefreshLayout.isRefreshing = false
                data?.let {
                    if (page == 1)
                        datas.clear()
                    datas.addAll(it)
                    if (datas.isEmpty())
                        swipeRefreshLayout.setLoadMoreText("暂无可选优惠券")
                    else if (it.isEmpty())
                        swipeRefreshLayout.setLoadMoreText("没有更多")
                    adapter.notifyDataSetChanged()
                }
            },error = {_,_->
                swipeRefreshLayout.isRefreshing = false
            })
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK){
            setResult(Activity.RESULT_OK)
            finish()
        }
    }
}