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 | 51 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 31 insertions(+), 20 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 8ea5625..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 // 鏇存柊鏀粯鏂瑰紡鏄剧ず @@ -267,7 +267,7 @@ binding.redRemainderBlance.text = "$balance 鍏�" // 璁剧疆鍗$姸鎬佸拰瀵瑰簲棰滆壊 - val cardStatus = when (info.status) { + val cardStatus = when (info.state) { 1 -> "姝e父" 2 -> "鎸傚け" 3 -> "閿佸畾" @@ -277,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") // 绾㈣壊-閿佸畾 @@ -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) } // 璁剧疆鍏朵粬蹇呰淇℃伅 @@ -433,7 +444,7 @@ putExtra("bonusAmount", bonusAmount) // 浼犻�掕禒閫侀噾棰� } startActivity(intent) - + finish() } catch (e: Exception) { ToastUtil.show("鍚姩鍐欏崱鐣岄潰澶辫触: ${e.message}") } -- Gitblit v1.8.0