From a1202e01bdf133d7c10be4d6018d665622673bf8 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 19 六月 2025 16:38:18 +0800
Subject: [PATCH] feat(generallibrary): 充值成功后展示余额信息
---
generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt | 78 ++++++++++++++++++++++++++++++++------
1 files changed, 65 insertions(+), 13 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt b/generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt
index 8e52159..bb69c99 100644
--- a/generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt
+++ b/generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt
@@ -5,15 +5,21 @@
import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
+import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.utils.ToastUtil
+import com.dayu.general.BaseApplication
import com.dayu.general.R
import com.dayu.general.databinding.DialogCardRefundBinding
+import com.dayu.general.net.ApiManager
+import com.dayu.general.net.BaseResponse
/**
- *
+ *鍗$墖鎸傚け瀵硅瘽妗�
*/
class CardRefundDialog(context: Context) : Dialog(context) {
private var binding: DialogCardRefundBinding? = null
- private var onConfirmListener: (( String, String) -> Unit)? = null
+ private var onConfirmListener: ((String, String) -> Unit)? = null
+ private var onSuccessListener: (() -> Unit)? = null
private var username: String? = null
private var cardNumber: String? = null
private var balance: String? = null
@@ -40,14 +46,9 @@
binding?.btnConfirm?.setOnClickListener {
val refundAmount = binding?.etRefundAmount?.text.toString()
val remark = binding?.etRemark?.text.toString()
-
- if (refundAmount.isEmpty()) {
- // TODO: 鏄剧ず閿欒鎻愮ず
- return@setOnClickListener
- }
-
- onConfirmListener?.invoke(refundAmount, remark)
- dismiss()
+
+ // 璋冪敤鎸傚け鎺ュ彛
+ callReportLossApi(refundAmount, remark)
}
// 濡傛灉鏈夐璁剧殑鐢ㄦ埛淇℃伅锛岃缃畠浠�
@@ -71,15 +72,66 @@
this.username = username
this.cardNumber = cardNumber
this.balance = balance
-
+
binding?.apply {
tvUsernameValue.text = username
tvCardNumberValue.text = cardNumber
- etBalance.setText(balance+"鍏�")
+ etBalance.setText(balance + "鍏�")
}
}
- fun setOnConfirmListener(listener: ( String, String) -> Unit) {
+ fun setOnConfirmListener(listener: (String, String) -> Unit) {
onConfirmListener = listener
}
+
+ fun setOnSuccessListener(listener: () -> Unit) {
+ onSuccessListener = listener
+ }
+
+ /**
+ * 璋冪敤鎸傚け鎺ュ彛
+ */
+ private fun callReportLossApi(refundAmount: String, remark: String) {
+ val params = mutableMapOf<String, Any>()
+ params["cardNum"] = cardNumber ?: ""
+
+ // 澶勭悊浣欓鏍煎紡锛屽幓闄ゅ崈浣嶅垎闅旂閫楀彿鍜�"鍏�"瀛楃
+ val balanceValue = balance?.replace("鍏�", "")?.replace(",", "")?.toFloatOrNull() ?: 0f
+ params["money"] = balanceValue
+
+ params["refund"] = refundAmount.toFloatOrNull() ?: 0f
+ params["remarks"] = remark.ifEmpty { "鎸傚け" }
+ params["operator"] = BaseApplication.userId
+
+ ApiManager.getInstance().requestPostLoading(
+ context,
+ "terminal/card/termReportLoss",
+ ReportLossResult::class.java,
+ params,
+ object : SubscriberListener<BaseResponse<ReportLossResult>>() {
+ override fun onNext(response: BaseResponse<ReportLossResult>) {
+ if (response.success && response.code == "0001") {
+ ToastUtil.show("鎸傚け鎴愬姛")
+ onConfirmListener?.invoke(refundAmount, remark)
+ onSuccessListener?.invoke()
+ dismiss()
+ } else {
+ ToastUtil.show(response.msg ?: "鎸傚け澶辫触")
+ }
+ }
+
+ override fun onError(e: Throwable?) {
+ super.onError(e)
+ ToastUtil.show("鎸傚け澶辫触: ${e?.message ?: "缃戠粶閿欒"}")
+ }
+ }
+ )
+ }
+
+ /**
+ * 鎸傚け鎺ュ彛杩斿洖缁撴灉
+ */
+ data class ReportLossResult(
+ val content: Boolean? = null
+ )
}
\ No newline at end of file
--
Gitblit v1.8.0