104 lines
3.2 KiB
JavaScript
104 lines
3.2 KiB
JavaScript
/**
|
||
* 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 } })
|