From bd4891e2fd6b773cbb0ec387f6db4bc944fdf51a Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 31 三月 2025 18:07:51 +0800
Subject: [PATCH] feat(generallibrary): 添加卡片列表功能并优化登录逻辑

---
 generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt |   69 ++++++++++++++++++++++++++++++++--
 1 files changed, 64 insertions(+), 5 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
index debb5f1..d63f6ac 100644
--- a/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
+++ b/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
@@ -1,6 +1,7 @@
 package com.dayu.general.adapter
 
 import android.view.LayoutInflater
+import android.view.View
 import android.view.ViewGroup
 import androidx.recyclerview.widget.RecyclerView
 import com.dayu.general.bean.net.SearchUserResult
@@ -14,11 +15,22 @@
 class SearchListAdapter :  RecyclerView.Adapter<SearchListAdapter.UserViewHolder>(){
 
     private val userList = mutableListOf<SearchUserResult.UserInfo>()
+    private var onItemClickListener: ((SearchUserResult.UserInfo) -> Unit)? = null
 
     fun setData(users: List<SearchUserResult.UserInfo>) {
         userList.clear()
         userList.addAll(users)
         notifyDataSetChanged()
+    }
+    
+    fun addData(users: List<SearchUserResult.UserInfo>) {
+        val startPosition = userList.size
+        userList.addAll(users)
+        notifyItemRangeInserted(startPosition, users.size)
+    }
+    
+    fun setOnItemClickListener(listener: (SearchUserResult.UserInfo) -> Unit) {
+        this.onItemClickListener = listener
     }
 
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
@@ -35,14 +47,61 @@
 
     inner class UserViewHolder(private val binding: ItemUserListBinding) : RecyclerView.ViewHolder(binding.root) {
         fun bind(user: SearchUserResult.UserInfo) {
+            // 璁剧疆鏁版嵁鏄剧ず锛屾坊鍔犲垽绌哄鐞�
             binding.tvCardCount.text = "鍗℃暟閲忥細${user.cardCount ?: "0"}"
-            binding.tvFarmerId.text = "瀹㈡埛缂栧彿锛�${user.clientNum ?: ""}"
-            binding.tvIdCard.text = "韬唤璇侊細${user.idCard ?: ""}"
-            binding.tvName.text = "濮撳悕锛�${user.name ?: ""}"
-            binding.tvPhone.text = "鐢佃瘽锛�${user.phone ?: ""}"
+            binding.tvFarmerId.text = "瀹㈡埛缂栧彿锛�${user.clientNum ?: "鏃�"}"
+            binding.tvIdCard.text = "韬唤璇侊細${formatIdCard(user.idCard)}"
+            binding.tvName.text = "濮撳悕锛�${user.name ?: "鏈煡"}"
+            binding.tvPhone.text = "鐢佃瘽锛�${formatPhone(user.phone)}"
+            
+            // 娣诲姞鍦板潃淇℃伅鏄剧ず
+            user.address?.let { address ->
+                if (address.isNotEmpty()) {
+                    binding.tvAddress.text = "鍦板潃锛�$address"
+                    binding.tvAddress.visibility = View.VISIBLE
+                } else {
+                    binding.tvAddress.visibility = View.GONE
+                }
+            } ?: run {
+                binding.tvAddress.visibility = View.GONE
+            }
+            
+            // 鏄剧ず鎿嶄綔鏃ユ湡
+            user.operateDt?.let { date ->
+                if (date.isNotEmpty()) {
+                    binding.tvOperateDate.text = "鎿嶄綔鏃ユ湡锛�$date"
+                    binding.tvOperateDate.visibility = View.VISIBLE
+                } else {
+                    binding.tvOperateDate.visibility = View.GONE
+                }
+            } ?: run {
+                binding.tvOperateDate.visibility = View.GONE
+            }
 
             binding.root.setOnClickListener {
-                // 鍙互鍦ㄦ澶勬坊鍔犵偣鍑讳簨浠讹紝渚嬪鏌ョ湅鐢ㄦ埛璇︽儏
+                onItemClickListener?.invoke(user)
+            }
+        }
+        
+        // 鏍煎紡鍖栬韩浠借瘉鍙凤紝淇濇姢闅愮
+        private fun formatIdCard(idCard: String?): String {
+            return if (!idCard.isNullOrEmpty() && idCard.length >= 18) {
+                val start = idCard.substring(0, 6)
+                val end = idCard.substring(idCard.length - 4)
+                "$start****$end"
+            } else {
+                idCard ?: "鏃�"
+            }
+        }
+        
+        // 鏍煎紡鍖栨墜鏈哄彿锛屼繚鎶ら殣绉�
+        private fun formatPhone(phone: String?): String {
+            return if (!phone.isNullOrEmpty() && phone.length >= 11) {
+                val start = phone.substring(0, 3)
+                val end = phone.substring(phone.length - 4)
+                "$start****$end"
+            } else {
+                phone ?: "鏃�"
             }
         }
     }

--
Gitblit v1.8.0