活动:修改任务接口
This commit is contained in:
@@ -30,6 +30,14 @@ export default class Activity extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
//根据活动类型查询开启的活动数据
|
||||
public static async findOpenActivityByTypes(activityGroupId: number[], types: number[], date: Date) {
|
||||
let result: ActivityModelType[] = await ActivityModel.find(
|
||||
{ groupId: { $in: activityGroupId }, type: { $in: types }, beginTime: { $lte: date }, endTime: { $gte: date } }
|
||||
).sort({ activityId: -1 }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
//根据活动类型查询活动数据
|
||||
public static async findActivityByType(activityGroupId: number[], type: number, sort: number) {
|
||||
let result: ActivityModelType[] = await ActivityModel.find({ groupId: { $in: activityGroupId }, type }).sort({ activityId: sort }).lean(true);
|
||||
|
||||
@@ -63,6 +63,12 @@ export default class UserOrder extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
//查询成功订单详情
|
||||
public static async findSuccessOrderByProductID(productID: string, roleId: string, activityId: number) {
|
||||
let result: UserOrderModelType[] = await UserOrderModel.find({ productID, roleId, activityId, state: ORDER_STATE.RESULT_SUCCESS }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
//查询订单详情
|
||||
public static async findOrderByProductID(productID: string, roleId: string, activityId: number) {
|
||||
let result: UserOrderModelType[] = await UserOrderModel.find({ productID, roleId, activityId }).lean(true);
|
||||
|
||||
@@ -60,6 +60,43 @@ export class GrowthFundData extends ActivityBase {
|
||||
buyRecords: Array<number> = [];//高阶购买记录
|
||||
receiveRecords: Array<ActivityGrowthFundModelType> = [];//领取记录
|
||||
|
||||
public unLockItem(condition: number) {
|
||||
let items = [];
|
||||
for (let page of this.list) {
|
||||
if (this.isVipActivity() && !this.isBuy(page.pageIndex)) {
|
||||
continue;
|
||||
}
|
||||
for (let item of page.items) {
|
||||
switch (this.type) {
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN:
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP: {
|
||||
if (!this.isReceive(page.pageIndex, item.cellIndex) && item.condition == condition) {
|
||||
item.isComplete = true;
|
||||
items.push(Object.assign(item, { pageIndex: page.pageIndex, activityId: this.activityId }))
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN:
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP:
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE:
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP: {
|
||||
if (!this.isReceive(page.pageIndex, item.cellIndex) && item.condition <= condition) {
|
||||
item.isComplete = true;
|
||||
items.push(Object.assign(item, { pageIndex: page.pageIndex, activityId: this.activityId }))
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
public findPageByProductID(productID: string) {
|
||||
let index = this.list.findIndex(obj => { return obj && obj.productID === productID });
|
||||
return (index != -1) ? this.list[index] : null;
|
||||
}
|
||||
|
||||
//是否是高阶,需要购买
|
||||
public isVipActivity() {
|
||||
return this.type == ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP
|
||||
|
||||
@@ -24,6 +24,7 @@ export class YuanBaoShopItem {
|
||||
this.firstReward = data.firstReward;
|
||||
this.extraReward = data.extraReward;
|
||||
this.imageName = data.imageName;
|
||||
this.buyCount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +48,7 @@ export class YuanBaoShopData extends ActivityBase {
|
||||
return;
|
||||
}
|
||||
for (let obj of this.list) {
|
||||
let arr = data.filter(obj => { return obj.productID === obj.productID })
|
||||
let arr = data.filter(order => { return order.productID === obj.productID })
|
||||
obj.buyCount = arr.length;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { gameData } from './data';
|
||||
import { DicTask } from './dictionary/DicTask';
|
||||
import { TASK_TYPE, ABI_STAGE, WAR_TYPE, GUILD_JOB, TASK_FUN_TYPE, FUNCS_ID } from '../consts';
|
||||
import { TASK_TYPE, ABI_STAGE, WAR_TYPE, GUILD_JOB, TASK_FUN_TYPE, FUNCS_ID, STATUS } from '../consts';
|
||||
import { UserTaskRecModel, UserTaskRecType } from '../db/UserTaskRec'
|
||||
import { RoleType, RoleModel } from '../db/Role';
|
||||
import { TaskParam, TaskListReturn } from '../domain/roleField/task';
|
||||
@@ -10,7 +10,7 @@ import { EquipType, EquipModel } from '../db/Equip';
|
||||
import { ItemInter } from './interface';
|
||||
import { GrowthData } from '../domain/activityField/growthField';
|
||||
import { DailyChallengesData } from '../domain/activityField/dailyChallengesField';
|
||||
import { splitString } from './util';
|
||||
import { resResult, splitString } from './util';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ACTIVITY_TYPE } from '../consts/constModules/activityConst';
|
||||
import { ActivityGrowthModel } from '../db/ActivityGrowth';
|
||||
@@ -19,6 +19,8 @@ import { ThirtyDaysData } from '../domain/activityField/thirtyDaysField';
|
||||
import { GrowthFundData } from '../domain/activityField/growthFundField';
|
||||
import { ActivityThirtyDaysModel, ActivityThirtyDaysModelType } from '../db/ActivityThirtyDays';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { ActivityGrowthFundModel, ActivityGrowthFundModelType } from '../db/ActivityGrowthFund';
|
||||
import { ActivityBuyRecordsModel } from '../db/ActivityBuyRecords';
|
||||
|
||||
|
||||
|
||||
@@ -484,6 +486,7 @@ function checkRecResult(rec: UserTaskRecType, id: number) {
|
||||
*
|
||||
*/
|
||||
export async function accomplishTask(serverId: number, roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
|
||||
let pushMessage = [];
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
//七天乐-成长活动统计
|
||||
let allActivity: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
|
||||
@@ -550,17 +553,54 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
|
||||
//主线成长基金
|
||||
if (taskType === TASK_TYPE.BATTLE_MAIN) {
|
||||
|
||||
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN, ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP], new Date());
|
||||
for (let activity of allActivity) {
|
||||
let growthFundActivity = new GrowthFundData(activity);
|
||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||
growthFundActivity.setPlayerRecords(playerRecords);
|
||||
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
||||
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
||||
growthFundActivity.initBuyRecords(buyRecords);
|
||||
}
|
||||
let taskArray = growthFundActivity.unLockItem(parma.warId);
|
||||
//推送
|
||||
pushMessage = pushMessage.concat(taskArray);
|
||||
}
|
||||
}
|
||||
//镇念塔成长基金
|
||||
//镇念塔成长基金getRoleOnlineInfo
|
||||
if (taskType === TASK_TYPE.BATTLE_TOWER_LV) {
|
||||
|
||||
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_TOWER, ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP], new Date());
|
||||
for (let activity of allActivity) {
|
||||
let growthFundActivity = new GrowthFundData(activity);
|
||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||
growthFundActivity.setPlayerRecords(playerRecords);
|
||||
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
||||
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
||||
growthFundActivity.initBuyRecords(buyRecords);
|
||||
}
|
||||
let taskArray = growthFundActivity.unLockItem(parma.warId);
|
||||
//推送
|
||||
pushMessage = pushMessage.concat(taskArray);
|
||||
}
|
||||
}
|
||||
//精英成长基金
|
||||
if (taskType === TASK_TYPE.BATTLE_MAIN_ELITE) {
|
||||
|
||||
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP], new Date());
|
||||
for (let activity of allActivity) {
|
||||
let growthFundActivity = new GrowthFundData(activity);
|
||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||
growthFundActivity.setPlayerRecords(playerRecords);
|
||||
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
||||
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
||||
growthFundActivity.initBuyRecords(buyRecords);
|
||||
}
|
||||
let taskArray = growthFundActivity.unLockItem(parma.warId);
|
||||
//推送
|
||||
pushMessage = pushMessage.concat(taskArray);
|
||||
}
|
||||
}
|
||||
|
||||
return pushMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user