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/java/com/dayu/general/bean/card/UserCard.kt |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

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 {

--
Gitblit v1.8.0