左晓为主开发手持机充值管理机
zuoxiao
2025-04-11 040f1aba13b179ff318366680a6346af7fd97795
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
package com.dayu.general.activity
 
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.inputmethod.EditorInfo
import androidx.recyclerview.widget.LinearLayoutManager
import com.dayu.baselibrary.net.subscribers.SubscriberListener
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.general.adapter.CardReplaceAdapter
import com.dayu.general.bean.net.CardReplaceInfo
import com.dayu.general.bean.net.CardReplaceResponse
import com.dayu.general.databinding.ActivityCardReplaceBinding
import com.dayu.general.net.ApiManager
import com.dayu.general.net.BaseResponse
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
 
/**
 * 卡片补办Activity
 */
class CardReplaceActivity : BaseActivity() {
 
    private lateinit var binding: ActivityCardReplaceBinding
    private var currentCardInfo: CardReplaceInfo? = null
    private lateinit var adapter: CardReplaceAdapter
    
    // 分页参数
    private var pageCurr: Int = 1
    private val pageSize: Int = 20
    private var hasMoreData: Boolean = true
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityCardReplaceBinding.inflate(LayoutInflater.from(this))
        setContentView(binding.root)
        
        initView()
        initRecyclerView()
        setupRefreshLayout()
        loadCardReplaceList(true)
    }
    
    /**
     * 初始化视图
     */
    private fun initView() {
        // 初始化标题栏
        binding.titleBar.setOnItemclickListner(com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE) { 
            finish() 
        }
    }
    
    /**
     * 初始化RecyclerView
     */
    private fun initRecyclerView() {
        // 创建适配器
        adapter = CardReplaceAdapter(this)
        
        // 设置布局管理器和适配器
        binding.recyclerView.apply {
            layoutManager = LinearLayoutManager(this@CardReplaceActivity)
            adapter = this@CardReplaceActivity.adapter
        }
        
        // 设置卡片点击监听器 - 点击列表项时执行补办操作
        adapter.setOnItemClickListener { cardInfo ->
            currentCardInfo = cardInfo
            // 直接执行补办操作
            performCardReplace(cardInfo)
        }
    }
    
    /**
     * 设置刷新布局
     */
    private fun setupRefreshLayout() {
        binding.refreshLayout.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
            override fun onRefresh(refreshLayout: RefreshLayout) {
                // 下拉刷新,重置页码并重新加载数据
                pageCurr = 1
                hasMoreData = true
                loadCardReplaceList(true)
            }
            
            override fun onLoadMore(refreshLayout: RefreshLayout) {
                // 上拉加载更多
                if (hasMoreData) {
                    pageCurr++
                    loadCardReplaceList(false)
                } else {
                    // 没有更多数据时,结束加载更多
                    refreshLayout.finishLoadMoreWithNoMoreData()
                }
            }
        })
    }
 
    /**
     * 加载可补办卡片列表
     * 
     * @param isRefresh 是否为刷新操作(true: 刷新,false: 加载更多)
     */
    private fun loadCardReplaceList(isRefresh: Boolean = true) {
        // 构建查询参数
        val params = HashMap<String, Any>().apply {
            put("pageCurr", pageCurr)
            put("pageSize", pageSize)
        }
 
        // 调用API查询挂失卡片信息
        ApiManager.getInstance().requestGetLoading(
            this,
            "sell/clientcard/getUnreplaced",
            CardReplaceResponse::class.java,
            params,
            object : SubscriberListener<BaseResponse<CardReplaceResponse>>() {
                override fun onNext(response: BaseResponse<CardReplaceResponse>) {
                    // 结束刷新或加载更多状态
                    finishRefreshOrLoadMore(isRefresh)
                    
                    if (response.success) {
                        val cardResponse = response.content
                        val cardList = cardResponse?.obj ?: emptyList()
                        
                        // 更新数据列表
                        if (isRefresh) {
                            adapter.setData(cardList)
                        } else {
                            adapter.addData(cardList)
                        }
                        
                        // 判断是否还有更多数据
                        hasMoreData = cardList.size >= pageSize
                        if (!hasMoreData && !isRefresh) {
                            binding.refreshLayout.finishLoadMoreWithNoMoreData()
                        }
                    } else {
                        ToastUtil.show(response.msg)
                    }
                }
                
                override fun onError(e: Throwable?) {
                    // 结束刷新或加载更多状态
                    finishRefreshOrLoadMore(isRefresh)
                    ToastUtil.show("查询失败: ${e?.message ?: "未知错误"}")
                }
            }
        )
    }
    
    /**
     * 结束刷新或加载更多状态
     */
    private fun finishRefreshOrLoadMore(isRefresh: Boolean) {
        if (isRefresh) {
            binding.refreshLayout.finishRefresh()
        } else {
            binding.refreshLayout.finishLoadMore()
        }
    }
    
    /**
     * 执行卡片补办操作
     */
    private fun performCardReplace(cardInfo: CardReplaceInfo) {
        // 这里实现卡片补办的业务逻辑
        ToastUtil.show("选择了卡片进行补办:${cardInfo.cardNum}")
        
        // TODO: 调用补办卡片API
    }