File was renamed from generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt |
| | |
| | | import com.dayu.baselibrary.utils.ToastUtil |
| | | import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE |
| | | import com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_IMAGE |
| | | import com.dayu.general.BaseApplication |
| | | import com.dayu.general.adapter.CardListAdapter |
| | | import com.dayu.general.bean.net.SearchCardResult |
| | | import com.dayu.general.databinding.ActivityCardListBinding |
| | | import com.dayu.general.view.CardSearchDialog |
| | | import com.dayu.general.net.ApiManager |
| | | import com.dayu.general.net.BaseResponse |
| | | import com.dayu.general.view.CardRefundDialog |
| | | import com.dayu.general.view.SearchDialog |
| | | import com.scwang.smart.refresh.layout.api.RefreshLayout |
| | | import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener |
| | | |
| | |
| | | * @date: 2023/3/31 |
| | | * @description: 卡片列表界面 |
| | | */ |
| | | class CardListActivity : BaseActivity() { |
| | | class SearchCardListActivity : BaseActivity() { |
| | | |
| | | var binding: ActivityCardListBinding? = null |
| | | private var cardAdapter: CardListAdapter? = null |
| | | var searchDialog: CardSearchDialog? = null |
| | | |
| | | var searchDialog: SearchDialog? = null |
| | | |
| | | // 分页相关变量 |
| | | private var currentPage = 1 |
| | | private val pageSize = 20 |
| | | private var hasMoreData = true |
| | | |
| | | |
| | | // 保存当前搜索条件 |
| | | private var currentFarmerId = "" |
| | | private var currentFarmerName = "" |
| | | private var currentCardNumber = "" |
| | | private var currentClientNumber = "" |
| | | private var currentClientName = "" |
| | | |
| | | override fun onCreate(savedInstanceState: Bundle?) { |
| | | super.onCreate(savedInstanceState) |
| | |
| | | } |
| | | |
| | | fun initView() { |
| | | searchDialog = CardSearchDialog(this) |
| | | searchDialog = SearchDialog(this) |
| | | searchDialog?.show() |
| | | binding?.titleBar?.setOnItemclickListner(ClickType_LEFT_IMAGE) { this.finish() } |
| | | // 设置搜索监听器 |
| | | searchDialog?.setOnSearchListener(object : CardSearchDialog.OnSearchListener { |
| | | override fun onSearch(cardNumber: String, clientNumber: String, clientName: String) { |
| | | searchDialog?.setOnSearchListener(object : SearchDialog.OnSearchListener { |
| | | override fun onSearch(farmerId: String, farmerName: String, cardNumber: String) { |
| | | // 保存当前搜索条件 |
| | | currentCardNumber = cardNumber |
| | | currentClientNumber = clientNumber |
| | | currentClientName = clientName |
| | | |
| | | currentFarmerId = farmerId |
| | | currentFarmerName = farmerName |
| | | |
| | | // 重置分页状态 |
| | | currentPage = 1 |
| | | hasMoreData = true |
| | | |
| | | |
| | | // 执行搜索 |
| | | searchCards(cardNumber, clientNumber, clientName, true) |
| | | searchCards(currentFarmerId, currentFarmerName, currentCardNumber, true) |
| | | } |
| | | }) |
| | | binding?.titleBar?.setOnItemclickListner(ClickType_RIGHT_IMAGE) { |
| | |
| | | } |
| | | |
| | | private fun setupRecyclerView() { |
| | | cardAdapter = CardListAdapter() |
| | | cardAdapter = CardListAdapter(this) |
| | | binding?.recyclerView?.apply { |
| | | layoutManager = LinearLayoutManager(this@CardListActivity) |
| | | layoutManager = LinearLayoutManager(this@SearchCardListActivity) |
| | | adapter = cardAdapter |
| | | } |
| | | |
| | | |
| | | // 设置列表项点击事件 |
| | | cardAdapter?.setOnItemClickListener { card -> |
| | | // 处理卡片点击事件 |
| | | ToastUtil.show("已选择卡片:${card.cardNum}") |
| | | // 这里可以添加跳转到卡片详情页面的逻辑 |
| | | // val intent = Intent(this, CardDetailActivity::class.java) |
| | | // intent.putExtra("cardNum", card.cardNum) |
| | | // startActivity(intent) |
| | | // 显示退款对话框 |
| | | val refundDialog = CardRefundDialog(this) |
| | | refundDialog.show() // 先显示对话框 |
| | | refundDialog.setUserInfo( |
| | | card.clientName.toString(), |
| | | card.cardNum.toString(), |
| | | card.money.toString() |
| | | ) |
| | | refundDialog.setOnConfirmListener { refundAmount, remark -> |
| | | // TODO: 处理退款逻辑 |
| | | lossPost(card.idCard.toString()) |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | private fun setupRefreshLayout() { |
| | | binding?.refreshLayout?.apply { |
| | | // 设置刷新和加载更多监听器 |
| | |
| | | // 重置页码并刷新数据 |
| | | currentPage = 1 |
| | | hasMoreData = true |
| | | searchCards(currentCardNumber, currentClientNumber, currentClientName, true) |
| | | searchCards(currentFarmerId, currentFarmerName, currentCardNumber, true) |
| | | } |
| | | |
| | | |
| | | override fun onLoadMore(refreshLayout: RefreshLayout) { |
| | | // 如果还有更多数据,加载下一页 |
| | | if (hasMoreData) { |
| | | currentPage++ |
| | | searchCards(currentCardNumber, currentClientNumber, currentClientName, false) |
| | | searchCards(currentFarmerId, currentFarmerName, currentCardNumber, false) |
| | | } else { |
| | | // 完成加载并提示没有更多数据 |
| | | refreshLayout.finishLoadMore(500, true, false) |
| | |
| | | * @param clientName 客户姓名 |
| | | * @param isRefresh 是否为刷新操作 |
| | | */ |
| | | private fun searchCards(cardNumber: String, clientNumber: String, clientName: String, isRefresh: Boolean = true) { |
| | | private fun searchCards( |
| | | farmerId: String, |
| | | farmerName: String, |
| | | cardNumber: String, |
| | | isRefresh: Boolean = true |
| | | ) { |
| | | val map = mutableMapOf<String, Any>() |
| | | |
| | | if (cardNumber.isNotEmpty()) { |
| | | map["cardNum"] = cardNumber |
| | | } |
| | | |
| | | if (clientNumber.isNotEmpty()) { |
| | | map["clientNum"] = clientNumber |
| | | if (farmerId.isNotEmpty()) { |
| | | map["clientNum"] = farmerId |
| | | } |
| | | |
| | | if (clientName.isNotEmpty()) { |
| | | map["clientName"] = clientName |
| | | if (farmerName.isNotEmpty()) { |
| | | map["clientName"] = farmerName |
| | | } |
| | | |
| | | |
| | | // 添加分页参数 |
| | | map["pageCurr"] = currentPage |
| | | map["pageSize"] = pageSize |
| | |
| | | override fun onNext(t: BaseResponse<SearchCardResult>) { |
| | | // 完成刷新或加载动作 |
| | | finishRefreshOrLoad(isRefresh) |
| | | |
| | | |
| | | if (t.success) { |
| | | // 处理搜索成功的情况 |
| | | val result = t.content |
| | |
| | | } else { |
| | | cardAdapter?.addData(result.obj) |
| | | } |
| | | |
| | | |
| | | // 判断是否还有更多数据:根据当前页码和总页数判断 |
| | | hasMoreData = currentPage < result.pageTotal |
| | | } else { |
| | |
| | | } |
| | | ) |
| | | } |
| | | |
| | | |
| | | |
| | | private fun lossPost(cardNumber: String) { |
| | | val map = mutableMapOf<String, Any>() |
| | | |
| | | map["cardNum"] = cardNumber |
| | | map["operator"] = BaseApplication.userId |
| | | ApiManager.getInstance().requestGetLoading( |
| | | this, |
| | | "/sell/card/loss", |
| | | SearchCardResult::class.java, |
| | | map, |
| | | object : SubscriberListener<BaseResponse<SearchCardResult>>() { |
| | | override fun onNext(t: BaseResponse<SearchCardResult>) { |
| | | |
| | | |
| | | if (t.success) { |
| | | |
| | | } else { |
| | | // 处理搜索失败的情况 |
| | | ToastUtil.show(t.msg) |
| | | } |
| | | } |
| | | |
| | | override fun onError(e: Throwable?) { |
| | | super.onError(e) |
| | | // 完成刷新或加载动作 |
| | | ToastUtil.show("搜索失败: ${e?.message ?: "未知错误"}") |
| | | } |
| | | } |
| | | ) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 完成刷新或加载操作 |
| | | * @param isRefresh 是否为刷新操作 |
| | |
| | | binding?.refreshLayout?.finishLoadMore(true) |
| | | } |
| | | } |
| | | |
| | | override fun onDestroy() { |
| | | super.onDestroy() |
| | | searchDialog?.dismiss() |
| | | } |
| | | } |