活动:添加新任务类型
This commit is contained in:
@@ -8,14 +8,14 @@ export enum ACTIVITY_TYPE {
|
||||
DAILY_DISCOUNT_GIFT = 1, // 七天乐活动,每日特惠礼包
|
||||
TASK_GROWTH = 2, // 成长任务活动
|
||||
TASK_DAILY_CHALLENGES = 3, // 今日挑战活动
|
||||
SIGN_IN = 4, // 签到活动
|
||||
SIGN_IN_VIP = 5, // 签到活动(高级)RMB购买
|
||||
GROWTH_FUND_MAIN = 6, // 主线成长基金
|
||||
GROWTH_FUND_MAIN_VIP = 7, // 主线成长基金(高阶)
|
||||
GROWTH_FUND_TOWER = 8, // 镇念塔成长基金
|
||||
GROWTH_FUND_TOWER_VIP = 9, // 镇念塔成长基金(高阶)
|
||||
GROWTH_FUND_MAIN_ELITE = 10, // 精英成长基金
|
||||
GROWTH_FUND_MAIN_ELITE_VIP = 11, // 精英成长基金(高阶)
|
||||
SIGN_IN = 4, // 签到活动 (开服立即开启,配置每月*日到*日结束)
|
||||
SIGN_IN_VIP = 5, // 签到活动(高级)RMB购买 (开服立即开启,配置每月*日到*日结束)
|
||||
GROWTH_FUND_MAIN = 6, // 主线成长基金 (注册后可见,永久存在)
|
||||
GROWTH_FUND_MAIN_VIP = 7, // 主线成长基金(高阶)(注册后可见,永久存在)
|
||||
GROWTH_FUND_TOWER = 8, // 镇念塔成长基金 (注册后可见,永久存在)
|
||||
GROWTH_FUND_TOWER_VIP = 9, // 镇念塔成长基金(高阶) (注册后可见,永久存在)
|
||||
GROWTH_FUND_MAIN_ELITE = 10, // 精英成长基金 (注册后可见,永久存在)
|
||||
GROWTH_FUND_MAIN_ELITE_VIP = 11, // 精英成长基金(高阶)(注册后可见,永久存在)
|
||||
THIRTY_DAYS = 12, // 30日目标活动
|
||||
SELF_SERVICE_SHOP = 13, // 自选商店
|
||||
FIRST_GIFT = 14, // 首充礼包
|
||||
|
||||
@@ -54,6 +54,14 @@ export default class Activity_Pop_Up_Shop extends BaseModel {
|
||||
}
|
||||
|
||||
//根据活动taskId查询现在正在进行的活动数据
|
||||
public static async findDataByTaskId(serverId: number, activityId: number, roleId: string, id: number, type: number) {
|
||||
let result: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOne({
|
||||
serverId, roleId, activityId, id, type,
|
||||
}).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
//根据活动taskId查询现在正在开启的商店数据
|
||||
public static async findOpenDataByTaskId(serverId: number, activityId: number, roleId: string, id: number, type: number) {
|
||||
let nowDate = new Date();
|
||||
let result: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOne({
|
||||
|
||||
@@ -41,10 +41,12 @@ export class TreasureHuntFirstPageData {
|
||||
export class ConsumeData {
|
||||
count: number; // 第几次购买,1开始
|
||||
consume: string; //消耗资源 "2&31002&400"
|
||||
discount: number; // 折扣
|
||||
|
||||
constructor(data: any) {
|
||||
this.count = data.count;
|
||||
this.consume = data.consume;
|
||||
this.discount = data.discount;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +58,7 @@ export class TreasureHuntShopItem {
|
||||
productID: string; // 商品id
|
||||
reward: string; //奖励
|
||||
countMax: number; //最大购买次数
|
||||
discount: number; //折扣
|
||||
imageName: string;
|
||||
consume: ConsumeData[]; //每次购买价格不同
|
||||
|
||||
@@ -68,6 +71,7 @@ export class TreasureHuntShopItem {
|
||||
this.productID = data.productID;
|
||||
this.reward = data.reward;
|
||||
this.countMax = data.countMax;
|
||||
this.discount = data.discount;
|
||||
this.imageName = data.imageName;
|
||||
this.consume = [];
|
||||
for (let obj of data.data) {
|
||||
|
||||
@@ -502,7 +502,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null;
|
||||
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||
if (addCount) {
|
||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE) {
|
||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
|
||||
await ActivityGrowthModel.setTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
} else {
|
||||
await ActivityGrowthModel.addTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
@@ -524,7 +524,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
|
||||
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||
if (addCount) {
|
||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE) {
|
||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
|
||||
await ActivityDailyChallengesModel.setTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
} else {
|
||||
await ActivityDailyChallengesModel.addTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
@@ -541,6 +541,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
taskType === TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT ||
|
||||
taskType === TASK_TYPE.HERO_WAKE_UP_COUNT ||
|
||||
taskType === TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT ||
|
||||
taskType === TASK_TYPE.HERO_QUALITY ||
|
||||
|
||||
taskType === TASK_TYPE.EQUIP_STRENGTHEN ||
|
||||
taskType === TASK_TYPE.EQUIP_REFINE_LV ||
|
||||
@@ -589,15 +590,15 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
for (let task of allTaskData) {
|
||||
if (task.taskType == taskType) {
|
||||
let popShopData = new PopUpShopData(task, activity.activityId);
|
||||
let taskRecord = await ActivityPopUpShopModel.findOpenDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
|
||||
let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
|
||||
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
|
||||
if (!taskRecord || !taskRecord.isPush) {
|
||||
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||
if (addCount) {
|
||||
let beginTime = new Date();
|
||||
let endTime = moment(new Date()).add(task.duration, 'h').toDate();
|
||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE) {
|
||||
let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
|
||||
let playerRecord = await ActivityPopUpShopModel.setTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||
//推送
|
||||
if (task.condition <= playerRecord.totalCount) {
|
||||
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||
@@ -852,7 +853,41 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin
|
||||
}
|
||||
case TASK_TYPE.BATTLE_TOWER_LV://{towerLv}
|
||||
{
|
||||
addCount = paramObj.towerLv;
|
||||
let towerLv = paramObj.towerLv;
|
||||
console.log('dddddddd', recordData, towerLv)
|
||||
if (recordData) {
|
||||
console.log('dddddddd22', recordData)
|
||||
if (recordData >= towerLv) {
|
||||
console.log('dddddddd22333', recordData)
|
||||
break;
|
||||
}
|
||||
}
|
||||
record = towerLv;
|
||||
addCount = towerLv;
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_MAIN_ELITE:
|
||||
{
|
||||
if (paramObj.mainEliteWarId == param[1]) {
|
||||
addCount = count;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_DUNGEON_WAR:
|
||||
{
|
||||
if (paramObj.warId == param[1]) {
|
||||
addCount = count;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.HERO_NUM:
|
||||
{
|
||||
addCount = count;
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.PVP:
|
||||
{
|
||||
addCount = count;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user