From 72880a3df304d21b897aecae5ab25a66069c0187 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 16 六月 2025 17:47:18 +0800
Subject: [PATCH] refactor(generallibrary):优化卡片信息展示和处理逻辑- 修改卡片信息展示布局,调整字段顺序和格式 - 优化卡片读取和处理逻辑,增加日志输出 - 调整金额显示和计算方式,确保精度正确 - 修复部分字段解析和填充逻辑

---
 generallibrary/src/main/res/layout/activity_card_read.xml                        |  108 +++++++-------
 generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt       |   84 ++++++++++-
 generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt       |   67 ++++++---
 generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt |   41 +++--
 generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt              |   28 ++-
 generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt       |   35 +++-
 6 files changed, 235 insertions(+), 128 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt
index 271b476..069d464 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/CardReadActivity.kt
@@ -38,18 +38,16 @@
         super.onCreate(savedInstanceState)
         binding = ActivityCardReadBinding.inflate(layoutInflater)
         setContentView(binding.root)
-        
+
         initView()
     }
 
     private fun initView() {
-        // 璁剧疆鏍囬
-        binding.titleBar.setCenterText("璇诲崱")
         // 璁剧疆TitleBar鐨勮繑鍥炴寜閽偣鍑讳簨浠�
         binding.titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE) {
             finish()
         }
-        
+
 
     }
 
@@ -73,8 +71,8 @@
     }
 
     override fun onNfcBack(intent: Intent?) {
-        intent?.let { 
-            handleNfcIntent(it) 
+        intent?.let {
+            handleNfcIntent(it)
         } ?: run {
             showConfirmDialog("NFC鏁版嵁寮傚父锛岃閲嶆柊鍒峰崱") {
             }
@@ -117,12 +115,13 @@
 
             // 鏍规嵁鍗$墖绫诲瀷杩涜涓嶅悓澶勭悊
             when (cardType) {
-                CardCommon.USER_CARD_TYPE_1, 
-                CardCommon.USER_CARD_TYPE_2, 
+                CardCommon.USER_CARD_TYPE_1,
+                CardCommon.USER_CARD_TYPE_2,
                 CardCommon.USER_CARD_TYPE_3 -> {
                     // 鐢ㄦ埛鍗★細瑙f瀽鍗″唴鏁版嵁骞惰皟鐢ㄦ帴鍙�
                     handleUserCard(cardNumber, cardType, nfcAdapter)
                 }
+
                 else -> {
                     // 绠$悊绫诲崱锛氭樉绀哄崱鐗囩被鍨嬩俊鎭�
                     handleManagementCard(cardNumber, cardType)
@@ -146,6 +145,23 @@
             }
             return
         }
+        binding.tvCardNumber.text = cardNumber
+        // 杈撳嚭鐢ㄦ埛鍗″唴鎵�鏈変俊鎭埌鏃ュ織
+        android.util.Log.d("CardReadActivity", "=== 鐢ㄦ埛鍗′俊鎭� ===")
+        android.util.Log.d("CardReadActivity", "鍗″彿: $cardNumber")
+        android.util.Log.d("CardReadActivity", "鍗$墖绫诲瀷: $cardType")
+        android.util.Log.d("CardReadActivity", "鍥藉琛屾斂鍖哄煙鍙�: ${userCard.areaNumber}")
+        android.util.Log.d("CardReadActivity", "鐢ㄦ埛缂栧彿: ${userCard.userCode}")
+        android.util.Log.d("CardReadActivity", "鐢ㄦ埛鍗$紪鍙�: ${userCard.userCodeNumber}")
+        android.util.Log.d("CardReadActivity", "瀹屾暣鐢ㄦ埛缂栧彿: ${userCard.getMyUserCode()}")
+        android.util.Log.d("CardReadActivity", "鎵嬫満鍙�: ${userCard.phoneNumber}")
+        android.util.Log.d("CardReadActivity", "椤圭洰缂栫爜: ${userCard.projectCode}")
+        android.util.Log.d("CardReadActivity", "鍗″唴浣欓: ${userCard.balance}")
+        android.util.Log.d("CardReadActivity", "鍓╀綑姘撮噺: ${userCard.surplusWater}")
+        android.util.Log.d("CardReadActivity", "姘撮噺鍗曚环: ${userCard.waterPrice}")
+        android.util.Log.d("CardReadActivity", "鐢甸噺鍗曚环: ${userCard.electricPrice}")
+        android.util.Log.d("CardReadActivity", "鍏呭�兼椂闂�: ${userCard.rechargeDate}")
+        android.util.Log.d("CardReadActivity", "==================")
 
         // 鏍规嵁鍗″彿鑾峰彇鍗$墖璇︾粏淇℃伅
         getCardInfo(cardNumber, cardType, userCard)
@@ -156,7 +172,7 @@
      */
     private fun handleManagementCard(cardNumber: String, cardType: String) {
         val cardTypeName = getCardTypeName(cardType)
-        
+
         // 鏄剧ず绠$悊鍗′俊鎭�
         showManagementCardInfo(cardNumber, cardTypeName)
     }
@@ -168,13 +184,12 @@
         // 闅愯棌璇诲崱鎻愮ず锛屾樉绀轰俊鎭尯鍩�
         binding.cardReadLL.visibility = android.view.View.GONE
         binding.cardInfoContainer.visibility = android.view.View.VISIBLE
-        
 
-        
+
         // 鏄剧ず鍩烘湰淇℃伅
-        binding.tvCardNumber.text = cardNumber
+
         binding.tvCardType.text = cardTypeName
-        
+
         // 闅愯棌鐢ㄦ埛鍗$壒鏈夌殑瀛楁
         binding.llCardBalance.visibility = android.view.View.GONE
         binding.llUserNumber.visibility = android.view.View.GONE
@@ -238,22 +253,26 @@
     /**
      * 鏄剧ず鐢ㄦ埛鍗$墖淇℃伅锛堝寘鍚崱鍐呮暟鎹拰鎺ュ彛杩斿洖鏁版嵁锛�
      */
-    private fun showUserCardInfo(cardInfo: CardInfoResult?, cardNumber: String, cardType: String, userCard: UserCard) {
+    private fun showUserCardInfo(
+        cardInfo: CardInfoResult?,
+        cardNumber: String,
+        cardType: String,
+        userCard: UserCard
+    ) {
         // 闅愯棌璇诲崱鎻愮ず锛屾樉绀轰俊鎭尯鍩�
         binding.cardReadLL.visibility = android.view.View.GONE
         binding.cardInfoContainer.visibility = android.view.View.VISIBLE
 
         val cardTypeName = getCardTypeName(cardType)
-        
+
         // 鏄剧ず鍗″唴鏁版嵁
-        binding.tvCardNumber.text = cardNumber
+
         binding.tvCardType.text = cardTypeName
-        
         // 鏄剧ず鐢ㄦ埛鍗$壒鏈夊瓧娈�
         binding.llCardBalance.visibility = android.view.View.VISIBLE
         binding.llUserNumber.visibility = android.view.View.VISIBLE
         binding.llCardStatus.visibility = android.view.View.VISIBLE
-        
+
         userCard.let { card ->
             // 浣欓杞崲涓哄厓锛堝師濮嬫暟鎹彲鑳芥槸鍒嗭級
             val balanceInYuan = if (card.balance > 1000) {
@@ -262,18 +281,19 @@
                 card.balance.toString()
             }
             binding.tvCardBalance.text = "${balanceInYuan}鍏�"
-            
+
             // 浣跨敤瀹屾暣鐨勭敤鎴风紪鍙�
-            binding.tvUserNumber.text = card.getMyUserCode()
-            
+            binding.tvUserNumber.text = cardInfo?.cardNum
+
             // 鍗$墖鐘舵�侊紙鍋囪姝e父鐘舵�侊紝鍥犱负UserCard涓病鏈夌姸鎬佸瓧娈碉級
             binding.tvCardStatus.text = "姝e父"
             binding.tvCardStatus.setTextColor(android.graphics.Color.parseColor("#4CAF50"))
-            
+
             // 鍏呭�兼椂闂翠綔涓烘渶鍚庝娇鐢ㄦ椂闂�
             if (card.rechargeDate != null) {
                 binding.llLastUseTime.visibility = android.view.View.VISIBLE
-                val dateFormat = java.text.SimpleDateFormat("yyyy-MM-dd HH:mm", java.util.Locale.getDefault())
+                val dateFormat =
+                    java.text.SimpleDateFormat("yyyy-MM-dd HH:mm", java.util.Locale.getDefault())
                 binding.tvLastUseTime.text = dateFormat.format(card.rechargeDate!!.time)
             } else {
                 binding.llLastUseTime.visibility = android.view.View.GONE
@@ -305,6 +325,7 @@
             "1001" -> {
                 "璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛岃鍏堣繘琛屽紑鍗℃搷浣溿��"
             }
+
             else -> {
                 when {
                     msg.isNullOrBlank() -> "鑾峰彇鍗′俊鎭け璐ワ紝璇烽噸鏂板埛鍗¢噸璇曘��"
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 045f203..2eb3f4c 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
@@ -60,12 +60,12 @@
     // 瀹㈡埛ID
     private var clientId: String = ""
 
-    private lateinit var clientInfo : ClientInfo
+    private lateinit var clientInfo: ClientInfo
 
     // 鏄惁宸茶鍗�
     private var isReadCard: Boolean = false
 
-    private var orderId:String=""
+    private var orderId: String = ""
 
     companion object {
         private const val TAG = "NewCard2Activity"
@@ -335,7 +335,7 @@
             object : SubscriberListener<BaseResponse<NewCardDataResult>>() {
                 override fun onNext(response: BaseResponse<NewCardDataResult>) {
                     if (response.success) {
-                        orderId=response.content?.orderNo.toString()
+                        orderId = response.content?.orderNo.toString()
                         // 淇濆瓨寮�鍗′俊鎭埌鏁版嵁搴�
                         val cardRegistration = CardRegistrationBean(
                             cardNumber = cardPhysicalId,
@@ -362,16 +362,78 @@
                                     putExtra("orderNumber", orderId)
                                     putExtra("cardAddr", cardPhysicalId)
                                     var userCard = UserCard()
-                                    userCard.areaNumber = response.content?.cardNum?.substring(0, 12).toString()
-                                    userCard.userCode =clientInfo.clientNum
-                                    userCard.phoneNumber =clientInfo.phone
-                                    userCard.userCodeNumber = response.content?.cardNum?.substring(12)?.toInt()!!
+                                    userCard.areaNumber =
+                                        response.content?.cardNum?.substring(0, 12).toString()
+                                    userCard.userCode = clientInfo.clientNum
+                                    userCard.phoneNumber = clientInfo.phone
+                                    userCard.userCodeNumber =
+                                        response.content?.cardNum?.substring(12)?.toInt()!!
                                     userCard.projectCode = response.content?.projectNo!!
-                                    userCard.balance = MornyUtil.changeY2F(response.content?.balance)
+                                    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)
+                                    userCard.waterPrice =
+                                        MornyUtil.changeY2F(response.content?.waterPrice)
+                                    userCard.electricPrice =
+                                        MornyUtil.changeY2F(response.content?.waterPrice)
+                                    userCard.rechargeDate =
+                                        DateUtils.parseStringToCalendar(response.content?.time)
+
+                                    // 杈撳嚭userCard鐨勬墍鏈変俊鎭埌鏃ュ織
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "=== 寮�鍗serCard淇℃伅 ==="
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鍗$墖绫诲瀷: ${userCard.cardType}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鍥藉琛屾斂鍖哄煙鍙�: ${userCard.areaNumber}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鐢ㄦ埛缂栧彿: ${userCard.userCode}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鐢ㄦ埛鍗$紪鍙�: ${userCard.userCodeNumber}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "瀹屾暣鐢ㄦ埛缂栧彿: ${userCard.getMyUserCode()}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鎵嬫満鍙�: ${userCard.phoneNumber}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "椤圭洰缂栫爜: ${userCard.projectCode}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鍗″唴浣欓: ${userCard.balance}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鍓╀綑姘撮噺: ${userCard.surplusWater}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "姘撮噺鍗曚环: ${userCard.waterPrice}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鐢甸噺鍗曚环: ${userCard.electricPrice}"
+                                    )
+                                    android.util.Log.d(
+                                        "NewCard2Activity",
+                                        "鍏呭�兼椂闂�: ${userCard.rechargeDate}"
+                                    )
+                                    android.util.Log.d("NewCard2Activity", "==================")
+
                                     putExtra("userCard", userCard)
                                     putExtra("operationTypeCode", CardOperationType.OpenCard.code)
                                     putExtra("cardFee", cardFee)
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 e1c384c..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
@@ -30,7 +31,7 @@
     var cardType = ""
     var cardAddr = ""
     var cardFee = 0
-    
+
     // 鍏呭�肩浉鍏抽噾棰�
     private var rechargeAmount = 0.0
     private var bonusAmount = 0.0
@@ -57,11 +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
         }
@@ -86,7 +87,7 @@
                         textData.append("宸ユ湰璐癸細" + cardFee + "鍏僜n")
                     }
                     if (userCard.balance != 0) {
-                        textData.append("鍏呭�奸噾棰濓細" + userCard.balance + "鍏�")
+                        textData.append("鍏呭�奸噾棰濓細" + MornyUtil.changeF2Y(userCard.balance) + "鍏�")
                     }
 
                     binding?.cardData?.text = textData.toString()
@@ -95,23 +96,33 @@
                 CardOperationType.Recharge -> {
                     var textData = StringBuilder()
                     textData.append("鐢ㄦ埛鍏呭�糪n")
-                    
+
                     // 鏄剧ず鍏呭�奸噾棰�
                     if (rechargeAmount > 0) {
-                        textData.append("鍏呭�奸噾棰濓細" + String.format("%.2f", rechargeAmount) + "鍏僜n")
+                        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) + "鍏�")
+                        textData.append(
+                            "鍗″唴鎬讳綑棰濓細" + String.format(
+                                "%.2f",
+                                totalBalanceInYuan
+                            ) + "鍏�"
+                        )
                     }
-                    
+
                     binding?.cardData?.text = textData.toString()
                 }
 
@@ -130,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) {
@@ -210,7 +221,7 @@
                     val updatedCardRegistration = cardRegistration.copy(isCardWritten = true)
                     // 鏇存柊鏁版嵁搴撹褰�
                     cardRegistrationDao.update(updatedCardRegistration)
-                    
+
                     // 鍦ㄤ富绾跨▼涓叧闂瑼ctivity
                     runOnUiThread {
                         setResult(RESULT_OK)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
index bd7b9f1..8ea5625 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
@@ -12,6 +12,7 @@
 import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
 import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.utils.MornyUtil
 import com.dayu.baselibrary.utils.ToastUtil
 import com.dayu.baselibrary.view.TitleBar
 import com.dayu.general.BaseApplication
@@ -45,7 +46,12 @@
         private const val EXTRA_CARD_ADDRESS = "extra_card_address"
         private const val EXTRA_USER_CARD = "extra_user_card"
 
-        fun start(context: Context, cardInfo: CardInfoResult?, cardAddress: String?, userCard: UserCard?) {
+        fun start(
+            context: Context,
+            cardInfo: CardInfoResult?,
+            cardAddress: String?,
+            userCard: UserCard?
+        ) {
             val intent = Intent(context, RechargeDetailActivity::class.java)
             intent.putExtra(EXTRA_CARD_INFO, cardInfo)
             intent.putExtra(EXTRA_CARD_ADDRESS, cardAddress)
@@ -86,7 +92,7 @@
             // 澶勭悊鍏呭�奸�昏緫
             handleRecharge()
         }
-        
+
         // 璁剧疆閲戦杈撳叆闄愬埗
         setupAmountInputLimit(binding.rechargeMorny)
         setupAmountInputLimit(binding.rechargeWater)
@@ -98,13 +104,13 @@
     private fun setupAmountInputLimit(editText: EditText) {
         editText.addTextChangedListener(object : TextWatcher {
             override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
-            
+
             override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
-            
+
             override fun afterTextChanged(s: Editable?) {
                 val text = s.toString()
                 if (text.isEmpty()) return
-                
+
                 // 妫�鏌ユ槸鍚﹀寘鍚皬鏁扮偣
                 if (text.contains(".")) {
                     val parts = text.split(".")
@@ -120,7 +126,7 @@
                         }
                     }
                 }
-                
+
                 // 闃叉杈撳叆澶氫釜灏忔暟鐐�
                 val dotCount = text.count { it == '.' }
                 if (dotCount > 1) {
@@ -130,7 +136,7 @@
                     editText.setSelection(newText.length)
                     editText.addTextChangedListener(this)
                 }
-                
+
                 // 闃叉浠ュ皬鏁扮偣寮�澶�
                 if (text.startsWith(".")) {
                     editText.removeTextChangedListener(this)
@@ -249,9 +255,9 @@
             binding.redInitCode.text = cardAddress ?: ""
             binding.userName.text = info.userName ?: ""
             binding.redCardNum.text = info.cardNum ?: ""
-            
+
             // 浣跨敤鐢ㄦ埛鍗′腑鐨勪綑棰濇樉绀�
-            val balance = userCard?.let { 
+            val balance = userCard?.let {
                 // 灏嗗垎杞崲涓哄厓锛屼繚鐣欎袱浣嶅皬鏁�
                 String.format("%.2f", it.balance / 100.0)
             } ?: run {
@@ -389,25 +395,30 @@
     /**
      * 鍚姩鍐欏崱鐣岄潰
      */
-    private fun startWriteCardActivity(rechargeResult: RechargeResult, rechargeAmount: Double, bonusAmount: Double) {
+    private fun startWriteCardActivity(
+        rechargeResult: RechargeResult,
+        rechargeAmount: Double,
+        bonusAmount: Double
+    ) {
         try {
             // 鍒涘缓UserCard瀵硅薄鐢ㄤ簬鍐欏崱
             val userCard = UserCard().apply {
                 // 璁剧疆鐢ㄦ埛鍗′俊鎭�
                 cardInfo?.let { info ->
                     userCode = info.cardNum ?: ""
-                    
+
                     // 璁$畻鏂颁綑棰濓細鍘熸湁浣欓 + 鍏呭�奸噾棰� + 璧犻�侀噾棰�
-                    val originalBalance = this@RechargeDetailActivity.userCard?.balance ?: 0 // 鍘熸湁浣欓锛堝垎锛�
+                    val originalBalance =
+                        this@RechargeDetailActivity.userCard?.balance ?: 0 // 鍘熸湁浣欓锛堝垎锛�
                     val rechargeAmountInCents = (rechargeAmount * 100).toInt() // 鍏呭�奸噾棰濊浆鍒�
                     val bonusAmountInCents = (bonusAmount * 100).toInt() // 璧犻�侀噾棰濊浆鍒�
-                    
+
                     balance = originalBalance + rechargeAmountInCents + bonusAmountInCents
                 }
-                
+
                 // 璁剧疆鍏朵粬蹇呰淇℃伅
                 projectCode = rechargeResult.projectNo
-                waterPrice = rechargeResult.waterPrice.toFloat()
+                waterPrice = MornyUtil.changeY2F(rechargeResult.waterPrice.toString())
                 rechargeDate = java.util.Calendar.getInstance()
             }
 
diff --git a/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt b/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt
index 8e43c3d..3d7168e 100644
--- a/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt
+++ b/generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt
@@ -17,10 +17,10 @@
     var userCodeNumber: Int = 0 // 鐢ㄦ埛鍗$紪鍙�(HEX)
     var phoneNumber: String = "" // 鎵嬫満鍙�(BCD)
     var projectCode: Int = 0 // 椤圭洰缂栫爜(HEX 1-255)
-    var balance: Int = 0 // 鍓╀綑閲戦(2浣嶅皬鏁扮偣锛屽崟浣嶅厓)
+    var balance: Int = 0 // 鍓╀綑閲戦(2浣嶅皬鏁扮偣锛屽崟浣嶅垎)
     var surplusWater: Int = 0 // 鍓╀綑姘撮噺(2浣嶅皬鏁扮偣锛屽崟浣嶇珛鏂圭背)
-    var waterPrice: Float = 0f // 姘撮噺鍗曚环(鏈�澶�655.35锛�2浣嶅皬鏁扮偣銆傚崟浣嶏細m3/鍏�)
-    var electricPrice: Float = 0f // 鐢甸噺鍗曚环(鏈�澶�655.35锛�2浣嶅皬鏁扮偣銆傚崟浣�: 鍏�/搴�)
+    var waterPrice: Int = 0 // 姘撮噺鍗曚环(2浣嶅皬鏁扮偣锛屽崟浣嶅垎/m3)
+    var electricPrice: Int = 0 // 鐢甸噺鍗曚环(2浣嶅皬鏁扮偣锛屽崟浣嶅垎/搴�)
     var rechargeDate: Calendar? = null // 鍏呭�兼椂闂�
 
     /**
@@ -74,7 +74,7 @@
                 projectCode = HexUtil.get16To10LowHightByBytes(byteArrayOf(one[0]))
                 balance = HexUtil.get16To10LowHightByBytes(one.copyOfRange(1, 5))
                 surplusWater = HexUtil.get16To10LowHightByBytes(one.copyOfRange(5, 9))
-                electricPrice = HexUtil.hexToFloatLowHigh(one.copyOfRange(9, 11))
+                electricPrice = HexUtil.get16To10LowHightByBytes(one.copyOfRange(9, 11))
 
                 // 瑙f瀽鍏呭�兼椂闂�
                 val year = HexUtil.getBcdToInt(one[11])
@@ -90,7 +90,7 @@
             // 瑙f瀽绗�2鍧�
             val two = data[2]
             userCard.apply {
-                waterPrice = HexUtil.hexToFloatLowHigh(two.copyOfRange(9, 11))
+                waterPrice = HexUtil.get16To10LowHightByBytes(two.copyOfRange(9, 11))
             }
 
             return userCard
@@ -157,10 +157,11 @@
                 System.arraycopy(waterPadded, 0, data, 5, 4)
 
                 // 璁剧疆鐢典环 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
-                val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice))
-                val pricePadded = ByteArray(2)
-                System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
-                System.arraycopy(pricePadded, 0, data, 9, 2)
+                val electricPriceHex = HexUtil.get10To16LowHigh(electricPrice)
+                val electricPriceBytes = HexUtil.hexToByteArray(electricPriceHex)
+                val electricPricePadded = ByteArray(2)
+                System.arraycopy(electricPriceBytes, 0, electricPricePadded, 0, minOf(electricPriceBytes.size, 2))
+                System.arraycopy(electricPricePadded, 0, data, 9, 2)
 
                 // 璁剧疆鍏呭�兼椂闂�
                 rechargeDate?.let {
@@ -196,10 +197,11 @@
                 System.arraycopy(waterPadded, 0, data, 5, 4)
 
                 // 璁剧疆姘翠环 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
-                val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(waterPrice))
-                val pricePadded = ByteArray(2)
-                System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
-                System.arraycopy(pricePadded, 0, data, 9, 2)
+                val waterPriceHex = HexUtil.get10To16LowHigh(waterPrice)
+                val waterPriceBytes = HexUtil.hexToByteArray(waterPriceHex)
+                val waterPricePadded = ByteArray(2)
+                System.arraycopy(waterPriceBytes, 0, waterPricePadded, 0, minOf(waterPriceBytes.size, 2))
+                System.arraycopy(waterPricePadded, 0, data, 9, 2)
 
                 // 璁剧疆鍏呭�兼椂闂�
                 rechargeDate?.let {
diff --git a/generallibrary/src/main/res/layout/activity_card_read.xml b/generallibrary/src/main/res/layout/activity_card_read.xml
index e6ab761..2e2cf6b 100644
--- a/generallibrary/src/main/res/layout/activity_card_read.xml
+++ b/generallibrary/src/main/res/layout/activity_card_read.xml
@@ -11,7 +11,8 @@
         android:layout_height="@dimen/dimen_title_height"
         android:background="@color/title_bar_bg"
         android:elevation="4dp"
-        app:centerText="璇诲崱" />
+        app:centerText="璇诲崱"
+        app:leftImage="@mipmap/icon_back" />
 
     <ScrollView
         android:layout_width="match_parent"
@@ -32,7 +33,7 @@
                 android:layout_height="match_parent"
                 android:gravity="center"
                 android:orientation="vertical"
-                android:visibility="gone">
+                android:visibility="visible">
 
                 <androidx.cardview.widget.CardView
                     android:layout_width="match_parent"
@@ -95,7 +96,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
-                android:visibility="visible">
+                android:visibility="gone">
 
                 <!-- 鍗″唴鏁版嵁鍖哄煙 -->
                 <androidx.cardview.widget.CardView
@@ -116,9 +117,9 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:gravity="center_vertical"
                             android:background="#F8F9FA"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
                             android:padding="12dp">
 
                             <TextView
@@ -143,15 +144,15 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:gravity="center_vertical"
                             android:background="#FFFFFF"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
                             android:padding="12dp">
 
                             <TextView
                                 android:layout_width="105dp"
                                 android:layout_height="wrap_content"
-                                android:text="鍗″彿锛�"
+                                android:text="鍗″湴鍧�锛�"
                                 android:textColor="#333333"
                                 android:textSize="@dimen/text_size" />
 
@@ -164,15 +165,42 @@
                                 android:textColor="#666666"
                                 android:textSize="@dimen/text_size" />
                         </LinearLayout>
+                        <!-- 鍗$墖鐘舵�� -->
+                        <LinearLayout
+                            android:id="@+id/ll_card_status"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginBottom="2dp"
+                            android:background="#FFFFFF"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
+                            android:padding="12dp"
+                            android:visibility="visible">
 
+                            <TextView
+                                android:layout_width="105dp"
+                                android:layout_height="wrap_content"
+                                android:text="鍗$墖鐘舵�侊細"
+                                android:textColor="#333333"
+                                android:textSize="@dimen/text_size" />
+
+                            <TextView
+                                android:id="@+id/tv_card_status"
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:text="姝e父"
+                                android:textColor="#4CAF50"
+                                android:textSize="@dimen/text_size" />
+                        </LinearLayout>
                         <!-- 鍗$墖绫诲瀷 -->
                         <LinearLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:gravity="center_vertical"
                             android:background="#F8F9FA"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
                             android:padding="12dp">
 
                             <TextView
@@ -198,11 +226,11 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:visibility="visible"
-                            android:gravity="center_vertical"
                             android:background="#FFFFFF"
-                            android:padding="12dp">
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
+                            android:padding="12dp"
+                            android:visibility="visible">
 
                             <TextView
                                 android:layout_width="105dp"
@@ -228,11 +256,11 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:visibility="visible"
-                            android:gravity="center_vertical"
                             android:background="#F8F9FA"
-                            android:padding="12dp">
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
+                            android:padding="12dp"
+                            android:visibility="visible">
 
                             <TextView
                                 android:layout_width="105dp"
@@ -256,9 +284,9 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:gravity="center_vertical"
                             android:background="#FFFFFF"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
                             android:padding="12dp">
 
                             <TextView
@@ -283,9 +311,9 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:gravity="center_vertical"
                             android:background="#F8F9FA"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
                             android:padding="12dp">
 
                             <TextView
@@ -305,34 +333,6 @@
                                 android:textSize="@dimen/text_size" />
                         </LinearLayout>
 
-                        <!-- 鍗$墖鐘舵�� -->
-                        <LinearLayout
-                            android:id="@+id/ll_card_status"
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:visibility="visible"
-                            android:gravity="center_vertical"
-                            android:background="#FFFFFF"
-                            android:padding="12dp">
-
-                            <TextView
-                                android:layout_width="105dp"
-                                android:layout_height="wrap_content"
-                                android:text="鍗$墖鐘舵�侊細"
-                                android:textColor="#333333"
-                                android:textSize="@dimen/text_size" />
-
-                            <TextView
-                                android:id="@+id/tv_card_status"
-                                android:layout_width="0dp"
-                                android:layout_height="wrap_content"
-                                android:layout_weight="1"
-                                android:text="姝e父"
-                                android:textColor="#4CAF50"
-                                android:textSize="@dimen/text_size" />
-                        </LinearLayout>
 
                         <!-- 鏈�鍚庝娇鐢ㄦ椂闂� -->
                         <LinearLayout
@@ -340,11 +340,11 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_marginBottom="2dp"
-                            android:orientation="horizontal"
-                            android:visibility="visible"
-                            android:gravity="center_vertical"
                             android:background="#F8F9FA"
-                            android:padding="12dp">
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
+                            android:padding="12dp"
+                            android:visibility="visible">
 
                             <TextView
                                 android:layout_width="105dp"

--
Gitblit v1.8.0