From ec09d4bcd191496272099c2ab31d097ad630ee78 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 17 六月 2025 11:55:04 +0800
Subject: [PATCH] feat(card): 添加销卡功能并优化卡片信息展示
---
generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt | 67 +++++++++++++++++++++++++++++++--
1 files changed, 62 insertions(+), 5 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 e21fe66..ad1a0c3 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
@@ -5,6 +5,7 @@
import androidx.lifecycle.lifecycleScope
import com.dayu.baselibrary.net.subscribers.SubscriberListener
import com.dayu.baselibrary.tools.nfc.NFCCallBack
+import com.dayu.baselibrary.utils.MornyUtil
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.general.bean.card.ClearCard
import com.dayu.general.bean.card.UserCard
@@ -31,6 +32,10 @@
var cardAddr = ""
var cardFee = 0
+ // 鍏呭�肩浉鍏抽噾棰�
+ private var rechargeAmount = 0.0
+ private var bonusAmount = 0.0
+
//璁㈠崟缂栧彿
var orderNumber = ""
private lateinit var userCard: UserCard
@@ -53,6 +58,11 @@
operationTypeCode = intent?.getIntExtra("operationTypeCode", -1) ?: -1
orderNumber = intent?.getStringExtra("orderNumber") ?: ""
operationType = CardOperationType.fromCode(operationTypeCode)
+
+ // 鑾峰彇鍏呭�肩浉鍏抽噾棰�
+ rechargeAmount = intent?.getDoubleExtra("rechargeAmount", 0.0) ?: 0.0
+ bonusAmount = intent?.getDoubleExtra("bonusAmount", 0.0) ?: 0.0
+
if (intent?.hasExtra("cardFee") == true) {
cardFee = intent?.getIntExtra("cardFee", 0) ?: 0
}
@@ -77,7 +87,40 @@
textData.append("宸ユ湰璐癸細" + cardFee + "鍏僜n")
}
if (userCard.balance != 0) {
- textData.append("鍏呭�奸噾棰濓細" + userCard.balance + "鍏�")
+ textData.append("鍏呭�奸噾棰濓細" + MornyUtil.changeF2Y(userCard.balance) + "鍏�")
+ }
+
+ binding?.cardData?.text = textData.toString()
+ }
+
+ CardOperationType.Recharge -> {
+ var textData = StringBuilder()
+ textData.append("鐢ㄦ埛鍏呭�糪n")
+
+ // 鏄剧ず鍏呭�奸噾棰�
+ if (rechargeAmount > 0) {
+ textData.append(
+ "鍏呭�奸噾棰濓細" + String.format(
+ "%.2f",
+ rechargeAmount
+ ) + "鍏僜n"
+ )
+ }
+
+ // 鏄剧ず璧犻�侀噾棰�
+ if (bonusAmount > 0) {
+ textData.append("璧犻�侀噾棰濓細" + String.format("%.2f", bonusAmount) + "鍏僜n")
+ }
+
+ // 鏄剧ず鎬婚噾棰濓紙鍐欏叆鍗″唴鐨勬�讳綑棰濓級
+ if (userCard.balance != 0) {
+ val totalBalanceInYuan = userCard.balance / 100.0 // 杞崲涓哄厓
+ textData.append(
+ "鍗″唴鎬讳綑棰濓細" + String.format(
+ "%.2f",
+ totalBalanceInYuan
+ ) + "鍏�"
+ )
}
binding?.cardData?.text = textData.toString()
@@ -86,7 +129,6 @@
CardOperationType.CancelCard -> TODO()
CardOperationType.CheckCard -> TODO()
CardOperationType.DeductCard -> TODO()
- CardOperationType.Recharge -> TODO()
CardOperationType.ReplaceCard -> TODO()
null -> TODO()
}
@@ -99,7 +141,7 @@
val nfcReadHelper = NfcReadHelper.getInstance(intent, this)
// 浣跨敤姝e父鐨刧etCardNumber()鏂规硶锛屽畠浼氳嚜鍔ㄥ叧闂繛鎺�
val cardNumber = nfcReadHelper.getCardNumber()
-
+
if (cardNumber.isNotEmpty() && cardNumber == cardAddr) {
val nfcWreatHelper = NfcWreatHelper.getInstance(intent, this)
when (operationType) {
@@ -136,10 +178,25 @@
}
+ CardOperationType.Recharge -> {
+ nfcWreatHelper.writeUserDataAsync(userCard, object : NFCCallBack {
+ override fun isSusses(flag: Boolean, msg: String?) {
+ // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢�
+ runOnUiThread {
+ if (flag) {
+ postCardData(cardType, cardAddr)
+ ToastUtil.show("鍏呭�煎啓鍗℃垚鍔�!")
+ } else {
+ ToastUtil.show("鍏呭�煎啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}")
+ }
+ }
+ }
+ })
+ }
+
CardOperationType.CancelCard -> TODO()
CardOperationType.CheckCard -> TODO()
CardOperationType.DeductCard -> TODO()
- CardOperationType.Recharge -> TODO()
CardOperationType.ReplaceCard -> TODO()
null -> TODO()
}
@@ -164,7 +221,7 @@
val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
// 鏇存柊鏁版嵁搴撹褰�
cardRegistrationDao.update(updatedCardRegistration)
-
+
// 鍦ㄤ富绾跨▼涓叧闂瑼ctivity
runOnUiThread {
setResult(RESULT_OK)
--
Gitblit v1.8.0