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