From 5edfd12deb166302708857515a833d1471a0f208 Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期三, 25 六月 2025 16:15:23 +0800
Subject: [PATCH] feat(database): 增加管理卡相关功能并优化数据库结构- 新增 ManagerCardBean 数据类用于管理卡信息 - 在 AppDataBase 中添加 ManagerCardDao 接口 - 实现管理卡的数据库迁移策略 - 优化支付方式 ID 类型,从 Long改为 String - 重构更新写卡和上报状态的逻辑,支持管理卡和用户卡

---
 generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt |   45 ++++++++++++++++++++++++++++-----------------
 1 files changed, 28 insertions(+), 17 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 f460d84..3ec2878 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
@@ -38,7 +38,7 @@
 
     // 鏀粯鏂瑰紡鐩稿叧灞炴��
     private var paymentMethod: String = "鐜伴噾"
-    private var paymentId: Long = 0
+    private var paymentId: String = ""
     private var paymentMethodList: List<PaymentMethod> = listOf()
 
     companion object {
@@ -154,14 +154,14 @@
     private fun getPaymentMethods() {
         ApiManager.getInstance().requestGetLoading(
             this,
-            "sell/paymentmethod/get",
-            PaymentMethodResponse::class.java,
+            "terminal/paymentmethod/get",
+            Array<PaymentMethod>::class.java,
             null,
-            object : SubscriberListener<BaseResponse<PaymentMethodResponse>>() {
-                override fun onNext(response: BaseResponse<PaymentMethodResponse>) {
+            object : SubscriberListener<BaseResponse<Array<PaymentMethod>>>() {
+                override fun onNext(response: BaseResponse<Array<PaymentMethod>>) {
                     if (response.success) {
-                        // 鑾峰彇鏀粯鏂瑰紡鍒楄〃
-                        val paymentMethods = response.content?.obj ?: listOf()
+                        // 鑾峰彇鏀粯鏂瑰紡鍒楄〃锛岀幇鍦╟ontent鐩存帴鏄疨aymentMethod鏁扮粍
+                        val paymentMethods = response.content?.toList() ?: listOf()
                         if (paymentMethods.isNotEmpty()) {
                             paymentMethodList = paymentMethods
                             // 鏇存柊鏀粯鏂瑰紡鏄剧ず
@@ -322,6 +322,25 @@
             0.0
         }
 
+        // 鑾峰彇褰撳墠浣欓锛堣浆鎹负鍏冿級
+        val currentBalance = userCard?.let {
+            // 灏嗗垎杞崲涓哄厓
+            it.balance / 100.0
+        } ?: run {
+            // 濡傛灉鐢ㄦ埛鍗′负绌猴紝鍒欎娇鐢ㄦ湇鍔″櫒杩斿洖鐨勪綑棰�
+            cardInfo?.balance ?: 0.0
+        }
+
+        // 璁$畻鍏呭�煎悗鐨勬�讳綑棰�
+        val totalAmountAfterRecharge = currentBalance + rechargeAmount + bonusAmount
+
+        // 妫�鏌ユ槸鍚﹁秴杩囨渶澶т綑棰濋檺鍒�9999.99鍏�
+        if (totalAmountAfterRecharge > 9999.99) {
+            val maxRechargeAmount = 9999.99 - currentBalance
+            ToastUtil.show("鍏呭�煎け璐ワ細鍏呭�煎悗浣欓涓嶈兘瓒呰繃9999.99鍏僜n褰撳墠浣欓锛�${String.format("%.2f", currentBalance)}鍏僜n鏈�澶氬彲鍏呭�硷細${String.format("%.2f", maxRechargeAmount)}鍏�")
+            return
+        }
+
         // 璋冪敤鍏呭�兼帴鍙�
         callRechargeApi(rechargeAmount, bonusAmount)
     }
@@ -346,7 +365,7 @@
             money = String.format("%.0f", rechargeAmount),
             amount = String.format("%.0f", bonusAmount),
             gift = String.format("%.0f", bonusAmount),
-            paymentId = paymentId.toString(),
+            paymentId = paymentId,
             price = String.format("%.2f", currentWaterPrice), // 浣跨敤缁熶竴鑾峰彇鐨勬按浠�
             remarks = "鍏呭��",
             operator = BaseApplication.userId // 榛樿鎿嶄綔鍛業D锛屽彲浠ユ牴鎹疄闄呮儏鍐佃皟鏁�
@@ -405,15 +424,7 @@
             val userCard = UserCard().apply {
                 // 璁剧疆鐢ㄦ埛鍗′俊鎭�
                 cardInfo?.let { info ->
-                    userCode = info.cardNum ?: ""
-
-                    // 璁$畻鏂颁綑棰濓細鍘熸湁浣欓 + 鍏呭�奸噾棰� + 璧犻�侀噾棰�
-                    val originalBalance =
-                        this@RechargeDetailActivity.userCard?.balance ?: 0 // 鍘熸湁浣欓锛堝垎锛�
-                    val rechargeAmountInCents = (rechargeAmount * 100).toInt() // 鍏呭�奸噾棰濊浆鍒�
-                    val bonusAmountInCents = (bonusAmount * 100).toInt() // 璧犻�侀噾棰濊浆鍒�
-
-                    balance = originalBalance + rechargeAmountInCents + bonusAmountInCents
+                    balance = MornyUtil.changeY2F(rechargeResult.balance)
                 }
 
                 // 璁剧疆鍏朵粬蹇呰淇℃伅

--
Gitblit v1.8.0