定义多种task 获取接口

This commit is contained in:
renhaoting 2025-11-25 19:29:09 +08:00
parent 5a6cef78b2
commit 53ab5a294f
2 changed files with 69 additions and 5 deletions

View File

@ -7,7 +7,11 @@ data class TaskBean(
data class TaskModuleConfig( data class TaskModuleConfig(
val basic_info: BasicInfo, val basic_info: BasicInfo,
val task_categories: List<TaskCategory> val task_categories: List<TaskCategory>
) ) {
fun getTaskCategoryById(categoryId: String): TaskCategory? {
return task_categories.find { it.category_id == categoryId }
}
}
data class BasicInfo( data class BasicInfo(
val currency_display: List<String>, val currency_display: List<String>,
@ -22,7 +26,11 @@ data class TaskCategory(
val display_priority: Int, val display_priority: Int,
val tasks: List<Task>, val tasks: List<Task>,
val valid_period: String val valid_period: String
) ) {
fun getTaskById(taskId: String): Task? {
return tasks.find { it.task_id == taskId }
}
}
data class Task( data class Task(
val daily_limit: Int, val daily_limit: Int,

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.manager package com.gamedog.vididin.manager
import com.ama.core.architecture.util.FileUtil import com.ama.core.architecture.util.FileUtil
import com.gamedog.vididin.main.fragments.task.Task
import com.gamedog.vididin.main.fragments.task.TaskBean import com.gamedog.vididin.main.fragments.task.TaskBean
import com.google.gson.GsonBuilder import com.google.gson.GsonBuilder
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
@ -19,13 +20,29 @@ class TaskManager private constructor() {
} }
} }
} }
// 新手任务分类及其子类
private const val TAG_CATEGORY_NEWBIE_TASK = "newbie_task"
private const val TAG_TASK_NEWBIE_FIRST_WITHDRAW = "newbie_first_withdraw"
private const val TAG_TASK_NEWBIE_PUSH_NOTIFY = "newbie_push_notify"
private const val TAG_TASK_NEWBIE_JOIN_DISCORD = "newbie_join_discord"
private const val TAG_TASK_NEWBIE_7DAY_CHECKIN = "newbie_7day_checkin"
// 日常任务分类及其子类
private const val TAG_CATEGORY_DAILY_TASK = "daily_task"
private const val TAG_TASK_DAILY_CHECKIN = "daily_checkin"
private const val TAG_TASK_DAILY_VIDEO = "daily_video_ladder"
private const val TAG_TASK_DAILY_AD = "daily_ad_ladder"
} }
private val mutex = Mutex() private val mutex = Mutex()
@Volatile @Volatile
private var initialized = false private var initialized = false
private var mTaskConfigBean: TaskBean? = null private var mTaskConfig: TaskBean? = null
private val mGson = GsonBuilder().create() private val mGson = GsonBuilder().create()
@ -38,7 +55,7 @@ class TaskManager private constructor() {
if (!initialized) { if (!initialized) {
loadTaskConfigFromAsset() loadTaskConfigFromAsset()
} }
return mTaskConfigBean return mTaskConfig
} }
private fun loadTaskConfigAsync() { private fun loadTaskConfigAsync() {
@ -54,7 +71,7 @@ class TaskManager private constructor() {
private suspend fun loadTaskConfigFromAsset() { private suspend fun loadTaskConfigFromAsset() {
return withContext(Dispatchers.IO) { return withContext(Dispatchers.IO) {
val configStr = FileUtil.readAssetsFile("taskConfig.json") val configStr = FileUtil.readAssetsFile("taskConfig.json")
mTaskConfigBean = mGson.fromJson(configStr, TaskBean::class.java) mTaskConfig = mGson.fromJson(configStr, TaskBean::class.java)
initialized = true initialized = true
} }
} }
@ -62,6 +79,45 @@ class TaskManager private constructor() {
fun getHomeWatchDurationRewardNum(): Int { fun getHomeWatchDurationRewardNum(): Int {
return 28; // TODO - mTaskConfigBean.xxxx return 28; // TODO - mTaskConfigBean.xxxx
} }
//------------------------- New -------------------------------
// 日常任务
fun getDailyCheckInTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_CHECKIN)
}
fun getDailyVideoTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_VIDEO)
}
fun getDailyAdTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_AD)
}
// 新手任务
fun getNewbieFirstWithdrawTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_FIRST_WITHDRAW)
}
fun getNewbieEnableNotifyTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_PUSH_NOTIFY)
}
fun getNewbieJoinDiscordTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_JOIN_DISCORD)
}
fun getNewbieCheckInTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_7DAY_CHECKIN)
}
} }