From 4ab33f382c09f1e546763e95f6b35f310e34a6e1 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Wed, 24 Dec 2025 16:31:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E9=87=91=E8=AE=B0=E5=BD=95=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gamedog/vididin/beans/RecordCash.kt | 25 +++++++++++++------ .../gamedog/vididin/login/AccountManager.kt | 11 ++++++-- .../vididin/manager/WithdrawManager.kt | 17 +++++++++---- .../vididin/manager/helpers/BoxTaskHelper.kt | 6 ++++- .../ama/core/architecture/util/AndroidUtil.kt | 5 ++++ 5 files changed, 48 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt b/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt index 4b82d46..8e2f7f2 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt @@ -1,5 +1,7 @@ package com.gamedog.vididin.beans +import com.ama.core.architecture.util.AndroidUtil +import com.ama.core.architecture.util.DateUtil import com.vididin.real.money.game.R @@ -7,15 +9,15 @@ import com.vididin.real.money.game.R const val RECORD_CASH_PLUS_GOLD_CONVERT: Int = 1 const val RECORD_CASH_PLUS_NEWBIE_GIFT: Int = 2 const val RECORD_CASH_PLUS_BOX_TASK: Int = 3 -const val RECORD_CASH_MINUS_WITHDRAW_SMALL: Int = 4 -const val RECORD_CASH_MINUS_WITHDRAW_BIG: Int = 5 +const val RECORD_CASH_PLUS_WITHDRAW_FAIL: Int = 4 +const val RECORD_CASH_MINUS_WITHDRAW_SMALL: Int = 5 +const val RECORD_CASH_MINUS_WITHDRAW_BIG: Int = 6 -open class RecordCash { - var uuid: String = "" - var dateMs: Long = 0L - var isSuccess: Boolean = false - var amountNum: Double = 0.0 - var recordType: Int = 0 +open class RecordCash (var recordType: Int = 0, + var amountNum: Double = 0.0, + var isSuccess: Boolean = false,) { + var dateMs: Long = DateUtil.getCurTimeMs() + var uuid: String = AndroidUtil.randomUUid() } class RecordCashShow: RecordCash() { @@ -52,6 +54,13 @@ fun RecordCash.toShowBean(): RecordCashShow { iconRes = R.mipmap.icon_ad } + + RECORD_CASH_PLUS_WITHDRAW_FAIL -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + RECORD_CASH_MINUS_WITHDRAW_SMALL -> { title = R.string.apply description = R.string.apply diff --git a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt index c1463ef..2551288 100644 --- a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt +++ b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt @@ -9,6 +9,9 @@ import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.beans.Account import com.gamedog.vididin.beans.BankInfo +import com.gamedog.vididin.beans.RECORD_CASH_PLUS_GOLD_CONVERT +import com.gamedog.vididin.beans.RecordCash +import com.gamedog.vididin.manager.RecordsManager object AccountManager { @@ -67,13 +70,16 @@ object AccountManager { } @Synchronized - fun adjustCash(adjustNum: Float): Boolean { + fun adjustCash(adjustNum: Float, recordBean: RecordCash?): Boolean { if (adjustNum < 0L && Math.abs(adjustNum) > getGold()) { return false } mAccount.cashCount += adjustNum saveAccountInfo() NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Cash_Changed, null) + recordBean?.let { + RecordsManager.instance().appendCashRecord(recordBean) + } return true } @@ -126,7 +132,8 @@ object AccountManager { val costGoldNum = couldCovertCashTotal * VidiConst.PER_01CASH_COST_GOLD_NUM if (getGold() >= costGoldNum) { adjustGold(-1L * costGoldNum.toInt()) - adjustCash(couldCovertCashTotal * 0.1F) + val adjustCashNum = couldCovertCashTotal * 0.1F + adjustCash(adjustCashNum, RecordCash(RECORD_CASH_PLUS_GOLD_CONVERT, adjustCashNum.toDouble(), true)) AndroidUtil.showToast("Has convert $costGoldNum gold to $couldCovertCashTotal cash.") return true } diff --git a/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt b/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt index 59f626d..f5f5673 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt @@ -9,6 +9,11 @@ import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.beans.RECORD_CASH_MINUS_WITHDRAW_BIG +import com.gamedog.vididin.beans.RECORD_CASH_MINUS_WITHDRAW_SMALL +import com.gamedog.vididin.beans.RECORD_CASH_PLUS_BOX_TASK +import com.gamedog.vididin.beans.RECORD_CASH_PLUS_WITHDRAW_FAIL +import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.beans.req.PayInitReq import com.gamedog.vididin.beans.req.PayoutCheckReq import com.gamedog.vididin.beans.resp.WithdrawRecord @@ -216,13 +221,10 @@ class WithdrawManager private constructor() { mRecordLocker.unlock() } saveRecords2Sp() - adjustAccountCash(newRecord.cashNum * -1) + AccountManager.adjustCash(newRecord.cashNum * -1, null) loopCheckTransactionState() } - private fun adjustAccountCash(cashNum: Float) { - AccountManager.adjustCash(cashNum) - } private fun saveRecords2Sp() { SpUtil.instance().putList(SpUtil.KEY_WITHDRAW_HISTORY_LIST,getClonedRecordList()) @@ -415,13 +417,18 @@ class WithdrawManager private constructor() { private fun handleTransactionSuccess(recordNo: String) { updateRecord(recordNo, TRANSACTION_STATE_SUCCESS) notifyWithdrawCheckResult(recordNo) + val recordBean = WithdrawManager.instance?.getRecord(recordNo) + recordBean?.let { + val type = if (it.cashNum > 0.1F) RECORD_CASH_MINUS_WITHDRAW_BIG else RECORD_CASH_MINUS_WITHDRAW_SMALL + RecordsManager.instance().appendCashRecord(RecordCash(type, it.cashNum.toDouble(), false)) + } } private fun handleTransactionFailed(recordNo: String, failedType: Int) { updateRecord(recordNo, TRANSACTION_STATE_FAIL, failedType) val recordBean = WithdrawManager.instance?.getRecord(recordNo) recordBean?.let { - adjustAccountCash(it.cashNum) + AccountManager.adjustCash(it.cashNum, RecordCash(RECORD_CASH_PLUS_WITHDRAW_FAIL, it.cashNum.toDouble(), false)) } notifyWithdrawCheckResult(recordNo) } diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt index 57b94a3..53edfa2 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt @@ -6,7 +6,11 @@ import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.vididin.real.money.game.R import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.beans.RECORD_CASH_PLUS_BOX_TASK +import com.gamedog.vididin.beans.RECORD_CASH_PLUS_GOLD_CONVERT +import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.core.login.login.AccountManager +import com.gamedog.vididin.core.login.login.AccountManager.adjustCash import com.gamedog.vididin.main.fragments.task.BoxTaskRoot import com.gamedog.vididin.manager.TaskManager import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_ZERO_BUY @@ -323,7 +327,7 @@ class BoxTaskHelper: BaseTaskHelper() { try { val couldClaimCashNum = getCouldClaimCashNum() if (couldClaimCashNum > 0F) { - AccountManager.adjustCash(couldClaimCashNum) + AccountManager.adjustCash(couldClaimCashNum, RecordCash(RECORD_CASH_PLUS_BOX_TASK, couldClaimCashNum.toDouble(), true)) mStateBean.boxList.forEachIndexed { index, box -> if (getBoxStateEnum(index) == STATE_FINISH) { box.hasClaimedReward = true diff --git a/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt b/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt index 62f9b28..512f325 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt @@ -21,6 +21,7 @@ import androidx.core.graphics.createBitmap import com.ama.core.architecture.BaseApp import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import java.util.UUID import kotlin.random.Random @@ -184,6 +185,10 @@ class AndroidUtil private constructor() { return (startNum..endNum).random() } + fun randomUUid(): String { + return UUID.randomUUID().toString().replace("-", "") + } + } } \ No newline at end of file