现金记录数据

This commit is contained in:
renhaoting 2025-12-24 16:31:38 +08:00
parent 59c80a6e58
commit 4ab33f382c
5 changed files with 48 additions and 16 deletions

View File

@ -1,5 +1,7 @@
package com.gamedog.vididin.beans 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 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_GOLD_CONVERT: Int = 1
const val RECORD_CASH_PLUS_NEWBIE_GIFT: Int = 2 const val RECORD_CASH_PLUS_NEWBIE_GIFT: Int = 2
const val RECORD_CASH_PLUS_BOX_TASK: Int = 3 const val RECORD_CASH_PLUS_BOX_TASK: Int = 3
const val RECORD_CASH_MINUS_WITHDRAW_SMALL: Int = 4 const val RECORD_CASH_PLUS_WITHDRAW_FAIL: Int = 4
const val RECORD_CASH_MINUS_WITHDRAW_BIG: Int = 5 const val RECORD_CASH_MINUS_WITHDRAW_SMALL: Int = 5
const val RECORD_CASH_MINUS_WITHDRAW_BIG: Int = 6
open class RecordCash { open class RecordCash (var recordType: Int = 0,
var uuid: String = "" var amountNum: Double = 0.0,
var dateMs: Long = 0L var isSuccess: Boolean = false,) {
var isSuccess: Boolean = false var dateMs: Long = DateUtil.getCurTimeMs()
var amountNum: Double = 0.0 var uuid: String = AndroidUtil.randomUUid()
var recordType: Int = 0
} }
class RecordCashShow: RecordCash() { class RecordCashShow: RecordCash() {
@ -52,6 +54,13 @@ fun RecordCash.toShowBean(): RecordCashShow {
iconRes = R.mipmap.icon_ad 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 -> { RECORD_CASH_MINUS_WITHDRAW_SMALL -> {
title = R.string.apply title = R.string.apply
description = R.string.apply description = R.string.apply

View File

@ -9,6 +9,9 @@ import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.Account import com.gamedog.vididin.beans.Account
import com.gamedog.vididin.beans.BankInfo 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 { object AccountManager {
@ -67,13 +70,16 @@ object AccountManager {
} }
@Synchronized @Synchronized
fun adjustCash(adjustNum: Float): Boolean { fun adjustCash(adjustNum: Float, recordBean: RecordCash?): Boolean {
if (adjustNum < 0L && Math.abs(adjustNum) > getGold()) { if (adjustNum < 0L && Math.abs(adjustNum) > getGold()) {
return false return false
} }
mAccount.cashCount += adjustNum mAccount.cashCount += adjustNum
saveAccountInfo() saveAccountInfo()
NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Cash_Changed, null) NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Cash_Changed, null)
recordBean?.let {
RecordsManager.instance().appendCashRecord(recordBean)
}
return true return true
} }
@ -126,7 +132,8 @@ object AccountManager {
val costGoldNum = couldCovertCashTotal * VidiConst.PER_01CASH_COST_GOLD_NUM val costGoldNum = couldCovertCashTotal * VidiConst.PER_01CASH_COST_GOLD_NUM
if (getGold() >= costGoldNum) { if (getGold() >= costGoldNum) {
adjustGold(-1L * costGoldNum.toInt()) 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.") AndroidUtil.showToast("Has convert $costGoldNum gold to $couldCovertCashTotal cash.")
return true return true
} }

View File

@ -9,6 +9,11 @@ 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_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.PayInitReq
import com.gamedog.vididin.beans.req.PayoutCheckReq import com.gamedog.vididin.beans.req.PayoutCheckReq
import com.gamedog.vididin.beans.resp.WithdrawRecord import com.gamedog.vididin.beans.resp.WithdrawRecord
@ -216,13 +221,10 @@ class WithdrawManager private constructor() {
mRecordLocker.unlock() mRecordLocker.unlock()
} }
saveRecords2Sp() saveRecords2Sp()
adjustAccountCash(newRecord.cashNum * -1) AccountManager.adjustCash(newRecord.cashNum * -1, null)
loopCheckTransactionState() loopCheckTransactionState()
} }
private fun adjustAccountCash(cashNum: Float) {
AccountManager.adjustCash(cashNum)
}
private fun saveRecords2Sp() { private fun saveRecords2Sp() {
SpUtil.instance().putList(SpUtil.KEY_WITHDRAW_HISTORY_LIST,getClonedRecordList()) SpUtil.instance().putList(SpUtil.KEY_WITHDRAW_HISTORY_LIST,getClonedRecordList())
@ -415,13 +417,18 @@ class WithdrawManager private constructor() {
private fun handleTransactionSuccess(recordNo: String) { private fun handleTransactionSuccess(recordNo: String) {
updateRecord(recordNo, TRANSACTION_STATE_SUCCESS) updateRecord(recordNo, TRANSACTION_STATE_SUCCESS)
notifyWithdrawCheckResult(recordNo) 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) { private fun handleTransactionFailed(recordNo: String, failedType: Int) {
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 {
adjustAccountCash(it.cashNum) AccountManager.adjustCash(it.cashNum, RecordCash(RECORD_CASH_PLUS_WITHDRAW_FAIL, it.cashNum.toDouble(), false))
} }
notifyWithdrawCheckResult(recordNo) notifyWithdrawCheckResult(recordNo)
} }

View File

@ -6,7 +6,11 @@ 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.vididin.real.money.game.R import com.vididin.real.money.game.R
import com.gamedog.vididin.VididinEvents 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
import com.gamedog.vididin.core.login.login.AccountManager.adjustCash
import com.gamedog.vididin.main.fragments.task.BoxTaskRoot import com.gamedog.vididin.main.fragments.task.BoxTaskRoot
import com.gamedog.vididin.manager.TaskManager import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_ZERO_BUY import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_ZERO_BUY
@ -323,7 +327,7 @@ class BoxTaskHelper: BaseTaskHelper<TaskStateBoxRoot, BoxTaskRoot>() {
try { try {
val couldClaimCashNum = getCouldClaimCashNum() val couldClaimCashNum = getCouldClaimCashNum()
if (couldClaimCashNum > 0F) { if (couldClaimCashNum > 0F) {
AccountManager.adjustCash(couldClaimCashNum) AccountManager.adjustCash(couldClaimCashNum, RecordCash(RECORD_CASH_PLUS_BOX_TASK, couldClaimCashNum.toDouble(), true))
mStateBean.boxList.forEachIndexed { index, box -> mStateBean.boxList.forEachIndexed { index, box ->
if (getBoxStateEnum(index) == STATE_FINISH) { if (getBoxStateEnum(index) == STATE_FINISH) {
box.hasClaimedReward = true box.hasClaimedReward = true

View File

@ -21,6 +21,7 @@ import androidx.core.graphics.createBitmap
import com.ama.core.architecture.BaseApp import com.ama.core.architecture.BaseApp
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import java.util.UUID
import kotlin.random.Random import kotlin.random.Random
@ -184,6 +185,10 @@ class AndroidUtil private constructor() {
return (startNum..endNum).random() return (startNum..endNum).random()
} }
fun randomUUid(): String {
return UUID.randomUUID().toString().replace("-", "")
}
} }
} }