新增ongoing类型 cash 记录
This commit is contained in:
parent
885bc67994
commit
c5c7ba71b7
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue