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