新增ongoing类型 cash 记录

This commit is contained in:
renhaoting 2025-12-25 10:42:51 +08:00
parent 885bc67994
commit c5c7ba71b7
5 changed files with 42 additions and 15 deletions

View File

@ -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_PLUS_WITHDRAW_FAIL: Int = 4
const val RECORD_CASH_MINUS_WITHDRAW_SUCCESS: Int = 5 const val RECORD_CASH_MINUS_WITHDRAW_SUCCESS: Int = 5
abstract class BaseRecord {
open class RecordCash (var recordType: Int = 0,
var amountNum: Double = 0.0,
var isSuccess: Boolean = false,) {
var dateMs: Long = DateUtil.getCurTimeMs() var dateMs: Long = DateUtil.getCurTimeMs()
var uuid: String = AndroidUtil.randomUUid() 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() { class RecordCashShow: RecordCash() {
var title: Int = 0 var title: Int = 0
var description: Int = 0 var description: Int = 0

View File

@ -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 isSuccess: Boolean = false
var dateMs: Long = DateUtil.getCurTimeMs()
var uuid: String = AndroidUtil.randomUUid()
} }
class RecordGoldShow: RecordGold() { class RecordGoldShow: RecordGold() {

View File

@ -3,9 +3,7 @@ package com.gamedog.vididin.beans
import com.vididin.real.money.game.R import com.vididin.real.money.game.R
open class RecordZero { open class RecordZero : BaseRecord() {
var uuid: String = ""
var dateMs: Long = 0L
var isSuccess: Boolean = false var isSuccess: Boolean = false
var amountNum: Double = 0.0 var amountNum: Double = 0.0
var recordType: Int = 0 var recordType: Int = 0

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.manager package com.gamedog.vididin.manager
import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.beans.BaseRecord
import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.beans.RecordCash
import com.gamedog.vididin.beans.RecordCashShow import com.gamedog.vididin.beans.RecordCashShow
import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.beans.RecordGold
@ -38,6 +39,10 @@ class RecordsManager private constructor() {
mCashHelper.addRecord(newRecord) mCashHelper.addRecord(newRecord)
} }
fun updateCashRecord(updateRecord: RecordCash) {
mCashHelper.updateRecord(updateRecord)
}
fun appendGoldRecord(newRecord: RecordGold) { fun appendGoldRecord(newRecord: RecordGold) {
mGoldHelper.addRecord(newRecord) mGoldHelper.addRecord(newRecord)
} }
@ -101,7 +106,7 @@ class ZeroRecordHelper() : BaseRecordHelper<RecordZero>() {
} }
abstract class BaseRecordHelper<T> { abstract class BaseRecordHelper<T: BaseRecord> {
abstract val mSpKey: String abstract val mSpKey: String
private val mbgScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) private val mbgScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
private val mRecordLocker = ReentrantLock() private val mRecordLocker = ReentrantLock()
@ -146,5 +151,24 @@ abstract class BaseRecordHelper<T> {
} }
} }
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()
}
}
}
} }

View File

@ -9,7 +9,9 @@ import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.eventbus.NotifyMan import com.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VididinEvents 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_FAIL
import com.gamedog.vididin.beans.RECORD_CASH_PLUS_WITHDRAW_ONGOING
import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.beans.RecordCash
import com.gamedog.vididin.beans.req.PayInitReq import com.gamedog.vididin.beans.req.PayInitReq
import com.gamedog.vididin.beans.req.PayoutCheckReq import com.gamedog.vididin.beans.req.PayoutCheckReq
@ -218,7 +220,10 @@ class WithdrawManager private constructor() {
mRecordLocker.unlock() mRecordLocker.unlock()
} }
saveRecords2Sp() 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() loopCheckTransactionState()
} }
@ -416,8 +421,8 @@ class WithdrawManager private constructor() {
notifyWithdrawCheckResult(recordNo) notifyWithdrawCheckResult(recordNo)
val recordBean = WithdrawManager.instance?.getRecord(recordNo) val recordBean = WithdrawManager.instance?.getRecord(recordNo)
recordBean?.let { recordBean?.let {
val type = if (it.cashNum > 0.1F) RECORD_CASH_MINUS_WITHDRAW_BIG else RECORD_CASH_MINUS_WITHDRAW_SMALL RecordsManager.instance().updateCashRecord(RecordCash(
RecordsManager.instance().appendCashRecord(RecordCash(type, it.cashNum.toDouble(), false)) 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) updateRecord(recordNo, TRANSACTION_STATE_FAIL, failedType)
val recordBean = WithdrawManager.instance?.getRecord(recordNo) val recordBean = WithdrawManager.instance?.getRecord(recordNo)
recordBean?.let { 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) notifyWithdrawCheckResult(recordNo)
} }