From 5edfd12deb166302708857515a833d1471a0f208 Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期三, 25 六月 2025 16:15:23 +0800
Subject: [PATCH] feat(database): 增加管理卡相关功能并优化数据库结构- 新增 ManagerCardBean 数据类用于管理卡信息 - 在 AppDataBase 中添加 ManagerCardDao 接口 - 实现管理卡的数据库迁移策略 - 优化支付方式 ID 类型,从 Long改为 String - 重构更新写卡和上报状态的逻辑,支持管理卡和用户卡

---
 generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt |   77 +++++++++++++++++++++++---------------
 1 files changed, 47 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 8539f83..af95df2 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
@@ -594,7 +594,7 @@
 
     /**
      * 鏇存柊鏈湴鏁版嵁搴撲腑鐨勫啓鍗$姸鎬�
-     * 灏咰ardRegistrationBean涓殑isCardWritten鐘舵�佽缃负true
+     * 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄洿鏂癕anagerCardBean杩樻槸CardRegistrationBean鐨刬sCardWritten鐘舵�佷负true
      * 鐒跺悗璺宠浆鍒板啓鍗℃垚鍔熺晫闈紝骞堕�氱煡MainActivity璋冪敤postCardData
      *
      * @param cardNumber 鍗″彿
@@ -602,37 +602,54 @@
     private fun updateCardWrittenStatus(cardNumber: String) {
         lifecycleScope.launch {
             try {
-                val cardRegistrationDao = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
-                    .cardRegistrationDao()
-
-                // 鏍规嵁璁㈠崟鍙锋煡鎵綜ardRegistrationBean璁板綍
-                val cardRegistration = cardRegistrationDao.getByOrderId(orderNumber)
-
-                if (cardRegistration != null) {
-                    // 鍒涘缓鏇存柊鍚庣殑CardRegistrationBean瀵硅薄锛屽皢isCardWritten璁剧疆涓簍rue
-                    val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
-                    // 鏇存柊鏁版嵁搴撹褰�
-                    cardRegistrationDao.update(updatedCardRegistration)
-
-                    // 鍦ㄤ富绾跨▼涓叧闂瑼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)
+                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)
+                        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)
+                        if (::userCard.isInitialized) {
+                            putExtra("userCard", userCard)
+                        }
+                        putExtra("operationTypeCode", operationTypeCode)
+                        startActivity(this)
+                    }
+                    
+                    // 閫氱煡MainActivity璋冪敤postCardData
+                    notifyMainActivityToPostCardData(cardNumber)
+                }
+                
             } catch (e: Exception) {
                 // 璁板綍寮傚父淇℃伅
                 CrashReport.postCatchedException(e)

--
Gitblit v1.8.0