左晓为主开发手持机充值管理机
zuoxiao
5 天以前 80eb39909e0d5c181dc8d6e282a292146ec51e21
generallibrary/src/main/java/com/dayu/general/activity/RechargeDetailActivity.kt
@@ -154,7 +154,7 @@
    private fun getPaymentMethods() {
        ApiManager.getInstance().requestGetLoading(
            this,
            "sell/paymentmethod/get",
            "terminal/paymentmethod/get",
            PaymentMethodResponse::class.java,
            null,
            object : SubscriberListener<BaseResponse<PaymentMethodResponse>>() {
@@ -267,7 +267,7 @@
            binding.redRemainderBlance.text = "$balance 元"
            // 设置卡状态和对应颜色
            val cardStatus = when (info.status) {
            val cardStatus = when (info.state) {
                1 -> "正常"
                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") // 绿色-正常
                2 -> android.graphics.Color.parseColor("#FF9800") // 橙色-挂失
                3 -> android.graphics.Color.parseColor("#F44336") // 红色-锁定
@@ -320,6 +320,25 @@
            }
        } else {
            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
        }
        // 调用充值接口
@@ -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}")
        }