From 87e5604ad04c0b7aaacf3d52bae85e62d308cb6d Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期四, 26 六月 2025 16:41:02 +0800
Subject: [PATCH] refactor(generallibrary):重构开卡成功界面并移除未使用的开卡界面
---
generallibrary/src/main/java/com/dayu/general/activity/CardReplaceActivity.kt | 538 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 412 insertions(+), 126 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/CardReplaceActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/CardReplaceActivity.kt
index fae0023..59dfd9b 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/CardReplaceActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/CardReplaceActivity.kt
@@ -1,173 +1,459 @@
package com.dayu.general.activity
+import android.content.Context
+import android.content.Intent
import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.inputmethod.EditorInfo
-import androidx.recyclerview.widget.LinearLayoutManager
import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.utils.MornyUtil
import com.dayu.baselibrary.utils.ToastUtil
-import com.dayu.general.adapter.CardReplaceAdapter
-import com.dayu.general.bean.net.CardReplaceInfo
-import com.dayu.general.bean.net.CardReplaceResponse
+import com.dayu.baselibrary.view.TipDialog
+import com.dayu.baselibrary.view.TitleBar
+import com.dayu.general.BaseApplication
+import com.dayu.general.bean.card.UserCard
+import com.dayu.general.bean.net.CardInfoByClientResult
+import com.dayu.general.bean.net.CardInfoResult
+import com.dayu.general.bean.net.CardReplaceResult
+import com.dayu.general.bean.net.PaymentMethod
import com.dayu.general.databinding.ActivityCardReplaceBinding
import com.dayu.general.net.ApiManager
import com.dayu.general.net.BaseResponse
-import com.scwang.smart.refresh.layout.api.RefreshLayout
-import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
+import com.dayu.general.tool.CardCommon
+import com.dayu.general.tool.CardOperationType
+import com.dayu.general.tool.NfcReadHelper
/**
- * 鍗$墖琛ュ姙Activity
+ * @author: zuo
+ * @desc: 琛ュ崱Activity
+ * @since: 2025/6/17
*/
-class CardReplaceActivity : BaseActivity() {
-
+class CardReplaceActivity : BaseNfcActivity() {
private lateinit var binding: ActivityCardReplaceBinding
- private var currentCardInfo: CardReplaceInfo? = null
- private lateinit var adapter: CardReplaceAdapter
-
- // 鍒嗛〉鍙傛暟
- private var pageCurr: Int = 1
- private val pageSize: Int = 20
- private var hasMoreData: Boolean = true
-
+ private var cardNumber: String? = null
+ private var cardInfo: CardInfoResult? = null
+ private var cardInfoByClient: CardInfoByClientResult? = null
+ private var userCard: UserCard? = null
+ private var cardNum: String? = null
+ private var newCardNumber: String? = null // 鏂板崱鍗″彿
+
+ // 鏀粯鏂瑰紡鐩稿叧灞炴��
+ private var paymentMethod: String = "鐜伴噾"
+ private var paymentId: String = ""
+ private var paymentMethodList: List<PaymentMethod> = listOf()
+
+ companion object {
+ /**
+ * 鍚姩琛ュ崱Activity
+ */
+ fun start(context: Context, clientNum: String) {
+ val intent = Intent(context, CardReplaceActivity::class.java)
+ intent.putExtra("cardNum", clientNum)
+ context.startActivity(intent)
+ }
+ }
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- binding = ActivityCardReplaceBinding.inflate(LayoutInflater.from(this))
+ binding = ActivityCardReplaceBinding.inflate(layoutInflater)
setContentView(binding.root)
-
+
+ // 鑾峰彇浼犻�掔殑clientNum鍙傛暟
+ cardNum = intent.getStringExtra("cardNum")
+
initView()
- initRecyclerView()
- setupRefreshLayout()
- loadCardReplaceList(true)
+
+ // 鏃犺鏄惁鏈塩lientNum锛岄兘鍏堟樉绀鸿鍗$晫闈紝绛夊緟鐢ㄦ埛鍒锋柊鍗�
+ resetToReadingState()
}
-
- /**
- * 鍒濆鍖栬鍥�
- */
+
private fun initView() {
- // 鍒濆鍖栨爣棰樻爮
- binding.titleBar.setOnItemclickListner(com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE) {
- finish()
+ // 璁剧疆TitleBar鐨勮繑鍥炴寜閽偣鍑讳簨浠�
+ binding.titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE) {
+ finish()
+ }
+
+ // 璁剧疆琛ュ崱鎸夐挳鐐瑰嚮浜嬩欢
+ binding.btnReplace.setOnClickListener {
+ performCardReplace()
}
}
-
+
+
+
+
/**
- * 鍒濆鍖朢ecyclerView
+ * 閲嶇疆鍒拌鍗$姸鎬�
*/
- private fun initRecyclerView() {
- // 鍒涘缓閫傞厤鍣�
- adapter = CardReplaceAdapter(this)
-
- // 璁剧疆甯冨眬绠$悊鍣ㄥ拰閫傞厤鍣�
- binding.recyclerView.apply {
- layoutManager = LinearLayoutManager(this@CardReplaceActivity)
- adapter = this@CardReplaceActivity.adapter
- }
-
- // 璁剧疆鍗$墖鐐瑰嚮鐩戝惉鍣� - 鐐瑰嚮鍒楄〃椤规椂鎵ц琛ュ姙鎿嶄綔
- adapter.setOnItemClickListener { cardInfo ->
- currentCardInfo = cardInfo
- // 鐩存帴鎵ц琛ュ姙鎿嶄綔
- performCardReplace(cardInfo)
- }
+ private fun resetToReadingState() {
+ binding.scrollReadCard.visibility = android.view.View.VISIBLE
+ binding.cardInfoContainer.visibility = android.view.View.GONE
+ binding.bottomButtonContainer.visibility = android.view.View.GONE
+ cardNumber = null
+ cardInfo = null
+ cardInfoByClient = null
+ newCardNumber = null
+ binding.etCardCost.setText("")
+ binding.etReturnAmount.setText("")
}
-
+
/**
- * 璁剧疆鍒锋柊甯冨眬
+ * 鏄剧ず纭瀵硅瘽妗�
*/
- private fun setupRefreshLayout() {
- binding.refreshLayout.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
- override fun onRefresh(refreshLayout: RefreshLayout) {
- // 涓嬫媺鍒锋柊锛岄噸缃〉鐮佸苟閲嶆柊鍔犺浇鏁版嵁
- pageCurr = 1
- hasMoreData = true
- loadCardReplaceList(true)
+ private fun showConfirmDialog(message: String, onConfirm: () -> Unit) {
+ val confirmDialog = TipDialog(this, message) {
+ onConfirm()
+ }
+ confirmDialog.show()
+ }
+
+ override fun onNfcBack(intent: Intent?) {
+ intent?.let {
+ // 澶勭悊姝e父鐨勮鍗℃搷浣�
+ handleNfcIntent(it)
+ } ?: run {
+ showConfirmDialog("NFC鏁版嵁寮傚父锛岃閲嶆柊鍒峰崱") {
}
-
- override fun onLoadMore(refreshLayout: RefreshLayout) {
- // 涓婃媺鍔犺浇鏇村
- if (hasMoreData) {
- pageCurr++
- loadCardReplaceList(false)
- } else {
- // 娌℃湁鏇村鏁版嵁鏃讹紝缁撴潫鍔犺浇鏇村
- refreshLayout.finishLoadMoreWithNoMoreData()
+ }
+ }
+
+ /**
+ * 澶勭悊NFC鍒峰崱淇℃伅
+ */
+ private fun handleNfcIntent(intent: Intent) {
+ try {
+ // 妫�鏌ntent涓槸鍚﹀寘鍚玁FC Tag
+ if (intent.getParcelableExtra<android.nfc.Tag>(android.nfc.NfcAdapter.EXTRA_TAG) == null) {
+ showConfirmDialog("鏈娴嬪埌NFC鍗$墖锛岃纭繚鍗$墖宸叉纭斁缃�") {
}
+ return
}
- })
- }
- /**
- * 鍔犺浇鍙ˉ鍔炲崱鐗囧垪琛�
- *
- * @param isRefresh 鏄惁涓哄埛鏂版搷浣滐紙true: 鍒锋柊锛宖alse: 鍔犺浇鏇村锛�
- */
- private fun loadCardReplaceList(isRefresh: Boolean = true) {
- // 鏋勫缓鏌ヨ鍙傛暟
- val params = HashMap<String, Any>().apply {
- put("pageCurr", pageCurr)
- put("pageSize", pageSize)
- }
+ val nfcAdapter = NfcReadHelper.getInstance(intent, this)
+ val cardTypeAndCardNumber = nfcAdapter.getCardTypeAndCardNumber()
+ if (cardTypeAndCardNumber.isNullOrBlank() || !cardTypeAndCardNumber.contains(",")) {
+ showConfirmDialog("鍗$墖淇℃伅璇诲彇澶辫触锛岃閲嶆柊鍒峰崱") {
+ }
+ return
+ }
+ val parts = cardTypeAndCardNumber.split(",")
+ if (parts.size < 2) {
+ showConfirmDialog("鍗$墖淇℃伅鏍煎紡寮傚父锛岃閲嶆柊鍒峰崱") {
+ }
+ return
+ }
+ val readCardNumber = parts[0]
+ val cardType = parts[1]
- // 璋冪敤API鏌ヨ鎸傚け鍗$墖淇℃伅
- ApiManager.getInstance().requestGetLoading(
- this,
- "sell/clientcard/getUnreplaced",
- CardReplaceResponse::class.java,
- params,
- object : SubscriberListener<BaseResponse<CardReplaceResponse>>() {
- override fun onNext(response: BaseResponse<CardReplaceResponse>) {
- // 缁撴潫鍒锋柊鎴栧姞杞芥洿澶氱姸鎬�
- finishRefreshOrLoadMore(isRefresh)
-
- if (response.success) {
- val cardResponse = response.content
- val cardList = cardResponse?.obj ?: emptyList()
-
- // 鏇存柊鏁版嵁鍒楄〃
- if (isRefresh) {
- adapter.setData(cardList)
- } else {
- adapter.addData(cardList)
- }
-
- // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁
- hasMoreData = cardList.size >= pageSize
- if (!hasMoreData && !isRefresh) {
- binding.refreshLayout.finishLoadMoreWithNoMoreData()
- }
+ if (readCardNumber.isBlank()) {
+ showConfirmDialog("鍗″彿涓虹┖锛屾棤娉曡繘琛屾搷浣滐紝璇烽噸鏂板埛鍗�") {
+ }
+ return
+ }
+
+ // 淇濆瓨鏂板崱鍗″彿
+ this.newCardNumber = readCardNumber
+
+ when (cardType) {
+ "00" -> {
+ // 鐧藉崱鎵嶅彲浠ヨˉ鍗�
+ if (cardNum != null) {
+ // 濡傛灉鏈塩lientNum锛屼娇鐢╟lientNum鑾峰彇鍗′俊鎭�
+ getCardInfoByClientNum(cardNum!!)
} else {
- ToastUtil.show(response.msg)
+ showConfirmDialog("鑾峰彇鏃у崱淇℃伅鏁版嵁澶辫触") {
+ resetToReadingState()
+ }
}
}
-
+
+ CardCommon.USER_CARD_TYPE_1,
+ CardCommon.USER_CARD_TYPE_2,
+ CardCommon.USER_CARD_TYPE_3 -> {
+ // 鐢ㄦ埛鍗★細瑙f瀽鍗″唴鏁版嵁骞惰皟鐢ㄦ帴鍙�
+ showConfirmDialog("鐢ㄦ埛鍗′笉鏀寔琛ュ崱") {
+ resetToReadingState()
+ }
+ }
+
+ else -> {
+ showConfirmDialog("褰撳墠闈炵櫧鍗�") {
+ resetToReadingState()
+ }
+ }
+ }
+
+ } catch (e: Exception) {
+ showConfirmDialog("璇诲崱寮傚父锛�${e.message}") {
+ }
+ e.printStackTrace()
+ }
+ }
+
+
+ /**
+ * 澶勭悊鍗′俊鎭幏鍙栭敊璇�
+ */
+ private fun handleCardInfoError(code: String?, msg: String?) {
+ val errorMessage: String = when (code) {
+ "1001" -> {
+ "璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛屾棤娉曡繘琛岃ˉ鍗℃搷浣溿��"
+ }
+
+ else -> {
+ when {
+ msg.isNullOrBlank() -> "鑾峰彇鍗′俊鎭け璐ワ紝璇烽噸鏂板埛鍗¢噸璇曘��"
+ msg.contains("鏁版嵁涓嶅瓨鍦�") -> "璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛屾棤娉曡繘琛岃ˉ鍗℃搷浣溿��"
+ msg.contains("缃戠粶") -> "缃戠粶杩炴帴寮傚父锛岃妫�鏌ョ綉缁滆繛鎺ュ悗閲嶆柊鍒峰崱銆�"
+ msg.contains("瓒呮椂") -> "缃戠粶璇锋眰瓒呮椂锛岃閲嶆柊鍒峰崱閲嶈瘯銆�"
+ else -> "鑾峰彇鍗′俊鎭け璐ワ細$msg\n\n璇烽噸鏂板埛鍗¢噸璇曘��"
+ }
+ }
+ }
+
+ // 鏄剧ず閿欒淇℃伅鐨勫璇濇
+ showConfirmDialog(errorMessage) {
+ resetToReadingState()
+ }
+ }
+
+ /**
+ * 鎵ц琛ュ崱鎿嶄綔
+ */
+ private fun performCardReplace() {
+ // 楠岃瘉杈撳叆
+ val cardCostStr = binding.etCardCost.text.toString().trim()
+ val returnAmountStr = binding.etReturnAmount.text.toString().trim()
+
+ // 宸ユ湰璐归獙璇侊紙蹇呭~锛�
+ if (cardCostStr.isEmpty()) {
+ ToastUtil.show("璇疯緭鍏ュ伐鏈垂")
+ return
+ }
+
+ val cardCost = try {
+ val cost = cardCostStr.toDouble()
+ if (cost < 0) {
+ ToastUtil.show("宸ユ湰璐逛笉鑳戒负璐熸暟")
+ return
+ }
+ cost
+ } catch (e: NumberFormatException) {
+ ToastUtil.show("璇疯緭鍏ユ湁鏁堢殑宸ユ湰璐�")
+ return
+ }
+
+ // 杩斿洖閲戦楠岃瘉锛堝繀濉級
+ if (returnAmountStr.isEmpty()) {
+ ToastUtil.show("璇疯緭鍏ヨ繑鍥為噾棰�")
+ return
+ }
+
+ val returnAmount = try {
+ val amount = returnAmountStr.toDouble()
+ if (amount < 0) {
+ ToastUtil.show("杩斿洖閲戦涓嶈兘涓鸿礋鏁�")
+ return
+ }
+ amount
+ } catch (e: NumberFormatException) {
+ ToastUtil.show("璇疯緭鍏ユ湁鏁堢殑杩斿洖閲戦")
+ return
+ }
+
+ callReplaceCardApi(cardCost, returnAmount)
+ }
+
+ /**
+ * 璋冪敤琛ュ崱API鎺ュ彛
+ */
+ private fun callReplaceCardApi(cardCost: Double, returnAmount: Double) {
+ if (newCardNumber.isNullOrBlank()) {
+ ToastUtil.show("鏂板崱鍗″彿淇℃伅寮傚父锛岃閲嶆柊鍒峰崱")
+ return
+ }
+
+ val map = mutableMapOf<String, Any>()
+ map["cardAddr"] = newCardNumber!! // 浣跨敤鏂板崱鍗″彿
+
+ // 鏍规嵁鏁版嵁婧愰�夋嫨cardNum鍙傛暟
+ val cardNum = when {
+ cardInfo != null -> cardInfo!!.cardNum.toString()
+ cardInfoByClient != null -> cardInfoByClient!!.cardNum
+ else -> cardNumber ?: newCardNumber!!
+ }
+ map["cardNum"] = cardNum
+
+ map["cardCost"] = cardCost
+ map["returnAmount"] = returnAmount // 浣跨敤杩斿洖閲戦
+ map["paymentId"] = paymentId // 浣跨敤閫変腑鐨勬敮浠樻柟寮廔D
+ map["paymentMethod"] = paymentMethod // 娣诲姞鏀粯鏂瑰紡鍚嶇О
+ map["remarks"] = "琛ュ崱鎿嶄綔" // 鍥哄畾澶囨敞
+ map["operator"] = BaseApplication.userId
+
+ ApiManager.getInstance().requestPostLoading(
+ this,
+ "terminal/card/termReissue",
+ CardReplaceResult::class.java,
+ map,
+ object : SubscriberListener<BaseResponse<CardReplaceResult>>() {
+ override fun onNext(t: BaseResponse<CardReplaceResult>) {
+ if (t.success && t.content != null) {
+ // 琛ュ崱鎴愬姛锛岃烦杞埌鍐欏崱鐣岄潰
+ startWriteCardActivity(
+ t.content!!,
+ cardCost,
+ returnAmount,
+ createUserCardFromData()
+ )
+ } else {
+ // 琛ュ崱澶辫触
+ val errorMsg = if (t.msg.isNullOrBlank()) "琛ュ崱澶辫触锛岃閲嶈瘯" else t.msg
+ showConfirmDialog("琛ュ崱澶辫触锛�$errorMsg") {
+ }
+ }
+ }
+
override fun onError(e: Throwable?) {
- // 缁撴潫鍒锋柊鎴栧姞杞芥洿澶氱姸鎬�
- finishRefreshOrLoadMore(isRefresh)
- ToastUtil.show("鏌ヨ澶辫触: ${e?.message ?: "鏈煡閿欒"}")
+ super.onError(e)
+ showConfirmDialog("琛ュ崱璇锋眰澶辫触: ${e?.message ?: "缃戠粶寮傚父锛岃妫�鏌ョ綉缁滆繛鎺�"}") {
+ }
}
}
)
}
-
+
/**
- * 缁撴潫鍒锋柊鎴栧姞杞芥洿澶氱姸鎬�
+ * 鏍规嵁鐜版湁鏁版嵁鍒涘缓UserCard瀵硅薄
*/
- private fun finishRefreshOrLoadMore(isRefresh: Boolean) {
- if (isRefresh) {
- binding.refreshLayout.finishRefresh()
- } else {
- binding.refreshLayout.finishLoadMore()
+ private fun createUserCardFromData(): UserCard {
+ return when {
+ userCard != null -> userCard!!
+ cardInfoByClient != null -> {
+ // 浠庢帴鍙f暟鎹垱寤篣serCard瀵硅薄
+ UserCard().apply {
+ // 杩欓噷鍙兘闇�瑕佹牴鎹疄闄呴渶姹傝缃洿澶氬睘鎬�
+ balance = MornyUtil.changeY2F(cardInfoByClient!!.money)
+ phoneNumber = cardInfoByClient!!.phone.toString()
+ }
+ }
+
+ else -> UserCard() // 杩斿洖绌虹殑UserCard瀵硅薄
}
}
-
+
/**
- * 鎵ц鍗$墖琛ュ姙鎿嶄綔
+ * 璺宠浆鍒板啓鍗$晫闈㈣繘琛屽崱鍐呭鏇存柊
*/
- private fun performCardReplace(cardInfo: CardReplaceInfo) {
- // 杩欓噷瀹炵幇鍗$墖琛ュ姙鐨勪笟鍔¢�昏緫
- ToastUtil.show("閫夋嫨浜嗗崱鐗囪繘琛岃ˉ鍔烇細${cardInfo.cardNum}")
+ private fun startWriteCardActivity(
+ replaceResult: CardReplaceResult,
+ cardCost: Double,
+ returnAmount: Double,
+ userCard: UserCard
+ ) {
+ // 鍒涘缓鏇存柊鍚庣殑鐢ㄦ埛鍗℃暟鎹�
+ val updatedUserCard = UserCard().apply {
+ // 澶嶅埗鍘熸湁灞炴��
+ cardType = userCard.cardType
+ areaNumber = userCard.areaNumber
+ userCode = userCard.userCode
+ userCodeNumber = userCard.userCodeNumber
+ phoneNumber = userCard.phoneNumber
+ projectCode = userCard.projectCode
+ surplusWater = userCard.surplusWater
+ waterPrice = userCard.waterPrice
+ electricPrice = userCard.electricPrice
+ rechargeDate = userCard.rechargeDate
+
+ // 浣跨敤杩斿洖鐨勬柊浣欓
+ balance = MornyUtil.changeY2F(replaceResult.balance.toString())
+ }
+
+ val intent = Intent(this, NfcWreatActivity::class.java).apply {
+ putExtra("cardAddr", newCardNumber) // 浣跨敤鏂板崱鍗″彿
+ putExtra("operationTypeCode", CardOperationType.ReplaceCard.code) // 浣跨敤琛ュ崱绫诲瀷杩涜鍐欏崱
+ putExtra("orderNumber", replaceResult.orderNo)
+ putExtra("cardCost", cardCost)
+ putExtra("returnAmount", returnAmount) // 浼犻�掕繑鍥為噾棰�
+ putExtra("paymentMethod", paymentMethod) // 浼犻�掓敮浠樻柟寮�
+ putExtra("paymentId", paymentId) // 浼犻�掓敮浠樻柟寮廔D
+ putExtra("userCard", updatedUserCard as java.io.Serializable)
+ putExtra("cardInfo", cardInfo)
+ }
+ startActivity(intent)
+ finish()
+ }
+
+ /**
+ * 鏍规嵁瀹㈡埛缂栧彿鑾峰彇鍗′俊鎭�
+ */
+ private fun getCardInfoByClientNum(cardNum: String) {
+ val map = mutableMapOf<String, Any>()
+ map["cardNum"] = cardNum
+
+ ApiManager.getInstance().requestGetLoading(
+ this,
+ "terminal/card/getcardbycardnum",
+ CardInfoByClientResult::class.java,
+ map,
+ object : SubscriberListener<BaseResponse<CardInfoByClientResult>>() {
+ override fun onNext(t: BaseResponse<CardInfoByClientResult>) {
+ if (t.success) {
+ cardInfoByClient = t.content
+ t.content?.let { cardInfo ->
+ // 鏄剧ず鍗′俊鎭苟鍒囨崲鍒颁俊鎭樉绀虹晫闈�
+ showCardInfoFromClient(cardInfo)
+ }
+ } else {
+ showConfirmDialog("鑾峰彇鍗′俊鎭け璐ワ細${t.msg ?: "鏈煡閿欒"}") {
+ }
+ }
+ }
+
+ override fun onError(e: Throwable?) {
+ super.onError(e)
+ showConfirmDialog("鑾峰彇鍗′俊鎭け璐�: ${e?.message ?: "缃戠粶寮傚父锛岃妫�鏌ョ綉缁滆繛鎺�"}") {
+ }
+ }
+ }
+ )
+ }
+
+ /**
+ * 鏄剧ず浠庡鎴风紪鍙锋帴鍙h幏鍙栫殑鍗′俊鎭�
+ */
+ private fun showCardInfoFromClient(cardInfo: CardInfoByClientResult) {
+ // 闅愯棌璇诲崱鎻愮ず锛屾樉绀轰俊鎭尯鍩熷拰搴曢儴鎸夐挳
+ binding.scrollReadCard.visibility = android.view.View.GONE
+ binding.cardInfoContainer.visibility = android.view.View.VISIBLE
+ binding.bottomButtonContainer.visibility = android.view.View.VISIBLE
+
+ // 鏄剧ず鏂板崱鍗″彿锛堝鏋滃凡璇诲彇鍒版柊鍗★級
+ binding.tvCurrentCardAddress.text = newCardNumber ?: ""
+
+ // 鏄剧ず鍗′俊鎭�
+ binding.tvUserName.text = cardInfo.clientName
+ binding.tvPhone.text = cardInfo.phone.toString()
- // TODO: 璋冪敤琛ュ姙鍗$墖API
+ // 鏄剧ず鍗″彿
+ binding.tvCardNumber.text = cardInfo.cardNum ?: "--"
+
+ // 鏄剧ず瀹㈡埛缂栧彿
+ binding.tvCustomerId.text = cardInfo.clientNum ?: "--"
+
+ // 鏍规嵁cardState瀛楁鏄剧ず鐘舵��
+ val (statusText, statusColor) = when (cardInfo.cardState) {
+ 1 -> Pair("姝e父", android.graphics.Color.parseColor("#4CAF50")) // 缁胯壊
+ 2 -> Pair("宸叉敞閿�", android.graphics.Color.parseColor("#FF5722")) // 娣辨鑹�
+ 3 -> Pair("宸叉寕澶�", android.graphics.Color.parseColor("#FF9800")) // 姗欒壊
+ 4 -> Pair("鏃犳晥鍗$墖", android.graphics.Color.parseColor("#F44336")) // 绾㈣壊
+ else -> Pair("鏈煡鐘舵��", android.graphics.Color.parseColor("#9E9E9E")) // 鐏拌壊
+ }
+ binding.tvCardStatus.text = statusText
+ binding.tvCardStatus.setTextColor(statusColor)
+
+ // 鏄剧ず浣欓
+ binding.tvCardBalance.text = "${cardInfo.money}鍏�"
+
+ // 璁剧疆cardNumber鐢ㄤ簬鍚庣画API璋冪敤
+ cardNumber = cardInfo.cardNum
}
}
\ No newline at end of file
--
Gitblit v1.8.0