From 2fece6551faab0402e7ed53658a60d2256e7a5be Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 12 六月 2025 14:58:56 +0800
Subject: [PATCH] feat(generallibrary): 新增挂失功能并优化相关界面- 新增 LossCardActivity 和 CardWriteSuccessActivity - 实现卡片挂失功能和写卡成功页面 - 优化充值界面布局- 调整卡片信息显示逻辑 - 修复部分 UI样式问题

---
 generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt |   84 ++++++++++++++++++++---------------------
 1 files changed, 41 insertions(+), 43 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt b/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt
index 28d6e50..79c9fbd 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt
@@ -9,6 +9,7 @@
 import com.dayu.baselibrary.net.subscribers.SubscriberListener
 import com.dayu.baselibrary.tools.nfc.NfcReadAdapter
 import com.dayu.baselibrary.utils.ToastUtil
+import com.dayu.baselibrary.view.ConfirmDialog
 import com.dayu.general.bean.net.CardInfoResult
 import com.dayu.general.databinding.FragmentRechargeBinding
 import com.dayu.general.net.ApiManager
@@ -18,7 +19,6 @@
 class RechargeFragment : Fragment() {
     var binding: FragmentRechargeBinding? = null
     private var cardNumber: String? = null
-    private var cardInfo: CardInfoResult? = null
 
     override fun onCreateView(
         inflater: LayoutInflater,
@@ -38,7 +38,6 @@
     private fun initView() {
         // 鍒濆鍖栫晫闈㈡樉绀鸿鍗$姸鎬�
         binding?.rechargeReadLL?.visibility = View.VISIBLE
-        binding?.rechargeTextLL?.visibility = View.GONE
     }
     
 
@@ -46,8 +45,6 @@
     private fun resetView() {
         // 閲嶇疆鐣岄潰鏄剧ず璇诲崱鐘舵��
         binding?.rechargeReadLL?.visibility = View.VISIBLE
-        binding?.rechargeTextLL?.visibility = View.GONE
-        cardInfo = null
     }
     
     /**
@@ -71,10 +68,7 @@
                     ToastUtil.show("璇诲崱澶辫触锛岃閲嶆柊鍒峰崱")
                     return
                 }
-                
-                // 鏄剧ず璇诲埌鐨勫崱鍙�
-                binding?.redInitCode?.text = cardNumber
-                
+
                 // 鏍规嵁鍗″彿鑾峰彇鍗$墖璇︾粏淇℃伅
                 getCardInfo(cardNumber!!)
             } catch (e: Exception) {
@@ -89,28 +83,29 @@
      */
     private fun getCardInfo(cardNumber: String) {
         activity?.let { activity ->
+            val map = mutableMapOf<String, Any>()
+            map["cardAddr"] = cardNumber
             ApiManager.getInstance().requestGetLoading(
                 activity,
-                "card/getCardInfo/$cardNumber",  // 鍋囪API璺緞
+                "terminal/card/readCard",  // 鍋囪API璺緞
                 CardInfoResult::class.java,
-                null,
+                map,
                 object : SubscriberListener<BaseResponse<CardInfoResult>>() {
                     override fun onNext(t: BaseResponse<CardInfoResult>) {
                         if (t.success) {
-                            // 淇濆瓨鍗$墖淇℃伅
-                            cardInfo = t.content
-                            // 鏄剧ず鍗$墖淇℃伅
-                            displayCardInfo(t.content)
+                            // 璺宠浆鍒板厖鍊艰鎯呴〉闈�
+                            RechargeDetailActivity.start(activity, t.content, cardNumber)
                         } else {
                             // 澶勭悊鑾峰彇澶辫触鐨勬儏鍐�
-                            ToastUtil.show(t.msg)
-                            binding?.redStatu?.text = "鍗$姸鎬佸紓甯�"
+                            handleCardInfoError(t.code, t.msg)
                         }
                     }
 
                     override fun onError(e: Throwable?) {
                         super.onError(e)
-                        ToastUtil.show("鑾峰彇鍗′俊鎭け璐�: ${e?.message ?: "鏈煡閿欒"}")
+                        ToastUtil.show("鑾峰彇鍗′俊鎭け璐�: ${e?.message ?: "缃戠粶寮傚父锛岃妫�鏌ョ綉缁滆繛鎺�"}")
+                        // 閲嶇疆鐣岄潰鐘舵��
+                        resetView()
                     }
                 }
             )
@@ -118,35 +113,38 @@
     }
     
     /**
-     * 鏄剧ず鍗$墖淇℃伅
+     * 澶勭悊鍗′俊鎭幏鍙栭敊璇�
      */
-    private fun displayCardInfo(cardInfo: CardInfoResult?) {
-        if (cardInfo == null) {
-            ToastUtil.show("鍗′俊鎭负绌�")
-            return
+    private fun handleCardInfoError(code: String?, msg: String?) {
+        val errorTitle: String
+        val errorMessage: String
+        
+        when (code) {
+            "1001" -> {
+                // 鏁版嵁涓嶅瓨鍦ㄧ殑鐗规畩澶勭悊
+                errorTitle = "鍗$墖鏈敞鍐�"
+                errorMessage = "璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛岃鍏堣繘琛屽紑鍗℃搷浣滃悗鍐嶅厖鍊笺��"
+            }
+            else -> {
+                // 鍏朵粬閿欒鐨勯�氱敤澶勭悊
+                errorTitle = "鑾峰彇鍗′俊鎭け璐�"
+                errorMessage = when {
+                    msg.isNullOrBlank() -> "鑾峰彇鍗′俊鎭け璐ワ紝璇烽噸鏂板埛鍗¢噸璇曘��"
+                    msg.contains("鏁版嵁涓嶅瓨鍦�") -> "璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛岃鍏堣繘琛屽紑鍗℃搷浣滃悗鍐嶅厖鍊笺��"
+                    msg.contains("缃戠粶") -> "缃戠粶杩炴帴寮傚父锛岃妫�鏌ョ綉缁滆繛鎺ュ悗閲嶆柊鍒峰崱銆�"
+                    msg.contains("瓒呮椂") -> "缃戠粶璇锋眰瓒呮椂锛岃閲嶆柊鍒峰崱閲嶈瘯銆�"
+                    else -> "鑾峰彇鍗′俊鎭け璐ワ細$msg\n\n璇烽噸鏂板埛鍗¢噸璇曘��"
+                }
+            }
         }
         
-        // 鍒囨崲鍒版樉绀轰俊鎭晫闈�
-        binding?.rechargeReadLL?.visibility = View.GONE
-        binding?.rechargeTextLL?.visibility = View.VISIBLE
-        
-        // 璁剧疆鍗$墖淇℃伅
-        binding?.userName?.text = cardInfo.userName ?: ""
-        binding?.redUserCode?.text = cardInfo.userCode ?: ""
-        binding?.redRemainderBlance?.text = "${cardInfo.balance ?: 0} 鍏�"
-        
-        // 璁剧疆鍗$姸鎬�
-        val cardStatus = when(cardInfo.status) {
-            1 -> "姝e父"
-            2 -> "鎸傚け"
-            3 -> "閿佸畾"
-            else -> "鏈煡"
+        // 鏄剧ず纭瀵硅瘽妗�
+        activity?.let { activity ->
+            val confirmDialog = ConfirmDialog(activity, errorTitle, errorMessage) {
+                // 鐐瑰嚮纭鎸夐挳鍚庡叧闂璇濇骞堕噸缃晫闈�
+                resetView()
+            }
+            confirmDialog.show()
         }
-        binding?.redStatu?.text = cardStatus
-        
-
     }
-    
-
-
 }
\ No newline at end of file

--
Gitblit v1.8.0