From 1bc1acff2127d61b359800096ad5b904370d9176 Mon Sep 17 00:00:00 2001 From: zuojincheng <lf_zuo@163.com> Date: 星期三, 26 三月 2025 09:25:47 +0800 Subject: [PATCH] refactor(nfc): 重构 NFC 读写助手类 --- generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt | 36 ++++++++++++++++++------------------ 1 files changed, 18 insertions(+), 18 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 243f3ea..9436dd7 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 @@ -10,7 +10,7 @@ /** * 閫氱敤椤圭洰鐢ㄦ埛鍗$粨鏋� */ -class UserCard : BaseCard(), Serializable { +class UserCard : BaseUserCardCard(), Serializable { var cardType: String = USER_CARD_TYPE_1 // 鍗$被鍨嬶細A1缁堢鍐欏崱 A8鍒峰崱寮�娉靛悗鍊� A2鍙犲姞鍏呭�� var areaNumber: Int = 0 // 鍥藉琛屾斂鍖哄煙鍙�(12浣岯CD,绮剧‘鍒版潙) var userCode: String = "" // 鐢ㄦ埛缂栧彿BCD @@ -30,10 +30,10 @@ if (data == null || data.size < 3) { return false } - + val expectedBytes = arrayOf(getZeroBytes(), getOneBytes(), getTwoBytes()) - return data.zip(expectedBytes.toList()).all { (actual, expected) -> - actual.contentEquals(expected) + return data.zip(expectedBytes.toList()).all { (actual, expected) -> + actual.contentEquals(expected) } } @@ -47,7 +47,7 @@ /** * 閫氳繃byte杞琤ean */ - fun getBean(data: List<ByteArray>): UserCard? { + override fun getBean(data: List<ByteArray>): UserCard? { try { val userCard = UserCard() // 瑙f瀽绗�0鍧� @@ -75,7 +75,7 @@ balance = HexUtil.get16To10LowHightByBytes(one.copyOfRange(1, 5)) surplusWater = HexUtil.get16To10LowHightByBytes(one.copyOfRange(5, 9)) electricPrice = HexUtil.hexToFloatLowHigh(one.copyOfRange(9, 11)) - + // 瑙f瀽鍏呭�兼椂闂� val year = HexUtil.getBcdToInt(one[11]) val month = HexUtil.getBcdToInt(one[12]) @@ -134,19 +134,19 @@ val data = ByteArray(16) try { data[0] = projectCode.toByte() - + // 璁剧疆浣欓 val balanceBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(balance)) System.arraycopy(balanceBytes, 0, data, 1, 4) - + // 璁剧疆鍓╀綑姘撮噺 val waterBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusWater)) System.arraycopy(waterBytes, 0, data, 5, 4) - + // 璁剧疆鐢典环 val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice)) System.arraycopy(priceBytes, 0, data, 9, 2) - + // 璁剧疆鍏呭�兼椂闂� rechargeDate?.let { data[11] = HexUtil.getIntToBCD(it.get(Calendar.YEAR) % 100)[0] @@ -154,7 +154,7 @@ data[13] = HexUtil.getIntToBCD(it.get(Calendar.DAY_OF_MONTH))[0] data[14] = HexUtil.getIntToBCD(it.get(Calendar.HOUR_OF_DAY))[0] } - + data[15] = getByteSum(data) } catch (e: Exception) { e.printStackTrace() @@ -170,14 +170,14 @@ // 澶囦唤浣欓鍜屾按閲忔暟鎹� val balanceBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(balance)) System.arraycopy(balanceBytes, 0, data, 1, 4) - + val waterBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusWater)) System.arraycopy(waterBytes, 0, data, 5, 4) - + // 璁剧疆姘翠环 val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(waterPrice)) System.arraycopy(priceBytes, 0, data, 9, 2) - + // 璁剧疆鍏呭�兼椂闂� rechargeDate?.let { data[11] = HexUtil.getIntToBCD(it.get(Calendar.YEAR) % 100)[0] @@ -185,7 +185,7 @@ data[13] = HexUtil.getIntToBCD(it.get(Calendar.DAY_OF_MONTH))[0] data[14] = HexUtil.getIntToBCD(it.get(Calendar.HOUR_OF_DAY))[0] } - + data[15] = getByteSum(data) } catch (e: Exception) { e.printStackTrace() @@ -194,7 +194,7 @@ } } - fun getZeroBytes(): ByteArray = Zero().toBytes() - fun getOneBytes(): ByteArray = One().toBytes() - fun getTwoBytes(): ByteArray = Two().toBytes() + override fun getZeroBytes(): ByteArray = Zero().toBytes() + override fun getOneBytes(): ByteArray = One().toBytes() + override fun getTwoBytes(): ByteArray = Two().toBytes() } -- Gitblit v1.8.0