From 87e5604ad04c0b7aaacf3d52bae85e62d308cb6d Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期四, 26 六月 2025 16:41:02 +0800
Subject: [PATCH] refactor(generallibrary):重构开卡成功界面并移除未使用的开卡界面

---
 generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt |  170 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 117 insertions(+), 53 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 8539f83..ab3ae13 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,8 @@
 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.bean.net.ClientInfo
 import com.dayu.general.dao.BaseDaoSingleton
 import com.dayu.general.databinding.ActivityNfcWriteGeBinding
 import com.dayu.general.net.ApiManager
@@ -98,6 +100,10 @@
     /** 椤圭洰鍙凤紙1-255锛� */
     private var projectNumber: String = ""
 
+    private var cardInfo: CardInfoResult? = null
+    
+    private var clientInfo: ClientInfo? = null
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityNfcWriteGeBinding.inflate(layoutInflater)
@@ -116,6 +122,8 @@
         operationTypeCode = intent?.getIntExtra("operationTypeCode", -1) ?: -1
         orderNumber = intent?.getStringExtra("orderNumber") ?: ""
         operationType = CardOperationType.fromCode(operationTypeCode)
+        cardInfo = intent?.getSerializableExtra("cardInfo") as? CardInfoResult
+        clientInfo = intent?.getSerializableExtra("clientInfo") as? ClientInfo
 
         // 鑾峰彇鍏呭�肩浉鍏抽噾棰�
         rechargeAmount = intent?.getDoubleExtra("rechargeAmount", 0.0) ?: 0.0
@@ -254,8 +262,9 @@
                 // 杩旇繕鎿嶄綔鏄剧ず淇℃伅
                 var textData = StringBuilder()
                 textData.append("杩旇繕\n")
-                textData.append("鍗″唴浣欓锛�" + MornyUtil.changeF2Y(userCard.balance) + "鍏僜n")
-                textData.append("杩旇繕閲戦锛�" + returnAmount + "鍏�")
+                textData.append("杩旇繕閲戦锛�" + returnAmount + "鍏僜n")
+                textData.append("杩旇繕鍚庡崱鍐呬綑棰濓細" + MornyUtil.changeF2Y(userCard.balance) + "鍏僜n")
+
                 binding?.cardData?.text = textData.toString()
             }
 
@@ -263,8 +272,9 @@
                 // 琛ユ墸鎿嶄綔鏄剧ず淇℃伅
                 var textData = StringBuilder()
                 textData.append("琛ユ墸\n")
-                textData.append("鍗″唴浣欓锛�" + MornyUtil.changeF2Y(userCard.balance) + "鍏僜n")
-                textData.append("琛ユ墸閲戦锛�" + deductAmount + "鍏�")
+                textData.append("琛ユ墸閲戦锛�" + deductAmount + "鍏僜n")
+                textData.append("琛ユ墸鍚庡崱鍐呬綑棰濓細" + MornyUtil.changeF2Y(userCard.balance) + "鍏僜n")
+
                 binding?.cardData?.text = textData.toString()
             }
 
@@ -499,14 +509,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 ?: "鏈煡閿欒"}")
+                                    }
                                 }
-                            }
                             }
                         })
                 }
@@ -514,7 +524,7 @@
                 CardOperationType.RegionCardMake -> {
                     // 鍖哄煙琛ㄥ彿鍗″啓鍗¢�昏緫锛堝姛鑳藉崱锛屾棤闇�鍐欏叆鐢ㄦ埛鏁版嵁锛�
                     var areaCard = AreaCard()
-                    areaCard.areaNumber = regionNumber.toInt()
+                    areaCard.areaNumber = regionNumber
                     areaCard.projectCode = projectNumber.toInt()
                     nfcWreatHelper.writeDataAsync(
                         areaCard.getZeroBytes(),
@@ -523,14 +533,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 ?: "鏈煡閿欒"}")
+                                    }
                                 }
-                            }
                             }
                         })
                 }
@@ -546,14 +556,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 ?: "鏈煡閿欒"}")
+                                    }
                                 }
-                            }
                             }
                         })
                 }
@@ -594,7 +604,7 @@
 
     /**
      * 鏇存柊鏈湴鏁版嵁搴撲腑鐨勫啓鍗$姸鎬�
-     * 灏咰ardRegistrationBean涓殑isCardWritten鐘舵�佽缃负true
+     * 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄洿鏂癕anagerCardBean杩樻槸CardRegistrationBean鐨刬sCardWritten鐘舵�佷负true
      * 鐒跺悗璺宠浆鍒板啓鍗℃垚鍔熺晫闈紝骞堕�氱煡MainActivity璋冪敤postCardData
      *
      * @param cardNumber 鍗″彿
@@ -602,37 +612,91 @@
     private fun updateCardWrittenStatus(cardNumber: String) {
         lifecycleScope.launch {
             try {
-                val cardRegistrationDao = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
-                    .cardRegistrationDao()
+                val baseDaoSingleton = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
 
-                // 鏍规嵁璁㈠崟鍙锋煡鎵綜ardRegistrationBean璁板綍
-                val cardRegistration = cardRegistrationDao.getByOrderId(orderNumber)
+                // 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄鐞嗗崱杩樻槸鐢ㄦ埛鍗℃搷浣�
+                val isManagerCardOperation = operationTypeCode in 100..108
 
-                if (cardRegistration != null) {
-                    // 鍒涘缓鏇存柊鍚庣殑CardRegistrationBean瀵硅薄锛屽皢isCardWritten璁剧疆涓簍rue
-                    val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
-                    // 鏇存柊鏁版嵁搴撹褰�
-                    cardRegistrationDao.update(updatedCardRegistration)
+                var updateSuccess = false
 
-                    // 鍦ㄤ富绾跨▼涓叧闂瑼ctivity骞惰烦杞埌鎴愬姛椤甸潰
-                    runOnUiThread {
-                        setResult(RESULT_OK)
-                        finish()
-                        
-                        // 璺宠浆鍒板啓鍗℃垚鍔熺晫闈�
-                        Intent(this@NfcWreatActivity, CardWriteSuccessActivity::class.java).apply {
-                            putExtra("cardNumber", cardNumber)
-                            if (::userCard.isInitialized) {
-                                putExtra("userCard", userCard)
-                            }
-                            putExtra("operationTypeCode", operationTypeCode)
-                            startActivity(this)
-                        }
-                        
-                        // 閫氱煡MainActivity璋冪敤postCardData
-                        notifyMainActivityToPostCardData(cardNumber)
+                if (isManagerCardOperation) {
+                    // 绠$悊鍗″埗浣滄搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癕anagerCardBean
+                    val managerCardDao = baseDaoSingleton.managerCardDao()
+                    val managerCard = managerCardDao.getByOrderId(orderNumber)
+
+                    if (managerCard != null) {
+                        val updatedManagerCard = managerCard.copy(isCardWritten = true)
+                        managerCardDao.update(updatedManagerCard)
+                        updateSuccess = true
+                    }
+                } else {
+                    // 鐢ㄦ埛鍗℃搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癈ardRegistrationBean
+                    val cardRegistrationDao = baseDaoSingleton.cardRegistrationDao()
+                    val cardRegistration = cardRegistrationDao.getByOrderId(orderNumber)
+
+                    if (cardRegistration != null) {
+                        val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
+                        cardRegistrationDao.update(updatedCardRegistration)
+                        updateSuccess = true
                     }
                 }
+
+                // 鏃犺鏄惁鎵惧埌璁板綍锛岄兘璺宠浆鍒版垚鍔熺晫闈�
+                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)
+                        }
+
+                        // 浼犻�掑崱鐗囦俊鎭璞�
+                        cardInfo?.let {
+                            putExtra("cardInfo", it)
+                        }
+
+                        // 浼犻�掑鎴蜂俊鎭璞�
+                        clientInfo?.let {
+                            putExtra("clientInfo", it)
+                        }
+
+                        startActivity(this)
+                    }
+
+                    // 閫氱煡MainActivity璋冪敤postCardData
+                    notifyMainActivityToPostCardData(cardNumber)
+                }
+
             } catch (e: Exception) {
                 // 璁板綍寮傚父淇℃伅
                 CrashReport.postCatchedException(e)

--
Gitblit v1.8.0