【买量】游戏中没有区分买量和非买量的小额提现规则

This commit is contained in:
renhaoting 2026-01-22 17:20:21 +08:00
parent 68d4bc2948
commit 1995e0b43f
5 changed files with 42 additions and 11 deletions

View File

@ -56,7 +56,7 @@ object VididinEvents {
const val EVENT_WITHDRAW_SELECTED_SUB_ITEM_CHANGED = 501 const val EVENT_WITHDRAW_SELECTED_SUB_ITEM_CHANGED = 501
const val EVENT_WITHDRAW_RESULT_UPDATED = 502 const val EVENT_WITHDRAW_RESULT_UPDATED = 502
const val EVENT_WITHDRAW_ITEM_LIST_CHANGED = 503 const val EVENT_WITHDRAW_ITEM_LIST_CHANGED = 503
const val EVENT_WITHDRAW_BANK_ACCOUNT_CHANGED = 504 const val EVENT_WITHDRAW_SMALL_AD_FINISHED = 504
// zero withdraw events // zero withdraw events

View File

@ -184,7 +184,7 @@ class WatchAdActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyl
if (TestingManager.instance().isRewardAdDisable()) { if (TestingManager.instance().isRewardAdDisable()) {
lifecycleScope.launch { lifecycleScope.launch {
delay(2000) delay(2000)
mRewardedDollarNum = 0.5 mRewardedDollarNum = 0.02
notifyAdWatchFinish() notifyAdWatchFinish()
} }
} else { } else {

View File

@ -19,6 +19,7 @@ import com.gamedog.vididin.VidiConst
import com.viddin.videos.free.R import com.viddin.videos.free.R
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.beans.RecordCash
import com.gamedog.vididin.beans.WatchAdNotifyBean
import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawBindBankDialog import com.gamedog.vididin.features.withdraw.dialogs.WithdrawBindBankDialog
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawFailDialog import com.gamedog.vididin.features.withdraw.dialogs.WithdrawFailDialog
@ -28,6 +29,7 @@ import com.gamedog.vididin.features.withdraw.dialogs.WithdrawWatchAdDialog
import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView
import com.gamedog.vididin.manager.GuideManager import com.gamedog.vididin.manager.GuideManager
import com.gamedog.vididin.manager.TaskManager import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.manager.WithdrawItem
import com.gamedog.vididin.manager.WithdrawManager import com.gamedog.vididin.manager.WithdrawManager
import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_COULD_WITHDRAW import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_COULD_WITHDRAW
import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_WITHDRAW_SUCCESS import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_WITHDRAW_SUCCESS
@ -160,7 +162,7 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
} }
} }
private fun udpateItemListUI() { private fun updateItemListUI() {
mItemViewList.forEach { mItemViewList.forEach {
it.updateProgressAndButUI() it.updateProgressAndButUI()
} }
@ -180,8 +182,9 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
} }
VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL -> { VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL -> {
WithdrawManager.instance().saveSmallWithdrawHasWatchedAd() val adNotifyBean = data.mData as WatchAdNotifyBean<Double>
handleGotoWithdraw(0) WithdrawManager.instance().addAdEarnForSubBean(0, 0,
adNotifyBean.earnMoneyNum * VidiConst.WITHDRAW_REWARD_AD_REVENUE_PERCENT)
} }
VididinEvents.EVENT_WITHDRAW_RESULT_UPDATED -> { VididinEvents.EVENT_WITHDRAW_RESULT_UPDATED -> {
@ -198,19 +201,29 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
} }
VididinEvents.EVENT_WITHDRAW_ITEM_LIST_CHANGED -> { VididinEvents.EVENT_WITHDRAW_ITEM_LIST_CHANGED -> {
udpateItemListUI() updateItemListUI()
} }
VididinEvents.EVENT_BANK_INFO_CHANGED -> { VididinEvents.EVENT_BANK_INFO_CHANGED -> {
withdrawPix2.updateBankAccountInfo() withdrawPix2.updateBankAccountInfo()
} }
VididinEvents.EVENT_WITHDRAW_SUB_ITEM_PROGRESS_UPDATED -> {
updateItemListUI()
}
VididinEvents.EVENT_WITHDRAW_SMALL_AD_FINISHED -> {
handleGotoWithdraw(0)
}
} }
}, VididinEvents.Event_Account_Cash_Changed, }, VididinEvents.Event_Account_Cash_Changed,
VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL, VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL,
VididinEvents.EVENT_WITHDRAW_RESULT_UPDATED, VididinEvents.EVENT_WITHDRAW_RESULT_UPDATED,
VididinEvents.EVENT_WITHDRAW_ITEM_LIST_CHANGED, VididinEvents.EVENT_WITHDRAW_ITEM_LIST_CHANGED,
VididinEvents.EVENT_BANK_INFO_CHANGED) VididinEvents.EVENT_BANK_INFO_CHANGED,
VididinEvents.EVENT_WITHDRAW_SUB_ITEM_PROGRESS_UPDATED,
VididinEvents.EVENT_WITHDRAW_SMALL_AD_FINISHED)
readTransactionsAndShowResult() readTransactionsAndShowResult()

View File

@ -1,11 +1,14 @@
package com.gamedog.vididin.features.withdraw.widget package com.gamedog.vididin.features.withdraw.widget
import android.accounts.AccountManager
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater import android.view.LayoutInflater
import android.widget.LinearLayout import android.widget.LinearLayout
import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setOnClickBatch
import com.gamedog.statisticreporter.adjust.SpHelper.Companion.KEY_USER_FROM_TYPE
import com.gamedog.vididin.manager.WithdrawManager import com.gamedog.vididin.manager.WithdrawManager
import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_WITHDRAWING import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_WITHDRAWING
import com.viddin.videos.free.R import com.viddin.videos.free.R
@ -55,6 +58,10 @@ class WithDrawItemView @JvmOverloads constructor(
fun updateProgressAndButUI() { fun updateProgressAndButUI() {
var itemProgress = WithdrawManager.instance().getItemProgress(mItemIndex) * 100 var itemProgress = WithdrawManager.instance().getItemProgress(mItemIndex) * 100
/*if (mItemIndex == 0 && SpUtil.instance().getInt(KEY_USER_FROM_TYPE) == 2 && itemProgress > 0) {
itemProgress = 100.0
}*/
with(mBinding) { with(mBinding) {
progressBar.setProgress(itemProgress.toInt()) progressBar.setProgress(itemProgress.toInt())
tvProgress.text = String.format("%.2f", itemProgress) + ResUtil.getString(R.string.percent) tvProgress.text = String.format("%.2f", itemProgress) + ResUtil.getString(R.string.percent)

View File

@ -8,6 +8,7 @@ import com.ama.core.architecture.util.NetUtil
import com.ama.core.architecture.util.SpUtil 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.statisticreporter.StatisticUtil import com.gamedog.statisticreporter.StatisticUtil
import com.gamedog.statisticreporter.adjust.SpHelper.Companion.KEY_USER_FROM_TYPE
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_WITHDRAW import com.gamedog.vididin.beans.RECORD_CASH_WITHDRAW
@ -21,7 +22,6 @@ import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_NEED_WATCH_AD import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_NEED_WATCH_AD
import com.gamedog.vididin.netbase.NetworkUtil import com.gamedog.vididin.netbase.NetworkUtil
import com.gamedog.vididin.netbase.Result import com.gamedog.vididin.netbase.Result
import com.mbridge.msdk.thrid.okhttp.internal.http2.c
import com.viddin.videos.free.R import com.viddin.videos.free.R
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -116,7 +116,7 @@ class WithdrawManager private constructor() {
private fun generateItemList(): MutableList<WithdrawItem> { private fun generateItemList(): MutableList<WithdrawItem> {
val itemList = mutableListOf<WithdrawItem>() val itemList = mutableListOf<WithdrawItem>()
itemList.add(WithdrawItem(0, 0.1, 100, generateSmallItemList(), isBigWithDraw = false)) itemList.add(WithdrawItem(0, 0.1, 0, generateSmallItemList(), isBigWithDraw = false))
itemList.add(WithdrawItem(1, 1.0, AndroidUtil.randomInt(50, 70), generateSubItemList(1.0))) itemList.add(WithdrawItem(1, 1.0, AndroidUtil.randomInt(50, 70), generateSubItemList(1.0)))
itemList.add(WithdrawItem(2, 10.0, AndroidUtil.randomInt(50, 70), generateSubItemList(10.0))) itemList.add(WithdrawItem(2, 10.0, AndroidUtil.randomInt(50, 70), generateSubItemList(10.0)))
itemList.add(WithdrawItem(3, 20.0, AndroidUtil.randomInt(50, 70), generateSubItemList(20.0))) itemList.add(WithdrawItem(3, 20.0, AndroidUtil.randomInt(50, 70), generateSubItemList(20.0)))
@ -139,7 +139,7 @@ class WithdrawManager private constructor() {
private fun generateSmallItemList(): List<WithdrawSubItem> { private fun generateSmallItemList(): List<WithdrawSubItem> {
val subItemList = mutableListOf<WithdrawSubItem>() val subItemList = mutableListOf<WithdrawSubItem>()
subItemList.add(WithdrawSubItem(0, 0.1, 100, 100F, 0.1)) subItemList.add(WithdrawSubItem(0, 0.1, 0, 0F, 0.0))
return subItemList return subItemList
} }
@ -194,18 +194,29 @@ class WithdrawManager private constructor() {
private fun calculateSubBeanProgress(subBean: WithdrawSubItem) { private fun calculateSubBeanProgress(subBean: WithdrawSubItem) {
val needEarnProgress = 100 - subBean.startAdProgress val needEarnProgress = 100 - subBean.startAdProgress
if (subBean.hasEarnMoneyByAd >= subBean.cashTotal) { if (subBean.hasEarnMoneyByAd >= subBean.cashTotal || buyUserHasWatchedSmallWithdrawAd(subBean)) {
subBean.currentAdProgress = 100F subBean.currentAdProgress = 100F
// update state // update state
if (subBean.withdrawState == STATE_NEED_WATCH_AD) { if (subBean.withdrawState == STATE_NEED_WATCH_AD) {
subBean.withdrawState = STATE_COULD_WITHDRAW subBean.withdrawState = STATE_COULD_WITHDRAW
} }
if (subBean.cashTotal < 1) {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_WITHDRAW_SMALL_AD_FINISHED, null)
}
} else { } else {
val newProgress = subBean.startAdProgress + (needEarnProgress * (subBean.hasEarnMoneyByAd / subBean.cashTotal)).toFloat() val newProgress = subBean.startAdProgress + (needEarnProgress * (subBean.hasEarnMoneyByAd / subBean.cashTotal)).toFloat()
subBean.currentAdProgress = if (newProgress >= 100F) 100F else newProgress subBean.currentAdProgress = if (newProgress >= 100F) 100F else newProgress
} }
} }
private fun buyUserHasWatchedSmallWithdrawAd(subBean: WithdrawSubItem) : Boolean {
if (subBean.cashTotal < 1.0 && SpUtil.instance().getInt(KEY_USER_FROM_TYPE) == 2) {
return subBean.hasEarnMoneyByAd > 0.0
}
return false
}
fun updateSubBeanState(subBean: WithdrawSubItem, newState: Int) { fun updateSubBeanState(subBean: WithdrawSubItem, newState: Int) {
subBean.withdrawState = newState subBean.withdrawState = newState
saveInfos2Sp(mWithdrawItemList) saveInfos2Sp(mWithdrawItemList)