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

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_RESULT_UPDATED = 502
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

View File

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

View File

@ -19,6 +19,7 @@ import com.gamedog.vididin.VidiConst
import com.viddin.videos.free.R
import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.RecordCash
import com.gamedog.vididin.beans.WatchAdNotifyBean
import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawBindBankDialog
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.manager.GuideManager
import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.manager.WithdrawItem
import com.gamedog.vididin.manager.WithdrawManager
import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_COULD_WITHDRAW
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 {
it.updateProgressAndButUI()
}
@ -180,8 +182,9 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
}
VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL -> {
WithdrawManager.instance().saveSmallWithdrawHasWatchedAd()
handleGotoWithdraw(0)
val adNotifyBean = data.mData as WatchAdNotifyBean<Double>
WithdrawManager.instance().addAdEarnForSubBean(0, 0,
adNotifyBean.earnMoneyNum * VidiConst.WITHDRAW_REWARD_AD_REVENUE_PERCENT)
}
VididinEvents.EVENT_WITHDRAW_RESULT_UPDATED -> {
@ -198,19 +201,29 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
}
VididinEvents.EVENT_WITHDRAW_ITEM_LIST_CHANGED -> {
udpateItemListUI()
updateItemListUI()
}
VididinEvents.EVENT_BANK_INFO_CHANGED -> {
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_AD_WATCHED_FOR_WITHDRAW_SMALL,
VididinEvents.EVENT_WITHDRAW_RESULT_UPDATED,
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()

View File

@ -1,11 +1,14 @@
package com.gamedog.vididin.features.withdraw.widget
import android.accounts.AccountManager
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.LinearLayout
import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.SpUtil
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.Companion.STATE_WITHDRAWING
import com.viddin.videos.free.R
@ -55,6 +58,10 @@ class WithDrawItemView @JvmOverloads constructor(
fun updateProgressAndButUI() {
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) {
progressBar.setProgress(itemProgress.toInt())
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.eventbus.NotifyMan
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.VididinEvents
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.netbase.NetworkUtil
import com.gamedog.vididin.netbase.Result
import com.mbridge.msdk.thrid.okhttp.internal.http2.c
import com.viddin.videos.free.R
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@ -116,7 +116,7 @@ class WithdrawManager private constructor() {
private fun generateItemList(): MutableList<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(2, 10.0, AndroidUtil.randomInt(50, 70), generateSubItemList(10.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> {
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
}
@ -194,18 +194,29 @@ class WithdrawManager private constructor() {
private fun calculateSubBeanProgress(subBean: WithdrawSubItem) {
val needEarnProgress = 100 - subBean.startAdProgress
if (subBean.hasEarnMoneyByAd >= subBean.cashTotal) {
if (subBean.hasEarnMoneyByAd >= subBean.cashTotal || buyUserHasWatchedSmallWithdrawAd(subBean)) {
subBean.currentAdProgress = 100F
// update state
if (subBean.withdrawState == STATE_NEED_WATCH_AD) {
subBean.withdrawState = STATE_COULD_WITHDRAW
}
if (subBean.cashTotal < 1) {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_WITHDRAW_SMALL_AD_FINISHED, null)
}
} else {
val newProgress = subBean.startAdProgress + (needEarnProgress * (subBean.hasEarnMoneyByAd / subBean.cashTotal)).toFloat()
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) {
subBean.withdrawState = newState
saveInfos2Sp(mWithdrawItemList)