左晓为主开发手持机充值管理机
generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
@@ -594,7 +594,7 @@
    /**
     * 更新本地数据库中的写卡状态
     * 将CardRegistrationBean中的isCardWritten状态设置为true
     * 根据操作类型判断是更新ManagerCardBean还是CardRegistrationBean的isCardWritten状态为true
     * 然后跳转到写卡成功界面,并通知MainActivity调用postCardData
     *
     * @param cardNumber 卡号
@@ -602,19 +602,36 @@
    private fun updateCardWrittenStatus(cardNumber: String) {
        lifecycleScope.launch {
            try {
                val cardRegistrationDao = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
                    .cardRegistrationDao()
                val baseDaoSingleton = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
                // 根据订单号查找CardRegistrationBean记录
                // 根据操作类型判断是管理卡还是用户卡操作
                val isManagerCardOperation = operationTypeCode in 100..108
                var updateSuccess = false
                if (isManagerCardOperation) {
                    // 管理卡制作操作类型,查询和更新ManagerCardBean
                    val managerCardDao = baseDaoSingleton.managerCardDao()
                    val managerCard = managerCardDao.getByOrderId(orderNumber)
                    if (managerCard != null) {
                        val updatedManagerCard = managerCard.copy(isCardWritten = true)
                        managerCardDao.update(updatedManagerCard)
                        updateSuccess = true
                    }
                } else {
                    // 用户卡操作类型,查询和更新CardRegistrationBean
                    val cardRegistrationDao = baseDaoSingleton.cardRegistrationDao()
                val cardRegistration = cardRegistrationDao.getByOrderId(orderNumber)
                if (cardRegistration != null) {
                    // 创建更新后的CardRegistrationBean对象,将isCardWritten设置为true
                    val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
                    // 更新数据库记录
                    cardRegistrationDao.update(updatedCardRegistration)
                        updateSuccess = true
                    }
                }
                    // 在主线程中关闭Activity并跳转到成功页面
                // 无论是否找到记录,都跳转到成功界面
                    runOnUiThread {
                        setResult(RESULT_OK)
                        finish()
@@ -632,7 +649,7 @@
                        // 通知MainActivity调用postCardData
                        notifyMainActivityToPostCardData(cardNumber)
                    }
                }
            } catch (e: Exception) {
                // 记录异常信息
                CrashReport.postCatchedException(e)