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
|
}
|
}
|