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/MainActivity.kt | 55 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 37 insertions(+), 18 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt index ef6d869..9c52341 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt @@ -294,7 +294,7 @@ override fun onNext(t: BaseResponse<String>) { if (t.success) { // 涓婃姤鎴愬姛锛屾洿鏂版湰鍦版暟鎹簱isReported涓簍rue - updateCardReportedStatus(cardAddr, orderNumber) + updateCardReportedStatus(cardAddr, orderNumber, operationTypeCode) } else { // 涓婃姤澶辫触锛岃褰曢敊璇絾涓嶅奖鍝嶇敤鎴锋搷浣� CrashReport.postCatchedException(Exception("涓婃姤鍐欏崱缁撴灉澶辫触: ${t.msg}")) @@ -312,30 +312,49 @@ /** * 鏇存柊鏈湴鏁版嵁搴撲腑鐨勪笂鎶ョ姸鎬� - * 灏咰ardRegistrationBean涓殑isReported鐘舵�佽缃负true + * 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄洿鏂癕anagerCardBean杩樻槸CardRegistrationBean鐨刬sReported鐘舵�佷负true * * @param cardNumber 鍗″彿 * @param orderNumber 璁㈠崟鍙� + * @param operationTypeCode 鎿嶄綔绫诲瀷浠g爜 */ - private fun updateCardReportedStatus(cardNumber: String, orderNumber: String = "") { + private fun updateCardReportedStatus(cardNumber: String, orderNumber: String = "", operationTypeCode: Int = -1) { lifecycleScope.launch { try { - val cardRegistrationDao = BaseDaoSingleton.getInstance(this@MainActivity) - .cardRegistrationDao() - - // 鏍规嵁璁㈠崟鍙锋煡鎵綜ardRegistrationBean璁板綍 - val cardRegistration = if (orderNumber.isNotEmpty()) { - cardRegistrationDao.getByOrderId(orderNumber) - } else { - // 濡傛灉娌℃湁璁㈠崟鍙凤紝鍒欓�氳繃鍗″彿鏌ユ壘 - cardRegistrationDao.getByCardNumber(cardNumber) - } + val baseDaoSingleton = BaseDaoSingleton.getInstance(this@MainActivity) - if (cardRegistration != null) { - // 鍒涘缓鏇存柊鍚庣殑CardRegistrationBean瀵硅薄锛屽皢isReported璁剧疆涓簍rue - val updatedCardRegistration = cardRegistration.copy(isReported = true) - // 鏇存柊鏁版嵁搴撹褰� - cardRegistrationDao.update(updatedCardRegistration) + // 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄鐞嗗崱杩樻槸鐢ㄦ埛鍗℃搷浣� + val isManagerCardOperation = operationTypeCode in 100..108 + + if (isManagerCardOperation) { + // 绠$悊鍗″埗浣滄搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癕anagerCardBean + val managerCardDao = baseDaoSingleton.managerCardDao() + val managerCard = if (orderNumber.isNotEmpty()) { + managerCardDao.getByOrderId(orderNumber) + } else { + managerCardDao.getByCardAddress(cardNumber) + } + + if (managerCard != null) { + val updatedManagerCard = managerCard.copy(isReported = true) + managerCardDao.update(updatedManagerCard) + } + } else { + // 鐢ㄦ埛鍗℃搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癈ardRegistrationBean + val cardRegistrationDao = baseDaoSingleton.cardRegistrationDao() + val cardRegistration = if (orderNumber.isNotEmpty()) { + cardRegistrationDao.getByOrderId(orderNumber) + } else { + // 濡傛灉娌℃湁璁㈠崟鍙凤紝鍒欓�氳繃鍗″彿鏌ユ壘 + cardRegistrationDao.getByCardNumber(cardNumber) + } + + if (cardRegistration != null) { + // 鍒涘缓鏇存柊鍚庣殑CardRegistrationBean瀵硅薄锛屽皢isReported璁剧疆涓簍rue + val updatedCardRegistration = cardRegistration.copy(isReported = true) + // 鏇存柊鏁版嵁搴撹褰� + cardRegistrationDao.update(updatedCardRegistration) + } } } catch (e: Exception) { // 璁板綍寮傚父淇℃伅锛屼絾涓嶅奖鍝嶇敤鎴锋搷浣� -- Gitblit v1.8.0