From 465c8abaa982fba6868a900d25316c70afc20fb7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 18 六月 2025 13:59:46 +0800
Subject: [PATCH] feat(card): 优化销卡功能并添加写卡操作

---
 generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt |   89 ++++++++++++++++++++++++++++++++------------
 1 files changed, 65 insertions(+), 24 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt
index 5e11d51..a4282a2 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt
@@ -1,5 +1,6 @@
 package com.dayu.general.activity
 
+import android.content.Intent
 import android.os.Bundle
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.dayu.baselibrary.net.subscribers.SubscriberListener
@@ -25,12 +26,12 @@
     var binding: ActivitySearchUserGeBinding? = null
     private var userAdapter: SearchUserListAdapter? = null
     var searchDialog: SearchDialog? = null
-    
+
     // 鍒嗛〉鐩稿叧鍙橀噺
     private var currentPage = 1
     private val pageSize = 20
     private var hasMoreData = true
-    
+
     // 淇濆瓨褰撳墠鎼滅储鏉′欢
     private var currentFarmerId = ""
     private var currentFarmerName = ""
@@ -43,6 +44,9 @@
         initView()
         setupRecyclerView()
         setupRefreshLayout()
+        
+        // 纭繚Footer鍒濆鐘舵�佹纭�
+        binding?.refreshLayout?.setEnableLoadMore(true)
     }
 
 
@@ -57,11 +61,14 @@
                 currentFarmerId = farmerId
                 currentFarmerName = farmerName
                 currentCardNumber = cardNumber
-                
+
                 // 閲嶇疆鍒嗛〉鐘舵��
                 currentPage = 1
                 hasMoreData = true
                 
+                // 閲嶇疆鏃犳洿澶氭暟鎹姸鎬�
+                binding?.refreshLayout?.resetNoMoreData()
+
                 // 鎵ц鎼滅储
                 searchUser(farmerId, farmerName, cardNumber, true)
             }
@@ -79,40 +86,47 @@
             layoutManager = LinearLayoutManager(this@SearchUserListActivity)
             adapter = userAdapter
         }
-        
+
         // 璁剧疆鍒楄〃椤圭偣鍑讳簨浠�
         userAdapter?.setOnItemClickListener { user ->
             // 澶勭悊鐢ㄦ埛鐐瑰嚮浜嬩欢
-            ToastUtil.show("宸查�夋嫨鐢ㄦ埛锛�${user.name}")
-            // 杩欓噷鍙互娣诲姞璺宠浆鍒扮敤鎴疯鎯呴〉闈㈢殑閫昏緫
-            // val intent = Intent(this, UserDetailActivity::class.java)
-            // intent.putExtra("userId", user.id)
-            // startActivity(intent)
+            // 浼犻�掔敤鎴蜂俊鎭埌寮�鍗$晫闈�
+            val intent = Intent(this, NewCard2Activity::class.java)
+            intent.putExtra("clientId", user.clientId)
+            startActivity(intent)
         }
 
 
     }
-    
+
     private fun setupRefreshLayout() {
         binding?.refreshLayout?.apply {
+            // 璁剧疆Footer璺熼殢鍔熻兘锛岀‘淇濇棤鏇村鏁版嵁鏃禙ooter鑳芥纭樉绀�
+            setEnableFooterFollowWhenNoMoreData(true)
+            // 璁剧疆鍔犺浇鏇村瀹屾垚鍚庢粴鍔ㄥ唴瀹规樉绀烘柊鏁版嵁
+            setEnableScrollContentWhenLoaded(true)
+            // 绂佺敤绾粴鍔ㄦā寮忥紝纭繚Footer鑳芥甯稿伐浣�
+            setEnableOverScrollDrag(false)
+            
             // 璁剧疆鍒锋柊鍜屽姞杞芥洿澶氱洃鍚櫒
             setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
                 override fun onRefresh(refreshLayout: RefreshLayout) {
                     // 閲嶇疆椤电爜骞跺埛鏂版暟鎹�
                     currentPage = 1
                     hasMoreData = true
+                    // 閲嶇疆鏃犳洿澶氭暟鎹姸鎬�
+                    refreshLayout.resetNoMoreData()
                     searchUser(currentFarmerId, currentFarmerName, currentCardNumber, true)
                 }
-                
+
                 override fun onLoadMore(refreshLayout: RefreshLayout) {
                     // 濡傛灉杩樻湁鏇村鏁版嵁锛屽姞杞戒笅涓�椤�
                     if (hasMoreData) {
                         currentPage++
                         searchUser(currentFarmerId, currentFarmerName, currentCardNumber, false)
                     } else {
-                        // 瀹屾垚鍔犺浇骞舵彁绀烘病鏈夋洿澶氭暟鎹�
-                        refreshLayout.finishLoadMore(500, true, false)
-                        ToastUtil.show("娌℃湁鏇村鏁版嵁浜�")
+                        // 瀹屾垚鍔犺浇骞舵樉绀哄凡鍒板簳鐘舵��
+                        refreshLayout.finishLoadMoreWithNoMoreData()
                     }
                 }
             })
@@ -130,7 +144,12 @@
      * @param cardNumber 閾惰鍗″彿
      * @param isRefresh 鏄惁涓哄埛鏂版搷浣�
      */
-    private fun searchUser(farmerId: String, farmerName: String, cardNumber: String, isRefresh: Boolean = true) {
+    private fun searchUser(
+        farmerId: String,
+        farmerName: String,
+        cardNumber: String,
+        isRefresh: Boolean = true
+    ) {
         val map = mutableMapOf<String, Any>()
 
         if (farmerId.isNotEmpty()) {
@@ -144,7 +163,7 @@
         if (cardNumber.isNotEmpty()) {
             map["cardNum"] = cardNumber
         }
-        
+
         // 娣诲姞鍒嗛〉鍙傛暟
         map["pageCurr"] = currentPage
         map["pageSize"] = pageSize
@@ -152,14 +171,11 @@
         // 浣跨敤姝g‘鐨勭被鍨嬪弬鏁�
         ApiManager.getInstance().requestGetLoading(
             this,
-            "sell/client/get",
+            "terminal/client/getTermClients",
             SearchUserResult::class.java,
             map,
             object : SubscriberListener<BaseResponse<SearchUserResult>>() {
                 override fun onNext(t: BaseResponse<SearchUserResult>) {
-                    // 瀹屾垚鍒锋柊鎴栧姞杞藉姩浣�
-                    finishRefreshOrLoad(isRefresh)
-                    
                     if (t.success) {
                         // 澶勭悊鎼滅储鎴愬姛鐨勬儏鍐�
                         val result = t.content
@@ -172,26 +188,45 @@
                                 } else {
                                     userAdapter?.addData(result.obj)
                                 }
-                                
+
                                 // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁锛氭牴鎹綋鍓嶉〉鐮佸拰鎬婚〉鏁板垽鏂�
                                 hasMoreData = currentPage < result.pageTotal
+                                
+                                // 瀹屾垚鍒锋柊鎴栧姞杞藉姩浣�
+                                if (isRefresh) {
+                                    binding?.refreshLayout?.finishRefresh(true)
+                                } else {
+                                    // 濡傛灉娌℃湁鏇村鏁版嵁浜嗭紝璁剧疆宸插埌搴曠姸鎬�
+                                    if (!hasMoreData) {
+                                        binding?.refreshLayout?.finishLoadMoreWithNoMoreData()
+                                    } else {
+                                        binding?.refreshLayout?.finishLoadMore(true)
+                                    }
+                                }
                             } else {
                                 if (isRefresh) {
                                     userAdapter?.setData(emptyList())
+                                    binding?.refreshLayout?.finishRefresh(true)
                                     ToastUtil.show("鏈壘鍒板尮閰嶇殑鐢ㄦ埛")
                                 } else {
                                     hasMoreData = false
-                                    ToastUtil.show("娌℃湁鏇村鏁版嵁浜�")
+                                    // 浣跨敤finishLoadMoreWithNoMoreData鏄剧ず宸插埌搴曠姸鎬�
+                                    binding?.refreshLayout?.finishLoadMoreWithNoMoreData()
                                 }
                             }
                         } else {
                             if (isRefresh) {
                                 userAdapter?.setData(emptyList())
+                                binding?.refreshLayout?.finishRefresh(true)
                                 ToastUtil.show("鏈壘鍒板尮閰嶇殑鐢ㄦ埛")
+                            } else {
+                                hasMoreData = false
+                                binding?.refreshLayout?.finishLoadMoreWithNoMoreData()
                             }
                         }
                     } else {
                         // 澶勭悊鎼滅储澶辫触鐨勬儏鍐�
+                        finishRefreshOrLoad(isRefresh)
                         ToastUtil.show(t.msg)
                     }
                 }
@@ -205,7 +240,7 @@
             }
         )
     }
-    
+
     /**
      * 瀹屾垚鍒锋柊鎴栧姞杞芥搷浣�
      * @param isRefresh 鏄惁涓哄埛鏂版搷浣�
@@ -214,7 +249,13 @@
         if (isRefresh) {
             binding?.refreshLayout?.finishRefresh(true)
         } else {
-            binding?.refreshLayout?.finishLoadMore(true)
+            // 濡傛灉娌℃湁鏇村鏁版嵁锛屼笉鍦ㄨ繖閲岃皟鐢╢inishLoadMore锛岀敱鍏蜂綋閫昏緫璋冪敤finishLoadMoreWithNoMoreData
+            // 濡傛灉鏈夋洿澶氭暟鎹紝鍒欐甯歌皟鐢╢inishLoadMore
+            if (hasMoreData) {
+                binding?.refreshLayout?.finishLoadMore(true)
+            }
+            // 娉ㄦ剰锛氬綋hasMoreData涓篺alse鏃讹紝涓嶈皟鐢ㄤ换浣昮inish鏂规硶锛�
+            // 鍥犱负宸茬粡鍦ㄥ叿浣撻�昏緫涓皟鐢ㄤ簡finishLoadMoreWithNoMoreData()
         }
     }
 

--
Gitblit v1.8.0