From c5c7ba71b758667c5117f765fb90f2b25e16fb66 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Thu, 25 Dec 2025 10:42:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eongoing=E7=B1=BB=E5=9E=8B=20c?= =?UTF-8?q?ash=20=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gamedog/vididin/beans/RecordCash.kt | 9 ++++--- .../com/gamedog/vididin/beans/RecordGold.kt | 4 +-- .../com/gamedog/vididin/beans/RecordZero.kt | 4 +-- .../gamedog/vididin/manager/RecordsManager.kt | 26 ++++++++++++++++++- .../vididin/manager/WithdrawManager.kt | 14 +++++++--- 5 files changed, 42 insertions(+), 15 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 af64d23..c03eb4d 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt @@ -12,14 +12,15 @@ const val RECORD_CASH_PLUS_WITHDRAW_ONGOING: Int = 3 const val RECORD_CASH_PLUS_WITHDRAW_FAIL: Int = 4 const val RECORD_CASH_MINUS_WITHDRAW_SUCCESS: Int = 5 - -open class RecordCash (var recordType: Int = 0, - var amountNum: Double = 0.0, - var isSuccess: Boolean = false,) { +abstract class BaseRecord { var dateMs: Long = DateUtil.getCurTimeMs() var uuid: String = AndroidUtil.randomUUid() } +open class RecordCash (var recordType: Int = 0, + var amountNum: Double = 0.0, + var isSuccess: Boolean = false,) : BaseRecord() + class RecordCashShow: RecordCash() { var title: Int = 0 var description: Int = 0 diff --git a/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt b/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt index 3fcadb2..d33ddcc 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt @@ -19,10 +19,8 @@ const val RECORD_GOLD_MINUS_CONVERT_2_CASH: Int = 10 -open class RecordGold(var recordType: Int = 0, var amountNum: Long = 0) { +open class RecordGold(var recordType: Int = 0, var amountNum: Long = 0): BaseRecord() { var isSuccess: Boolean = false - var dateMs: Long = DateUtil.getCurTimeMs() - var uuid: String = AndroidUtil.randomUUid() } class RecordGoldShow: RecordGold() { diff --git a/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt b/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt index bf37f61..5da2adb 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt @@ -3,9 +3,7 @@ package com.gamedog.vididin.beans import com.vididin.real.money.game.R -open class RecordZero { - var uuid: String = "" - var dateMs: Long = 0L +open class RecordZero : BaseRecord() { var isSuccess: Boolean = false var amountNum: Double = 0.0 var recordType: Int = 0 diff --git a/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt b/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt index 2be2770..7279e95 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt @@ -1,6 +1,7 @@ package com.gamedog.vididin.manager import com.ama.core.architecture.util.SpUtil +import com.gamedog.vididin.beans.BaseRecord import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.beans.RecordCashShow import com.gamedog.vididin.beans.RecordGold @@ -38,6 +39,10 @@ class RecordsManager private constructor() { mCashHelper.addRecord(newRecord) } + fun updateCashRecord(updateRecord: RecordCash) { + mCashHelper.updateRecord(updateRecord) + } + fun appendGoldRecord(newRecord: RecordGold) { mGoldHelper.addRecord(newRecord) } @@ -101,7 +106,7 @@ class ZeroRecordHelper() : BaseRecordHelper() { } -abstract class BaseRecordHelper { +abstract class BaseRecordHelper { abstract val mSpKey: String private val mbgScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) private val mRecordLocker = ReentrantLock() @@ -146,5 +151,24 @@ abstract class BaseRecordHelper { } } + fun updateRecord(updateBean: T) { + mbgScope.launch { + try { + mRecordLocker.lock() + mRecordList.forEachIndexed { index, data -> + if (data.uuid == updateBean.uuid) { + mRecordList.remove(data) + mRecordList.add(index, updateBean) + return@forEachIndexed + } + } + + saveRecordList() + } finally { + mRecordLocker.unlock() + } + } + } + } 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 e8f0ba8..1103673 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt @@ -9,7 +9,9 @@ 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_SUCCESS import com.gamedog.vididin.beans.RECORD_CASH_PLUS_WITHDRAW_FAIL +import com.gamedog.vididin.beans.RECORD_CASH_PLUS_WITHDRAW_ONGOING import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.beans.req.PayInitReq import com.gamedog.vididin.beans.req.PayoutCheckReq @@ -218,7 +220,10 @@ class WithdrawManager private constructor() { mRecordLocker.unlock() } saveRecords2Sp() - AccountManager.adjustCash(newRecord.cashNum * -1, null) + val cashNum = newRecord.cashNum * -1 + AccountManager.adjustCash(cashNum, RecordCash( + RECORD_CASH_PLUS_WITHDRAW_ONGOING, cashNum.toDouble(), true).apply { uuid = newRecord.recordNo } + ) loopCheckTransactionState() } @@ -416,8 +421,8 @@ class WithdrawManager private constructor() { 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)) + RecordsManager.instance().updateCashRecord(RecordCash( + RECORD_CASH_MINUS_WITHDRAW_SUCCESS, it.cashNum.toDouble(), true).apply { uuid = recordNo }) } } @@ -425,7 +430,8 @@ class WithdrawManager private constructor() { updateRecord(recordNo, TRANSACTION_STATE_FAIL, failedType) val recordBean = WithdrawManager.instance?.getRecord(recordNo) recordBean?.let { - AccountManager.adjustCash(it.cashNum, RecordCash(RECORD_CASH_PLUS_WITHDRAW_FAIL, it.cashNum.toDouble(), false)) + AccountManager.adjustCash(it.cashNum, + RecordCash(RECORD_CASH_PLUS_WITHDRAW_FAIL, it.cashNum.toDouble(), false).apply { uuid = recordNo }) } notifyWithdrawCheckResult(recordNo) }