From 9a2399d1a0003d1f2935720474b325639454178d Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 10 六月 2025 17:25:25 +0800
Subject: [PATCH] feat(general): 新增卡片操作类型并优化写卡逻辑
---
generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt | 19 ++-
generallibrary/src/main/res/layout/activity_new_card_ge.xml | 2
generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt | 63 ++++++++----
generallibrary/src/main/java/com/dayu/general/activity/ManageListActivity.kt | 5
generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt | 117 ++++++++++++++++-------
generallibrary/src/main/java/com/dayu/general/bean/net/NewCardResult.kt | 2
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java | 27 +++-
generallibrary/src/main/java/com/dayu/general/bean/db/CardRegistrationBean.kt | 2
generallibrary/src/main/java/com/dayu/general/tool/CardOperationType.kt | 28 +++++
9 files changed, 187 insertions(+), 78 deletions(-)
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
index 1d89f03..f03959a 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
@@ -125,14 +125,24 @@
mfc.connect();
// 楠岃瘉鎵囧尯瀵嗙爜
boolean isOpen = false;
- for (int i = 0; i < listKeyA.size(); i++) {
- if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) {
- isOpen = true;
- if (listKeyA.get(i).equals(defauleKey)) {
- // 褰撳墠涓洪粯璁ょ櫧鍗″瘑鐮佹椂鍐欏崱鏃朵慨鏀瑰瘑鐮�
- changePasword(a, mfc);
+
+ if (listKeyA.size() != 0) {
+ for (int i = 0; i < listKeyA.size(); i++) {
+ if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) {
+ isOpen = true;
+ if (listKeyA.get(i).equals(defauleKey)) {
+ // 褰撳墠涓洪粯璁ょ櫧鍗″瘑鐮佹椂鍐欏崱鏃朵慨鏀瑰瘑鐮�
+ changePasword(a, mfc);
+ }
+ break;
}
- break;
+ }
+ } else if (listA_PS.size() != 0 && listA_PS.size() > a) {
+ if (mfc.authenticateSectorWithKeyA(a, defauleKey)) {
+ isOpen = true;
+
+ } else if (mfc.authenticateSectorWithKeyA(a, listA_PS.get(a))) {
+ isOpen = true;
}
}
if (isOpen) {
@@ -239,7 +249,7 @@
boolean isOpen = false;
if (listKeyA.size() != 0) {
for (int i = 0; i < listKeyA.size(); i++) {
- if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) {
+ if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) {
isOpen = true;
if (listKeyA.get(i).equals(defauleKey)) {
// 褰撳墠涓洪粯璁ょ櫧鍗″瘑鐮佹椂鍐欏崱鏃朵慨鏀瑰瘑鐮�
@@ -326,7 +336,6 @@
/**
* 淇敼瀵嗙爜
*
- * @param 涔﹀啓鐨勬墖鍖�
* @param passWord 瀵嗙爜
* @return
*/
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/ManageListActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/ManageListActivity.kt
index 58644fa..33198ef 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/ManageListActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/ManageListActivity.kt
@@ -5,6 +5,7 @@
import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
import com.dayu.general.databinding.ActivityManageListGeBinding
import com.dayu.general.tool.CardCommon
+import com.dayu.general.tool.CardOperationType
class ManageListActivity : BaseActivity() {
@@ -21,13 +22,15 @@
binding?.tvCleanCard?.setOnClickListener {
var intent = Intent(this, ManagerReadActivity::class.java).apply {
putExtra("cardType", CardCommon.CLEAN_CARD_TYPE)
+ putExtra("operationTypeCode", CardOperationType.CleanCard.code)
}
startActivity(intent)
}
binding?.tvCheckCard?.setOnClickListener {
var intent = Intent(this, ManagerReadActivity::class.java).apply {
- putExtra("cardType", CardCommon.CHECK_CARD)
+ putExtra("operationTypeCode", CardCommon.CHECK_CARD)
+ putExtra("operationTypeCode", CardOperationType.CheckCard.code)
}
startActivity(intent)
}
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..947b440 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
@@ -308,11 +310,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()
@@ -369,17 +367,20 @@
putExtra("orderId", 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)
+ putExtra("operationTypeCode", CardOperationType.OpenCard.code)
+ putExtra("orderNumber", response.content?.orderNo)
+ putExtra("cardFee", cardFee)
startActivity(this)
}
} catch (e: Exception) {
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 74bb8e9..3c9910b 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt
@@ -9,6 +9,7 @@
import com.dayu.general.bean.card.ClearCard
import com.dayu.general.bean.card.UserCard
import com.dayu.general.tool.CardCommon
+import com.dayu.general.tool.CardOperationType
import com.dayu.general.databinding.ActivityNfcWriteGeBinding
import com.dayu.general.net.ApiManager
import com.dayu.general.net.BaseResponse
@@ -17,6 +18,7 @@
import com.dayu.general.dao.BaseDaoSingleton
import com.tencent.bugly.crashreport.CrashReport
import kotlinx.coroutines.launch
+import java.lang.StringBuilder
/**
* @author: zuo
@@ -28,7 +30,13 @@
var cardType = ""
var orderId = ""
var cardAddr = ""
+ var cardFee = 0
+
+ //璁㈠崟缂栧彿
+ var orderNumber = ""
private lateinit var userCard: UserCard
+ private var operationTypeCode = -1;
+ private var operationType: CardOperationType? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -44,18 +52,44 @@
cardType = intent?.getStringExtra("cardType") ?: ""
orderId = intent?.getStringExtra("orderId") ?: ""
cardAddr = intent?.getStringExtra("cardAddr") ?: ""
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) {
- userCard = intent?.getSerializableExtra("userCard", UserCard::class.java)!!
- } else {
- userCard = (intent?.getSerializableExtra("userCard") as? UserCard)!!
+ operationTypeCode = intent?.getIntExtra("operationTypeCode", -1) ?: -1
+ operationType = CardOperationType.fromCode(operationTypeCode)
+ if (intent?.hasExtra("cardFee") == true) {
+ cardFee = intent?.getIntExtra("cardFee", 0) ?: 0
}
+ if (intent?.hasExtra("userCard") == true) {
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) {
+ userCard = intent?.getSerializableExtra("userCard", UserCard::class.java)!!
+ } else {
+ userCard = (intent?.getSerializableExtra("userCard") as? UserCard)!!
+ }
- if (cardType.isNotEmpty()) {
- when (cardType) {
- CardCommon.CLEAN_CARD_TYPE -> {
+ }
+ if (operationTypeCode != -1) {
+ when (operationType) {
+ CardOperationType.CleanCard -> {
binding?.cardData?.text = "娓呴浂鍗″啓鍗�"
}
+ CardOperationType.OpenCard -> {
+ var textData = StringBuilder()
+ textData.append("鐢ㄦ埛寮�鍗n")
+ if (cardFee != 0) {
+ textData.append("宸ユ湰璐癸細" + cardFee + "鍏僜n")
+ }
+ if (userCard.balance != 0) {
+ textData.append("鍏呭�奸噾棰濓細" + userCard.balance + "鍏�")
+ }
+
+ binding?.cardData?.text = textData.toString()
+ }
+
+ CardOperationType.CancelCard -> TODO()
+ CardOperationType.CheckCard -> TODO()
+ CardOperationType.DeductCard -> TODO()
+ CardOperationType.Recharge -> TODO()
+ CardOperationType.ReplaceCard -> TODO()
+ null -> TODO()
}
}
@@ -64,41 +98,55 @@
override fun onNfcBack(intent: Intent) {
val nfcReadHelper = NfcReadHelper.getInstance(intent, this)
- val cardNumber = nfcReadHelper.getCardNumberNoClose()
+ // 浣跨敤姝e父鐨刧etCardNumber()鏂规硶锛屽畠浼氳嚜鍔ㄥ叧闂繛鎺�
+ val cardNumber = nfcReadHelper.getCardNumber()
+
if (cardNumber.isNotEmpty() && cardNumber == cardAddr) {
val nfcWreatHelper = NfcWreatHelper.getInstance(intent, this)
- when (cardType) {
- CardCommon.CLEAN_CARD_TYPE -> {
+ when (operationType) {
+ CardOperationType.CleanCard -> {
var clearCard = ClearCard()
nfcWreatHelper.writeData(clearCard.getZeroBytes(), 7, 0) { success, message ->
- if (success) {
- postCardData(cardType, cardAddr, "")
- // 鍐欏崱鎴愬姛鍚庢洿鏂版暟鎹簱涓殑isCardWritten鐘舵��
- updateCardWrittenStatus(cardAddr)
- ToastUtil.show("鍐欏崱鎴愬姛!")
- // 澶勭悊鍐欏崱鎴愬姛鐨勬儏鍐�
- } else {
- // 澶勭悊鍐欏崱澶辫触鐨勬儏鍐�
- ToastUtil.show(message)
+ // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢�
+ runOnUiThread {
+ if (success) {
+ postCardData(cardType, cardAddr)
+ // 鍐欏崱鎴愬姛鍚庢洿鏂版暟鎹簱涓殑isCardWritten鐘舵��
+ updateCardWrittenStatus(cardAddr)
+ ToastUtil.show("鍐欏崱鎴愬姛!")
+ // 澶勭悊鍐欏崱鎴愬姛鐨勬儏鍐�
+ } else {
+ // 澶勭悊鍐欏崱澶辫触鐨勬儏鍐�
+ ToastUtil.show(message)
+ }
}
}
}
- CardCommon.USER_CARD_TYPE_1 -> {
- binding?.cardData?.text = "鍐欑敤鎴峰崱"
+ CardOperationType.OpenCard -> {
nfcWreatHelper.writeUserDataAsync(userCard, object : NFCCallBack {
override fun isSusses(flag: Boolean, msg: String?) {
- if (flag) {
- // 鍐欏崱鎴愬姛鍚庢洿鏂版暟鎹簱涓殑isCardWritten鐘舵��
- updateCardWrittenStatus(cardAddr)
- ToastUtil.show("鍐欏崱鎴愬姛!")
- } else {
- ToastUtil.show("鍐欏崱澶辫触: ${msg ?: "鏈煡閿欒"}")
+ // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢�
+ runOnUiThread {
+ if (flag) {
+ // 鍐欏崱鎴愬姛鍚庢洿鏂版暟鎹簱涓殑isCardWritten鐘舵��
+ updateCardWrittenStatus(cardAddr)
+ ToastUtil.show("鍐欏崱鎴愬姛!")
+ } else {
+ ToastUtil.show("鍐欏崱澶辫触: ${msg ?: "鏈煡閿欒"}")
+ }
}
}
})
}
+
+ CardOperationType.CancelCard -> TODO()
+ CardOperationType.CheckCard -> TODO()
+ CardOperationType.DeductCard -> TODO()
+ CardOperationType.Recharge -> TODO()
+ CardOperationType.ReplaceCard -> TODO()
+ null -> TODO()
}
} else {
ToastUtil.show("鍗$墖閿欒锛屽綋鍓嶅埛鐨勫崱涓庡垰鍒氱殑鍗′笉涓�鑷�")
@@ -113,7 +161,7 @@
try {
val cardRegistrationDao = BaseDaoSingleton.getInstance(this@NfcWreatActivity)
.cardRegistrationDao()
-
+
// 鏍规嵁鍗″彿鏌ユ壘CardRegistrationBean璁板綍
val cardRegistration = cardRegistrationDao.getByCardNumber(cardNumber)
if (cardRegistration != null) {
@@ -130,7 +178,7 @@
}
}
- fun postCardData(cardType: String, cardAddr: String, remark: String) {
+ fun postCardData(cardType: String, cardAddr: String) {
when (cardType) {
CardCommon.CHECK_CARD -> {
binding?.cardData?.text = "鍐欑敤鎴峰崱"
@@ -142,17 +190,14 @@
map["cardAddr"] = cardAddr
}
- if (cardType.isNotEmpty()) {
-// map["cardType"] = cardType
- map["operateType"] = "1"
- }
- if (remark.isNotEmpty()) {
- map["remarks"] = remark
+ map["operateType"] = operationTypeCode
+ if (orderNumber.isNotEmpty()) {
+ map["orderNumber"] = orderNumber
}
// 浣跨敤姝g‘鐨勭被鍨嬪弬鏁�
ApiManager.getInstance().requestPostLoading(
this,
- "/sell/card/call_back",
+ "terminal/card/termCallBack",
String::class.java,
map,
object : SubscriberListener<BaseResponse<String>>() {
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 7d16b06..8e43c3d 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
@@ -106,19 +106,26 @@
val data = ByteArray(16)
try {
// 璁剧疆鍥藉琛屾斂鍖哄煙鍙�(BCD鏍煎紡锛�6瀛楄妭锛�0-5浣�)
- val areaCodeBytes = BcdUtil.strToBcd(String.format("%012d", areaNumber))
- System.arraycopy(areaCodeBytes, 0, data, 0, 6)
+ val areaNumberStr = if (areaNumber.isBlank() || !areaNumber.all { it.isDigit() }) {
+ "000000000000"
+ } else {
+ areaNumber.padStart(12, '0')
+ }
+ val areaCodeBytes = BcdUtil.strToBcd(areaNumberStr)
+ System.arraycopy(areaCodeBytes, 0, data, 0, minOf(areaCodeBytes.size, 6))
- // 璁剧疆鐢ㄦ埛鍗$紪鍙�(HEX鏍煎紡锛�2瀛楄妭锛�6-7浣�)
+ // 璁剧疆鐢ㄦ埛鍗$紪鍙�(HEX鏍煎紡锛�2瀛楄妭锛�6-7浣�) - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
val userCodeBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(userCodeNumber))
- System.arraycopy(userCodeBytes, 0, data, 6, 2)
+ val userCodePadded = ByteArray(2)
+ System.arraycopy(userCodeBytes, 0, userCodePadded, 0, minOf(userCodeBytes.size, 2))
+ System.arraycopy(userCodePadded, 0, data, 6, 2)
// 璁剧疆鍗$被鍨�(8浣�)
data[8] = HexUtil.hexToByte(cardType)
// 璁剧疆鎵嬫満鍙�(BCD鏍煎紡锛�6瀛楄妭锛�9-14浣�)
val phoneBytes = BcdUtil.strToBcd(phoneNumber.padStart(12, '0'))
- System.arraycopy(phoneBytes, 0, data, 9, 6)
+ System.arraycopy(phoneBytes, 0, data, 9, minOf(phoneBytes.size, 6))
// 璁剧疆鏍¢獙鍜�(15浣�)
data[15] = getByteSum(data)
@@ -135,17 +142,25 @@
try {
data[0] = projectCode.toByte()
- // 璁剧疆浣欓
- val balanceBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(balance))
- System.arraycopy(balanceBytes, 0, data, 1, 4)
+ // 璁剧疆浣欓 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
+ val balanceHex = HexUtil.get10To16LowHigh(balance)
+ val balanceBytes = HexUtil.hexToByteArray(balanceHex)
+ val balancePadded = ByteArray(4)
+ System.arraycopy(balanceBytes, 0, balancePadded, 0, minOf(balanceBytes.size, 4))
+ System.arraycopy(balancePadded, 0, data, 1, 4)
- // 璁剧疆鍓╀綑姘撮噺
- val waterBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusWater))
- System.arraycopy(waterBytes, 0, data, 5, 4)
+ // 璁剧疆鍓╀綑姘撮噺 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
+ val waterHex = HexUtil.get10To16LowHigh(surplusWater)
+ val waterBytes = HexUtil.hexToByteArray(waterHex)
+ val waterPadded = ByteArray(4)
+ System.arraycopy(waterBytes, 0, waterPadded, 0, minOf(waterBytes.size, 4))
+ System.arraycopy(waterPadded, 0, data, 5, 4)
- // 璁剧疆鐢典环
+ // 璁剧疆鐢典环 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice))
- System.arraycopy(priceBytes, 0, data, 9, 2)
+ val pricePadded = ByteArray(2)
+ System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
+ System.arraycopy(pricePadded, 0, data, 9, 2)
// 璁剧疆鍏呭�兼椂闂�
rechargeDate?.let {
@@ -167,16 +182,24 @@
fun toBytes(): ByteArray {
val data = ByteArray(16)
try {
- // 澶囦唤浣欓鍜屾按閲忔暟鎹�
- val balanceBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(balance))
- System.arraycopy(balanceBytes, 0, data, 1, 4)
+ // 澶囦唤浣欓鍜屾按閲忔暟鎹� - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
+ val balanceHex = HexUtil.get10To16LowHigh(balance)
+ val balanceBytes = HexUtil.hexToByteArray(balanceHex)
+ val balancePadded = ByteArray(4)
+ System.arraycopy(balanceBytes, 0, balancePadded, 0, minOf(balanceBytes.size, 4))
+ System.arraycopy(balancePadded, 0, data, 1, 4)
- val waterBytes = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusWater))
- System.arraycopy(waterBytes, 0, data, 5, 4)
+ val waterHex = HexUtil.get10To16LowHigh(surplusWater)
+ val waterBytes = HexUtil.hexToByteArray(waterHex)
+ val waterPadded = ByteArray(4)
+ System.arraycopy(waterBytes, 0, waterPadded, 0, minOf(waterBytes.size, 4))
+ System.arraycopy(waterPadded, 0, data, 5, 4)
- // 璁剧疆姘翠环
+ // 璁剧疆姘翠环 - 淇锛氱‘淇濇暟缁勯暱搴︽纭�
val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(waterPrice))
- System.arraycopy(priceBytes, 0, data, 9, 2)
+ val pricePadded = ByteArray(2)
+ System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
+ System.arraycopy(pricePadded, 0, data, 9, 2)
// 璁剧疆鍏呭�兼椂闂�
rechargeDate?.let {
diff --git a/generallibrary/src/main/java/com/dayu/general/bean/db/CardRegistrationBean.kt b/generallibrary/src/main/java/com/dayu/general/bean/db/CardRegistrationBean.kt
index 9cfdc91..42faeda 100644
--- a/generallibrary/src/main/java/com/dayu/general/bean/db/CardRegistrationBean.kt
+++ b/generallibrary/src/main/java/com/dayu/general/bean/db/CardRegistrationBean.kt
@@ -11,7 +11,7 @@
val userName: String, // 濮撳悕
val idCard: String, // 韬唤璇佸彿
val clientId: String, // 鍐滄埛Id
- val cardFee: Double, // 宸ユ湰璐�
+ val cardFee: Int, // 宸ユ湰璐�
val remark: String, // 澶囨敞
val paymentMethod: Int, // 鏀粯鏂瑰紡
val orderId: String? = null, // 璁㈠崟id锛屽垵濮嬩负null锛屽悗缁洿鏂�
diff --git a/generallibrary/src/main/java/com/dayu/general/bean/net/NewCardResult.kt b/generallibrary/src/main/java/com/dayu/general/bean/net/NewCardResult.kt
index 8b36f14..746a635 100644
--- a/generallibrary/src/main/java/com/dayu/general/bean/net/NewCardResult.kt
+++ b/generallibrary/src/main/java/com/dayu/general/bean/net/NewCardResult.kt
@@ -1,7 +1,7 @@
package com.dayu.general.bean.net
data class NewCardDataResult(
- var projectNo: String,
+ var projectNo: Int,
var cardNum: String,
var balance: String,
var waterPrice: String,
diff --git a/generallibrary/src/main/java/com/dayu/general/tool/CardOperationType.kt b/generallibrary/src/main/java/com/dayu/general/tool/CardOperationType.kt
new file mode 100644
index 0000000..aee7aa4
--- /dev/null
+++ b/generallibrary/src/main/java/com/dayu/general/tool/CardOperationType.kt
@@ -0,0 +1,28 @@
+package com.dayu.general.tool
+
+/**
+ * 鍗$墖鎿嶄綔绫诲瀷
+ * 鐢ㄤ簬鍖哄垎涓嶅悓鐨勫崱鐗囨搷浣�
+ */
+sealed class CardOperationType(val code: Int, val description: String) {
+ object OpenCard : CardOperationType(1, "寮�鍗�")
+ object Recharge : CardOperationType(2, "鍏呭��")
+ object CancelCard : CardOperationType(3, "閿�鍗�")
+ object ReplaceCard : CardOperationType(4, "琛ュ崱")
+ object DeductCard : CardOperationType(5, "琛ユ墸")
+ object CleanCard : CardOperationType(6, "娓呴浂鍗�")
+ object CheckCard : CardOperationType(7, "妫�鏌ュ崱")
+
+ companion object {
+ fun fromCode(code: Int): CardOperationType? {
+ return when (code) {
+ 1 -> OpenCard
+ 2 -> Recharge
+ 3 -> CancelCard
+ 4 -> ReplaceCard
+ 5 -> DeductCard
+ else -> null
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/generallibrary/src/main/res/layout/activity_new_card_ge.xml b/generallibrary/src/main/res/layout/activity_new_card_ge.xml
index c1c2477..b1cb270 100644
--- a/generallibrary/src/main/res/layout/activity_new_card_ge.xml
+++ b/generallibrary/src/main/res/layout/activity_new_card_ge.xml
@@ -303,7 +303,7 @@
android:layout_height="wrap_content"
android:background="@null"
android:hint="璇疯緭鍏ュ伐鏈垂(閫夊~)"
- android:inputType="numberDecimal"
+ android:inputType="number"
android:textColor="#333333"
android:textColorHint="#BBBBBB"
android:textSize="@dimen/new_card_size" />
--
Gitblit v1.8.0