From 32d1501e6fe6338eb6dc51c26df7fe0808caac0d Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期四, 26 六月 2025 15:05:28 +0800
Subject: [PATCH] feat(general): 优化写卡成功界面并添加开卡功能- 重新设计写卡成功界面布局,增加滚动视图以支持长文本显示 - 添加开卡功能相关的UI和逻辑,包括工本费和充值金额的展示- 增加用户姓名和卡片信息的显示 - 优化打印凭证的内容和格式 -调整NFC连接逻辑,提高连接成功率

---
 generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt |   97 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 67 insertions(+), 30 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
index 94a11b3..fbe415c 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
@@ -13,6 +13,7 @@
 import com.dayu.general.bean.card.ClearCard
 import com.dayu.general.bean.card.DebugCard
 import com.dayu.general.bean.card.UserCard
+import com.dayu.general.bean.net.CardInfoResult
 import com.dayu.general.dao.BaseDaoSingleton
 import com.dayu.general.databinding.ActivityNfcWriteGeBinding
 import com.dayu.general.net.ApiManager
@@ -98,6 +99,8 @@
     /** 椤圭洰鍙凤紙1-255锛� */
     private var projectNumber: String = ""
 
+    private var cardInfo: CardInfoResult? = null
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityNfcWriteGeBinding.inflate(layoutInflater)
@@ -116,6 +119,7 @@
         operationTypeCode = intent?.getIntExtra("operationTypeCode", -1) ?: -1
         orderNumber = intent?.getStringExtra("orderNumber") ?: ""
         operationType = CardOperationType.fromCode(operationTypeCode)
+        cardInfo = intent?.getSerializableExtra("cardInfo") as? CardInfoResult
 
         // 鑾峰彇鍏呭�肩浉鍏抽噾棰�
         rechargeAmount = intent?.getDoubleExtra("rechargeAmount", 0.0) ?: 0.0
@@ -501,14 +505,14 @@
                         object : NFCCallBack {
                             override fun isSusses(flag: Boolean, msg: String?) {
                                 // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢�
-                                                            runOnUiThread {
-                                if (flag) {
-                                    // 妫�鏌ュ崱鍐欏崱鎴愬姛锛屾洿鏂板啓鍗$姸鎬�
-                                    updateCardWrittenStatus(cardAddr)
-                                } else {
-                                    ToastUtil.show("妫�鏌ュ崱鍐欏崱澶辫触: ${msg ?: "鏈煡閿欒"}")
+                                runOnUiThread {
+                                    if (flag) {
+                                        // 妫�鏌ュ崱鍐欏崱鎴愬姛锛屾洿鏂板啓鍗$姸鎬�
+                                        updateCardWrittenStatus(cardAddr)
+                                    } else {
+                                        ToastUtil.show("妫�鏌ュ崱鍐欏崱澶辫触: ${msg ?: "鏈煡閿欒"}")
+                                    }
                                 }
-                            }
                             }
                         })
                 }
@@ -525,14 +529,14 @@
                         object : NFCCallBack {
                             override fun isSusses(flag: Boolean, msg: String?) {
                                 // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢�
-                                                            runOnUiThread {
-                                if (flag) {
-                                    // 鍖哄煙琛ㄥ彿鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵��
-                                    updateCardWrittenStatus(cardAddr)
-                                } else {
-                                    ToastUtil.show("鍖哄煙琛ㄥ彿鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}")
+                                runOnUiThread {
+                                    if (flag) {
+                                        // 鍖哄煙琛ㄥ彿鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵��
+                                        updateCardWrittenStatus(cardAddr)
+                                    } else {
+                                        ToastUtil.show("鍖哄煙琛ㄥ彿鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}")
+                                    }
                                 }
-                            }
                             }
                         })
                 }
@@ -548,14 +552,14 @@
                         object : NFCCallBack {
                             override fun isSusses(flag: Boolean, msg: String?) {
                                 // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢�
-                                                            runOnUiThread {
-                                if (flag) {
-                                    // 璋冭瘯鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵��
-                                    updateCardWrittenStatus(cardAddr)
-                                } else {
-                                    ToastUtil.show("璋冭瘯鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}")
+                                runOnUiThread {
+                                    if (flag) {
+                                        // 璋冭瘯鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵��
+                                        updateCardWrittenStatus(cardAddr)
+                                    } else {
+                                        ToastUtil.show("璋冭瘯鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}")
+                                    }
                                 }
-                            }
                             }
                         })
                 }
@@ -605,17 +609,17 @@
         lifecycleScope.launch {
             try {
                 val baseDaoSingleton = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
-                
+
                 // 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄鐞嗗崱杩樻槸鐢ㄦ埛鍗℃搷浣�
                 val isManagerCardOperation = operationTypeCode in 100..108
-                
+
                 var updateSuccess = false
-                
+
                 if (isManagerCardOperation) {
                     // 绠$悊鍗″埗浣滄搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癕anagerCardBean
                     val managerCardDao = baseDaoSingleton.managerCardDao()
                     val managerCard = managerCardDao.getByOrderId(orderNumber)
-                    
+
                     if (managerCard != null) {
                         val updatedManagerCard = managerCard.copy(isCardWritten = true)
                         managerCardDao.update(updatedManagerCard)
@@ -625,7 +629,7 @@
                     // 鐢ㄦ埛鍗℃搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癈ardRegistrationBean
                     val cardRegistrationDao = baseDaoSingleton.cardRegistrationDao()
                     val cardRegistration = cardRegistrationDao.getByOrderId(orderNumber)
-                    
+
                     if (cardRegistration != null) {
                         val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
                         cardRegistrationDao.update(updatedCardRegistration)
@@ -637,21 +641,54 @@
                 runOnUiThread {
                     setResult(RESULT_OK)
                     finish()
-                    
+
                     // 璺宠浆鍒板啓鍗℃垚鍔熺晫闈�
                     Intent(this@NfcWreatActivity, CardWriteSuccessActivity::class.java).apply {
+
+
                         putExtra("cardNumber", cardNumber)
+                        putExtra("cardAddr", cardAddr)
+                        putExtra("operationTypeCode", operationTypeCode)
+                        putExtra("orderNumber", orderNumber)
+                        //寮�鍗$浉鍏冲弬鏁�
+                        putExtra("cardFee", cardFee)
+
+                        // 浼犻�掑厖鍊肩浉鍏冲弬鏁�
+                        putExtra("rechargeAmount", rechargeAmount)
+                        putExtra("bonusAmount", bonusAmount)
+
+                        // 浼犻�掗攢鍗$浉鍏冲弬鏁�
+                        putExtra("refundAmount", refundAmount)
+                        putExtra("cardBalance", cardBalance)
+
+                        // 浼犻�掕繑杩樼浉鍏冲弬鏁�
+                        putExtra("returnAmount", returnAmount)
+
+                        // 浼犻�掕ˉ鎵g浉鍏冲弬鏁�
+                        putExtra("deductAmount", deductAmount)
+
+                        // 浼犻�掕ˉ鍗$浉鍏冲弬鏁�
+                        putExtra("cardCost", cardCost)
+                        putExtra("reissueAmount", reissueAmount)
+
+                        // 浼犻�掔敤鎴峰崱瀵硅薄
                         if (::userCard.isInitialized) {
                             putExtra("userCard", userCard)
                         }
-                        putExtra("operationTypeCode", operationTypeCode)
+
+                        // 浼犻�掑崱鐗囦俊鎭璞�
+                        cardInfo?.let {
+                            putExtra("cardInfo", it)
+                        }
+
+
                         startActivity(this)
                     }
-                    
+
                     // 閫氱煡MainActivity璋冪敤postCardData
                     notifyMainActivityToPostCardData(cardNumber)
                 }
-                
+
             } catch (e: Exception) {
                 // 璁板綍寮傚父淇℃伅
                 CrashReport.postCatchedException(e)

--
Gitblit v1.8.0