From 2b02b6e854a56a511588e4865ddf2c6597675329 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 16 六月 2025 16:04:54 +0800
Subject: [PATCH] feat(nfc): 添加读卡功能并优化写卡流程

---
 generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt |   37 ++++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 17 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 9b7c268..045f203 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
@@ -10,6 +10,7 @@
 import android.widget.Toast
 import androidx.lifecycle.lifecycleScope
 import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.utils.MornyUtil
 import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
 import com.dayu.general.BaseApplication
 import com.dayu.general.R
@@ -24,6 +25,7 @@
 import com.dayu.general.net.ApiManager
 import com.dayu.general.net.BaseResponse
 import com.dayu.general.tool.CardCommon.Companion.USER_CARD_TYPE_1
+import com.dayu.general.tool.CardOperationType
 import com.dayu.general.tool.NfcReadHelper
 import com.dayu.general.tool.NfcWreatHelper
 import com.dayu.general.utils.DateUtils
@@ -67,6 +69,7 @@
 
     companion object {
         private const val TAG = "NewCard2Activity"
+        private const val REQUEST_CODE_NFC_WRITE = 1001
     }
 
 
@@ -308,11 +311,7 @@
 
         // 鑾峰彇宸ユ湰璐�
         val cardFeeStr = binding.newCardCardFee.text.toString()
-        val cardFee = if (cardFeeStr.isEmpty()) 0.0 else cardFeeStr.toDouble()
-
-        // 鏍煎紡鍖栭噾棰濅负涓や綅灏忔暟
-        val formattedRechargeAmount = String.format("%.2f", rechargeAmount)
-        val formattedCardFee = String.format("%.2f", cardFee)
+        val cardFee = if (cardFeeStr.isEmpty()) 0 else cardFeeStr.toInt()
 
         val remark = binding.newCardRemark.text.toString()
 
@@ -357,30 +356,26 @@
                             try {
                                 BaseDaoSingleton.getInstance(this@NewCard2Activity)
                                     .cardRegistrationDao().insert(cardRegistration)
-
-                                Toast.makeText(
-                                    this@NewCard2Activity,
-                                    "寮�鍗℃垚鍔�",
-                                    Toast.LENGTH_SHORT
-                                ).show()
                                 setResult(RESULT_OK)
                                 Intent(this@NewCard2Activity, NfcWreatActivity::class.java).apply {
                                     putExtra("cardType", USER_CARD_TYPE_1)
-                                    putExtra("orderId", orderId)
+                                    putExtra("orderNumber", orderId)
                                     putExtra("cardAddr", cardPhysicalId)
                                     var userCard = UserCard()
-                                    userCard.areaNumber =clientInfo.districtNum
+                                    userCard.areaNumber = response.content?.cardNum?.substring(0, 12).toString()
                                     userCard.userCode =clientInfo.clientNum
                                     userCard.phoneNumber =clientInfo.phone
-                                    userCard.userCodeNumber = response.content?.cardNum?.toInt()!!
-                                    userCard.projectCode = response.content?.projectNo?.toInt()!!
-                                    userCard.balance = response.content?.balance?.toInt()!!
+                                    userCard.userCodeNumber = response.content?.cardNum?.substring(12)?.toInt()!!
+                                    userCard.projectCode = response.content?.projectNo!!
+                                    userCard.balance = MornyUtil.changeY2F(response.content?.balance)
 //                                    userCard.surplusWater = response.content?.surplusWater?.toInt()!!
                                     userCard.waterPrice = response.content?.waterPrice?.toFloat()!!
 //                                    userCard.electricPrice = response.content?.electricPrice?.toFloat()!!
                                     userCard.rechargeDate = DateUtils.parseStringToCalendar(response.content?.time)
                                     putExtra("userCard", userCard)
-                                    startActivity(this)
+                                    putExtra("operationTypeCode", CardOperationType.OpenCard.code)
+                                    putExtra("cardFee", cardFee)
+                                    startActivityForResult(this, REQUEST_CODE_NFC_WRITE)
                                 }
                             } catch (e: Exception) {
                                 CrashReport.postCatchedException(e)
@@ -498,4 +493,12 @@
         }
     }
 
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        super.onActivityResult(requestCode, resultCode, data)
+        if (requestCode == REQUEST_CODE_NFC_WRITE && resultCode == RESULT_OK) {
+            // 鍐欏崱鎴愬姛锛屽叧闂綋鍓岮ctivity
+            finish()
+        }
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.8.0