From d0a0e8e242e293ad35dfbee1217f1103302818cd Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期四, 03 四月 2025 10:22:48 +0800
Subject: [PATCH] refactor(generallibrary):重构卡片和用户搜索功能

---
 generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt |  127 ++++++++++++++++++++++++++++++------------
 1 files changed, 90 insertions(+), 37 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt
similarity index 70%
rename from generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt
rename to generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt
index 43874cd..58f452c 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt
@@ -6,12 +6,14 @@
 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
 
@@ -20,21 +22,21 @@
  * @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)
@@ -46,23 +48,23 @@
     }
 
     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) {
@@ -72,23 +74,31 @@
     }
 
     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 {
             // 璁剧疆鍒锋柊鍜屽姞杞芥洿澶氱洃鍚櫒
@@ -97,14 +107,14 @@
                     // 閲嶇疆椤电爜骞跺埛鏂版暟鎹�
                     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)
@@ -126,21 +136,26 @@
      * @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
@@ -155,7 +170,7 @@
                 override fun onNext(t: BaseResponse<SearchCardResult>) {
                     // 瀹屾垚鍒锋柊鎴栧姞杞藉姩浣�
                     finishRefreshOrLoad(isRefresh)
-                    
+
                     if (t.success) {
                         // 澶勭悊鎼滅储鎴愬姛鐨勬儏鍐�
                         val result = t.content
@@ -168,7 +183,7 @@
                                 } else {
                                     cardAdapter?.addData(result.obj)
                                 }
-                                
+
                                 // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁锛氭牴鎹綋鍓嶉〉鐮佸拰鎬婚〉鏁板垽鏂�
                                 hasMoreData = currentPage < result.pageTotal
                             } else {
@@ -201,7 +216,40 @@
             }
         )
     }
-    
+
+
+    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 鏄惁涓哄埛鏂版搷浣�
@@ -213,4 +261,9 @@
             binding?.refreshLayout?.finishLoadMore(true)
         }
     }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        searchDialog?.dismiss()
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0