From d773ab0295feba24ae4fc14f61e8aa310e40f4ba Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期五, 06 六月 2025 16:55:57 +0800
Subject: [PATCH] refactor(nfc): 优化写卡流程和状态更新
---
generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt | 2
generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt | 26 ------------
generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt | 44 +++++++++++++++++++++
3 files changed, 45 insertions(+), 27 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
index 8fe770b..9b7c268 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
@@ -347,7 +347,7 @@
remark = binding.newCardRemark.text.toString(),
paymentMethod = paymentId.toInt(),
isReported = true,
- isCardWritten = true,
+ isCardWritten = false, // 鍒濆璁剧疆涓篺alse锛屽啓鍗℃垚鍔熷悗鍐嶆洿鏂颁负true
operatorId = orderId,
)
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 f8f55a4..74bb8e9 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
@@ -2,7 +2,9 @@
import android.content.Intent
import android.os.Bundle
+import androidx.lifecycle.lifecycleScope
import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.tools.nfc.NFCCallBack
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.general.bean.card.ClearCard
import com.dayu.general.bean.card.UserCard
@@ -12,6 +14,9 @@
import com.dayu.general.net.BaseResponse
import com.dayu.general.tool.NfcReadHelper
import com.dayu.general.tool.NfcWreatHelper
+import com.dayu.general.dao.BaseDaoSingleton
+import com.tencent.bugly.crashreport.CrashReport
+import kotlinx.coroutines.launch
/**
* @author: zuo
@@ -68,6 +73,8 @@
nfcWreatHelper.writeData(clearCard.getZeroBytes(), 7, 0) { success, message ->
if (success) {
postCardData(cardType, cardAddr, "")
+ // 鍐欏崱鎴愬姛鍚庢洿鏂版暟鎹簱涓殑isCardWritten鐘舵��
+ updateCardWrittenStatus(cardAddr)
ToastUtil.show("鍐欏崱鎴愬姛!")
// 澶勭悊鍐欏崱鎴愬姛鐨勬儏鍐�
} else {
@@ -79,7 +86,17 @@
CardCommon.USER_CARD_TYPE_1 -> {
binding?.cardData?.text = "鍐欑敤鎴峰崱"
- nfcWreatHelper.writeUserData(userCard)
+ nfcWreatHelper.writeUserDataAsync(userCard, object : NFCCallBack {
+ override fun isSusses(flag: Boolean, msg: String?) {
+ if (flag) {
+ // 鍐欏崱鎴愬姛鍚庢洿鏂版暟鎹簱涓殑isCardWritten鐘舵��
+ updateCardWrittenStatus(cardAddr)
+ ToastUtil.show("鍐欏崱鎴愬姛!")
+ } else {
+ ToastUtil.show("鍐欏崱澶辫触: ${msg ?: "鏈煡閿欒"}")
+ }
+ }
+ })
}
}
@@ -88,6 +105,31 @@
}
}
+ /**
+ * 鏇存柊CardRegistrationBean涓殑isCardWritten鐘舵�佷负true
+ */
+ private fun updateCardWrittenStatus(cardNumber: String) {
+ lifecycleScope.launch {
+ try {
+ val cardRegistrationDao = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
+ .cardRegistrationDao()
+
+ // 鏍规嵁鍗″彿鏌ユ壘CardRegistrationBean璁板綍
+ val cardRegistration = cardRegistrationDao.getByCardNumber(cardNumber)
+ if (cardRegistration != null) {
+ // 鍒涘缓鏇存柊鍚庣殑CardRegistrationBean瀵硅薄锛屽皢isCardWritten璁剧疆涓簍rue
+ val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
+ // 鏇存柊鏁版嵁搴撹褰�
+ cardRegistrationDao.update(updatedCardRegistration)
+ }
+ } catch (e: Exception) {
+ CrashReport.postCatchedException(e)
+ e.printStackTrace()
+ ToastUtil.show("鏇存柊鍐欏崱鐘舵�佸け璐�: ${e.message}")
+ }
+ }
+ }
+
fun postCardData(cardType: String, cardAddr: String, remark: String) {
when (cardType) {
CardCommon.CHECK_CARD -> {
diff --git a/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt b/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt
index d224bbf..b80183e 100644
--- a/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt
+++ b/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt
@@ -119,31 +119,7 @@
return false
}
- /**
- * 鍐欏崱(寮傛)
- *
- * @param userCard 鐢ㄦ埛鍗″唴瀹�
- * @param callback 鎿嶄綔缁撴灉鍥炶皟
- */
- fun writeUserDataAsync(userCard: UserCard, callback: (Boolean) -> Unit): Disposable {
- showLoading()
- val disposable = Observable.fromCallable {
- writeUserData(userCard)
- }
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe({ result ->
- hideLoading()
- callback(result)
- }, { error ->
- hideLoading()
- error.printStackTrace()
- callback(false)
- })
-
- compositeDisposable.add(disposable)
- return disposable
- }
+
/**
* 鍐欏崱(寮傛)
--
Gitblit v1.8.0