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/activity/RechargeDetailActivity.kt | 56 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 30 insertions(+), 26 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
index d8d053a..65a9a42 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
@@ -12,6 +12,7 @@
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.utils.MornyUtil
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.baselibrary.view.TitleBar
import com.dayu.general.BaseApplication
@@ -25,6 +26,7 @@
import com.dayu.general.databinding.ActivityRechargeDetailBinding
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
class RechargeDetailActivity : AppCompatActivity() {
@@ -44,7 +46,12 @@
private const val EXTRA_CARD_ADDRESS = "extra_card_address"
private const val EXTRA_USER_CARD = "extra_user_card"
- fun start(context: Context, cardInfo: CardInfoResult?, cardAddress: String?, userCard: UserCard?) {
+ fun start(
+ context: Context,
+ cardInfo: CardInfoResult?,
+ cardAddress: String?,
+ userCard: UserCard?
+ ) {
val intent = Intent(context, RechargeDetailActivity::class.java)
intent.putExtra(EXTRA_CARD_INFO, cardInfo)
intent.putExtra(EXTRA_CARD_ADDRESS, cardAddress)
@@ -85,7 +92,7 @@
// 澶勭悊鍏呭�奸�昏緫
handleRecharge()
}
-
+
// 璁剧疆閲戦杈撳叆闄愬埗
setupAmountInputLimit(binding.rechargeMorny)
setupAmountInputLimit(binding.rechargeWater)
@@ -97,13 +104,13 @@
private fun setupAmountInputLimit(editText: EditText) {
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
-
+
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
-
+
override fun afterTextChanged(s: Editable?) {
val text = s.toString()
if (text.isEmpty()) return
-
+
// 妫�鏌ユ槸鍚﹀寘鍚皬鏁扮偣
if (text.contains(".")) {
val parts = text.split(".")
@@ -119,7 +126,7 @@
}
}
}
-
+
// 闃叉杈撳叆澶氫釜灏忔暟鐐�
val dotCount = text.count { it == '.' }
if (dotCount > 1) {
@@ -129,7 +136,7 @@
editText.setSelection(newText.length)
editText.addTextChangedListener(this)
}
-
+
// 闃叉浠ュ皬鏁扮偣寮�澶�
if (text.startsWith(".")) {
editText.removeTextChangedListener(this)
@@ -248,9 +255,9 @@
binding.redInitCode.text = cardAddress ?: ""
binding.userName.text = info.userName ?: ""
binding.redCardNum.text = info.cardNum ?: ""
-
+
// 浣跨敤鐢ㄦ埛鍗′腑鐨勪綑棰濇樉绀�
- val balance = userCard?.let {
+ val balance = userCard?.let {
// 灏嗗垎杞崲涓哄厓锛屼繚鐣欎袱浣嶅皬鏁�
String.format("%.2f", it.balance / 100.0)
} ?: run {
@@ -260,7 +267,7 @@
binding.redRemainderBlance.text = "$balance 鍏�"
// 璁剧疆鍗$姸鎬佸拰瀵瑰簲棰滆壊
- val cardStatus = when (info.status) {
+ val cardStatus = when (info.state) {
1 -> "姝e父"
2 -> "鎸傚け"
3 -> "閿佸畾"
@@ -270,7 +277,7 @@
binding.redStatu.text = cardStatus
// 鏍规嵁鍗$姸鎬佽缃笉鍚岄鑹�
- val statusColor = when (info.status) {
+ val statusColor = when (info.state) {
1 -> android.graphics.Color.parseColor("#4CAF50") // 缁胯壊-姝e父
2 -> android.graphics.Color.parseColor("#FF9800") // 姗欒壊-鎸傚け
3 -> android.graphics.Color.parseColor("#F44336") // 绾㈣壊-閿佸畾
@@ -388,40 +395,37 @@
/**
* 鍚姩鍐欏崱鐣岄潰
*/
- private fun startWriteCardActivity(rechargeResult: RechargeResult, rechargeAmount: Double, bonusAmount: Double) {
+ private fun startWriteCardActivity(
+ rechargeResult: RechargeResult,
+ rechargeAmount: Double,
+ bonusAmount: Double
+ ) {
try {
// 鍒涘缓UserCard瀵硅薄鐢ㄤ簬鍐欏崱
val userCard = UserCard().apply {
// 璁剧疆鐢ㄦ埛鍗′俊鎭�
cardInfo?.let { info ->
- userCode = info.cardNum ?: ""
- balance = ((rechargeAmount + bonusAmount) * 100).toInt() // 杞崲涓哄垎
+ balance = MornyUtil.changeY2F(rechargeResult.balance)
}
-
+
// 璁剧疆鍏朵粬蹇呰淇℃伅
projectCode = rechargeResult.projectNo
- waterPrice = rechargeResult.waterPrice.toFloat()
+ waterPrice = MornyUtil.changeY2F(rechargeResult.waterPrice.toString())
rechargeDate = java.util.Calendar.getInstance()
}
// 鍚姩鍐欏崱Activity
val intent = Intent(this, NfcWreatActivity::class.java).apply {
- putExtra("cardType", "USER_CARD") // 鐢ㄦ埛鍗$被鍨�
+ putExtra("cardType", USER_CARD_TYPE_1) // 鐢ㄦ埛鍗$被鍨�
putExtra("cardAddr", cardAddress)
putExtra("operationTypeCode", CardOperationType.Recharge.code)
putExtra("orderNumber", rechargeResult.orderNo)
putExtra("userCard", userCard)
+ putExtra("rechargeAmount", rechargeAmount) // 浼犻�掑厖鍊奸噾棰�
+ putExtra("bonusAmount", bonusAmount) // 浼犻�掕禒閫侀噾棰�
}
-
startActivity(intent)
-
- // 鏄剧ず鎴愬姛淇℃伅
- val formattedRecharge = String.format("%.2f", rechargeAmount)
- val formattedBonus = String.format("%.2f", bonusAmount)
- val formattedTotal = String.format("%.2f", rechargeAmount + bonusAmount)
-
- ToastUtil.show("鍏呭�艰鍗曞垱寤烘垚鍔焅n璁㈠崟鍙�: ${rechargeResult.orderNo}\n鍏呭�奸噾棰�: ${formattedRecharge}鍏僜n璧犻�侀噾棰�: ${formattedBonus}鍏僜n鎬婚噾棰�: ${formattedTotal}鍏僜n璇疯创鍗¤繘琛屽啓鍗℃搷浣�")
-
+ finish()
} catch (e: Exception) {
ToastUtil.show("鍚姩鍐欏崱鐣岄潰澶辫触: ${e.message}")
}
--
Gitblit v1.8.0