From 0faae97cd2523f840c426da68464e577e01dfa80 Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期一, 23 六月 2025 20:35:08 +0800
Subject: [PATCH] refactor(CardReplaceActivity): 重构补卡流程并优化界面显示- 重新设计卡片信息展示布局,增加新卡卡地址、客户编号等字段 - 优化补卡逻辑,支持通过卡号或客户编号获取卡片信息 -调整工本费和返回金额输入框位置 - 更新API调用路径,使用新的卡片查询接口
---
generallibrary/src/main/java/com/dayu/general/bean/card/DomainSettingCard.kt | 47 +++++++++++++++++++++++------------------------
1 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/bean/card/DomainSettingCard.kt b/generallibrary/src/main/java/com/dayu/general/bean/card/DomainSettingCard.kt
index c337761..035ec3d 100644
--- a/generallibrary/src/main/java/com/dayu/general/bean/card/DomainSettingCard.kt
+++ b/generallibrary/src/main/java/com/dayu/general/bean/card/DomainSettingCard.kt
@@ -1,6 +1,7 @@
package com.dayu.general.bean.card
import com.dayu.baselibrary.tools.HexUtil
+import com.dayu.general.tool.CardCommon
import java.io.Serializable
/**
@@ -9,12 +10,9 @@
*/
class DomainSettingCard : BaseCard(), Serializable {
companion object {
- const val CARD_TYPE = "B6" // 鍗$被鍨嬶細鍩熷悕璁剧疆鍗�
- const val IDENTIFY_CODE_A0 = 0xA0.toByte() // 璇嗗埆鐮丄0
- const val IDENTIFY_CODE_B1 = 0xB1.toByte() // 璇嗗埆鐮丅1
- const val IDENTIFY_CODE_C2 = 0xC2.toByte() // 璇嗗埆鐮丆2
- const val IDENTIFY_CODE_89 = 0x89.toByte() // 璇嗗埆鐮�89
-
+ const val CARD_TYPE = CardCommon.AREA_CARD // 鍗$被鍨嬶細鍩熷悕璁剧疆鍗�
+
+
const val MAX_DOMAIN_ROUTE = 4 // 鏈�澶у煙鍚嶈矾鏁�
const val MAX_DOMAIN_LENGTH = 38 // 鏈�澶у煙鍚嶉暱搴�
}
@@ -31,8 +29,8 @@
return false
}
return data[0].contentEquals(getZeroBytes()) &&
- data[1].contentEquals(getOneBytes()) &&
- data[2].contentEquals(getTwoBytes())
+ data[1].contentEquals(getOneBytes()) &&
+ data[2].contentEquals(getTwoBytes())
}
/**
@@ -41,30 +39,31 @@
fun getBean(data: List<ByteArray>): DomainSettingCard? {
try {
val domainSettingCard = DomainSettingCard()
-
+
// 瑙f瀽绗�0鍧�
val zero = data[0]
-
+
// 楠岃瘉鍗$被鍨�(8浣�)
if (HexUtil.byteToHex(zero[8]) != CARD_TYPE) {
return null
}
-
+
// 楠岃瘉璇嗗埆鐮�(9-12浣�)
if (zero[9] != IDENTIFY_CODE_A0 ||
zero[10] != IDENTIFY_CODE_B1 ||
zero[11] != IDENTIFY_CODE_C2 ||
- zero[12] != IDENTIFY_CODE_89) {
+ zero[12] != IDENTIFY_CODE_89
+ ) {
return null
}
-
+
// 瑙f瀽鍩熷悕璺暟(13浣�)
val routeNumber = zero[13].toInt()
if (routeNumber !in 1..MAX_DOMAIN_ROUTE) {
return null
}
domainSettingCard.domainRouteNumber = routeNumber
-
+
// 瑙f瀽鍩熷悕闀垮害(14浣�)
domainSettingCard.domainLength = zero[14].toInt()
@@ -116,22 +115,22 @@
for (i in domain.length.coerceAtMost(8) until 8) {
data[i] = 0
}
-
+
// 璁剧疆鍗$被鍨�(8浣�)
data[8] = HexUtil.hexToByte(CARD_TYPE)
-
+
// 璁剧疆璇嗗埆鐮�(9-12浣�)
data[9] = IDENTIFY_CODE_A0
data[10] = IDENTIFY_CODE_B1
data[11] = IDENTIFY_CODE_C2
data[12] = IDENTIFY_CODE_89
-
+
// 璁剧疆鍩熷悕璺暟(13浣�)
data[13] = domainRouteNumber.toByte()
-
+
// 璁剧疆鍩熷悕闀垮害(14浣�)
data[14] = domain.length.toByte()
-
+
// 璁剧疆鏍¢獙鍜�(15浣�)
data[15] = getByteSum(data)
} catch (e: Exception) {
@@ -156,7 +155,7 @@
for (i in (domain.length - 8).coerceAtMost(15) until 15) {
data[i] = 0
}
-
+
// 璁剧疆鏍¢獙鍜�(15浣�)
data[15] = getByteSum(data)
} catch (e: Exception) {
@@ -181,7 +180,7 @@
for (i in (domain.length - 23).coerceAtMost(15) until 15) {
data[i] = 0
}
-
+
// 璁剧疆鏍¢獙鍜�(15浣�)
data[15] = getByteSum(data)
} catch (e: Exception) {
@@ -195,9 +194,9 @@
* 楠岃瘉鍩熷悕鏍煎紡鏄惁姝g‘
*/
fun isValidDomain(): Boolean {
- return domain.isNotEmpty() &&
- domain.length <= MAX_DOMAIN_LENGTH &&
- domain.matches(Regex("^[a-zA-Z0-9.-]+$"))
+ return domain.isNotEmpty() &&
+ domain.length <= MAX_DOMAIN_LENGTH &&
+ domain.matches(Regex("^[a-zA-Z0-9.-]+$"))
}
/**
--
Gitblit v1.8.0