现金记录数据

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
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

View File

@ -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
}

View File

@ -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)
}

View File

@ -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<TaskStateBoxRoot, BoxTaskRoot>() {
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

View File

@ -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("-", "")
}
}
}