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