@lofter-mission/core
Version:
任务体系逻辑SDK - 提供活动数据获取、任务数据预处理和二次包装功能
125 lines • 3.17 kB
TypeScript
import { PrizeItem, PrizeType, PrizeUserStatus } from '../types/mission';
/**
* 奖励活动类
* 封装奖励活动相关的数据和操作方法
*/
export declare class AwardActivity {
/** 兑换活动code */
readonly activityCode: string;
/** 活动开始时间 */
readonly startTime: number;
/** 活动结束时间 */
readonly endTime: number;
/** 是否进行中 */
readonly isActive: boolean;
/** 可兑换奖品数 */
readonly availablePrizesCount: number;
/** 奖品列表 */
readonly items: PrizeItem[];
constructor(data: {
activityCode: string;
startTime: number;
endTime: number;
isActive: boolean;
availablePrizesCount: number;
items: PrizeItem[];
});
/**
* 获取可兑换的奖品列表
*/
getAvailablePrizes(): PrizeItem[];
convertPrize({ prizeCode, prizeActivityCode, step, ...otherCustomParams }: {
prizeCode: string;
prizeActivityCode: string;
step?: number;
[key: string]: any;
}): Promise<any>;
/**
* 获取不可兑换的奖品列表 抢光了或者已兑换
*/
getUnavailablePrizes(): PrizeItem[];
/**
* 按奖品类型获取奖品列表
*/
getPrizesByType(type: PrizeType): PrizeItem[];
/**
* 获取积分类奖品
*/
getPointsPrizes(): PrizeItem[];
/**
* 获取实物奖品
*/
getGoodsPrizes(): PrizeItem[];
/**
* 获取虚拟奖品
*/
getVirtualPrizes(): PrizeItem[];
/**
* 获取抽奖券奖品
*/
getLotteryPrizes(): PrizeItem[];
/**
* 获取皮肤奖品
*/
getSkinPrizes(): PrizeItem[];
/**
* 获取头像框奖品
*/
getAvatarBoxPrizes(): PrizeItem[];
/**
* 获取抽奖装扮奖品
*/
getSlotDressingPrizes(): PrizeItem[];
/**
* 获取定时抽奖奖品
*/
getSlotScheduledPrizes(): PrizeItem[];
/**
* 按用户状态获取奖品列表
*/
getPrizesByUserStatus(status: PrizeUserStatus): PrizeItem[];
/**
* 根据奖品code查找奖品
*/
getPrizeByCode(itemCode: string): PrizeItem | undefined;
/**
* 检查用户是否可以兑换指定奖品
*/
canRedeemPrize(itemCode: string): boolean;
/**
* 获取奖品总数
*/
getTotalPrizeCount(): number;
/**
* 获取已达到兑换上限的奖品数
*/
getMaxedOutPrizeCount(): number;
/**
* 获取活动剩余时间(毫秒)
*/
getTimeRemaining(): number;
/** 判断活动未开始 */
isNotStarted(): boolean;
/** 判断活动是否结束 */
isEnded(): boolean;
/**
* 格式化活动剩余时间
*/
getTimeRemainingText(): string;
/**
* 检查是否有可用奖品
*/
hasAvailablePrizes(): boolean;
/**
* 转换为JSON对象
*/
toJSON(): {
activityCode: string;
startTime: number;
endTime: number;
isActive: boolean;
availablePrizesCount: number;
items: PrizeItem[];
};
}
//# sourceMappingURL=AwardActivity.d.ts.map