topfans/frontend/utils/task-api.js

104 lines
3.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* taskService API 调用封装
* 所有 API 通过 gateway 路由到 taskService (Triple/HTTP)
* baseURL 已配置在 api.js 中指向 gateway (端口 8080)
*/
import { request } from './api.js'
/**
* 获取每日任务列表
* @param {number} starId - 明星ID
* @returns {Promise}
*/
export const getDailyTasks = (starId) =>
request({ url: '/api/tasks/daily', data: { star_id: starId } })
/**
* 上报任务事件
* @param {string} eventType - 事件类型(如 daily_login, daily_browse_asset
* @param {number} starId - 明星ID
* @returns {Promise}
*/
export const reportEvent = (eventType, starId) =>
request({ url: '/api/tasks/report-event', method: 'POST', data: { event_type: eventType, star_id: starId } })
/**
* 领取单个每日任务奖励
* @param {string} taskKey - 任务key
* @param {number} starId - 明星ID
* @returns {Promise}
*/
export const claimDailyTask = (taskKey, starId) =>
request({ url: '/api/tasks/daily/claim', method: 'POST', data: { task_key: taskKey, star_id: starId } })
/**
* 一键领取所有已完成每日任务
* @param {number} starId - 明星ID
* @returns {Promise}
*/
export const claimAllDailyTasks = (starId) =>
request({ url: '/api/tasks/daily/claim-all', method: 'POST', data: { star_id: starId } })
/**
* 完成引导步骤
* @param {string} taskKey - 引导任务key如 square_home, profile_edit
* @returns {Promise}
*/
export const completeGuide = (taskKey) =>
request({ url: '/api/tasks/guide/complete', method: 'POST', data: { task_key: taskKey } })
/**
* 获取引导状态
* @returns {Promise}
*/
export const getOnboardingStatus = () =>
request({ url: '/api/tasks/onboarding/status' })
/**
* 进入下一阶段
* @param {number} targetStage - 目标阶段
* @returns {Promise}
*/
export const advanceStage = (targetStage) =>
request({ url: '/api/tasks/onboarding/advance-stage', method: 'POST', data: { target_stage: targetStage } })
/**
* 领取引导阶段奖励
* @param {number} stage - 阶段号
* @returns {Promise}
*/
export const claimOnboardingReward = (stage) =>
request({ url: '/api/tasks/onboarding/claim-reward', method: 'POST', data: { stage } })
/**
* 获取展示收益列表
* @param {number} starId - 明星ID
* @param {string} status - 状态筛选claimable/claimed可选
* @param {number} page - 页码
* @param {number} pageSize - 每页条数
* @returns {Promise}
*/
export const getExhibitionRevenue = (starId, status, page, pageSize) =>
request({
url: '/api/tasks/exhibition-revenue',
data: { star_id: starId, status, page, page_size: pageSize }
})
/**
* 领取单个展示收益
* @param {number} revenueId - 收益记录ID
* @param {number} starId - 明星ID
* @returns {Promise}
*/
export const claimExhibitionRevenue = (revenueId, starId) =>
request({ url: '/api/tasks/exhibition-revenue/claim', method: 'POST', data: { revenue_id: revenueId, star_id: starId } })
/**
* 一键领取所有可领取展示收益
* @param {number} starId - 明星ID
* @returns {Promise}
*/
export const claimAllExhibitionRevenue = (starId) =>
request({ url: '/api/tasks/exhibition-revenue/claim-all', method: 'POST', data: { star_id: starId } })