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