优化:任务中的活动读内存
This commit is contained in:
@@ -485,10 +485,27 @@ function checkRecResult(rec: UserTaskRecType, id: number) {
|
||||
* @param {number} parma 参数
|
||||
*
|
||||
*/
|
||||
export async function accomplishTask(serverId: number, roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
|
||||
export async function accomplishTask(serverId: number, roleId: string, taskType: TASK_TYPE, count: number, parma?: any, activities?: ActivityModelType[]) {
|
||||
// console.log('accomplishTask', roleId, taskType, count, JSON.stringify(parma))
|
||||
let pushMessage = [];
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let findActivitiesByTypes = async (types: number[]) => {
|
||||
if(activities) {
|
||||
let result: ActivityModelType[] = [];
|
||||
for(let activity of activities) {
|
||||
if(activityGroupId.includes(activity.groupId) && types.includes(activity.type)) {
|
||||
result.push(activity);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
} else {
|
||||
if(types.length > 1) {
|
||||
return ActivityModel.findOpenActivityByTypes(activityGroupId, types, new Date());
|
||||
} else {
|
||||
return ActivityModel.findOpenActivityByType(activityGroupId, types[0], new Date());
|
||||
}
|
||||
}
|
||||
}
|
||||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
// //成长活动统计
|
||||
// let allActivity: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
|
||||
@@ -551,7 +568,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
// }
|
||||
|
||||
//七天乐
|
||||
let allActivity: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SEVEN_DAY, new Date());
|
||||
let allActivity: ActivityModelType[] = await findActivitiesByTypes([ACTIVITY_TYPE.SEVEN_DAY]);
|
||||
for (let activity of allActivity) {
|
||||
let playerData = new SevenDaysData(activity, createTime)
|
||||
//成长活动统计
|
||||
@@ -609,7 +626,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
}
|
||||
|
||||
//今日挑战统计
|
||||
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
|
||||
allActivity = await findActivitiesByTypes([ACTIVITY_TYPE.TASK_DAILY_CHALLENGES]);
|
||||
for (let activity of allActivity) {
|
||||
let growthActivity = new DailyChallengesData(activity, createTime);
|
||||
let taskArray = growthActivity.findTaskByType(taskType, growthActivity.today());
|
||||
@@ -639,7 +656,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
}
|
||||
|
||||
//刷新任务统计
|
||||
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.REFRESH_TASK, new Date());
|
||||
allActivity = await findActivitiesByTypes([ACTIVITY_TYPE.REFRESH_TASK]);
|
||||
for (let activity of allActivity) {
|
||||
let taskActivity = new RefreshTaskData(activity, createTime);
|
||||
let taskArray = taskActivity.findTaskByType(taskType);
|
||||
@@ -729,7 +746,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
taskType === TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE ||
|
||||
taskType === TASK_TYPE.EQUIP_QUALITY
|
||||
) {
|
||||
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.THIRTY_DAYS, new Date());
|
||||
allActivity = await findActivitiesByTypes([ACTIVITY_TYPE.THIRTY_DAYS]);
|
||||
for (let activity of allActivity) {
|
||||
let thirtyDaysActivity = new ThirtyDaysData(activity, createTime);
|
||||
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(serverId, activity.activityId, roleId);
|
||||
@@ -762,7 +779,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
|
||||
//弹出商店
|
||||
{
|
||||
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.POP_UP_SHOP, new Date());
|
||||
allActivity = await findActivitiesByTypes([ACTIVITY_TYPE.POP_UP_SHOP]);
|
||||
for (let activity of allActivity) {
|
||||
let allTaskData: any[] = JSON.parse(activity.data);
|
||||
for (let task of allTaskData) {
|
||||
@@ -834,7 +851,7 @@ 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());
|
||||
allActivity = await findActivitiesByTypes([ACTIVITY_TYPE.GROWTH_FUND_MAIN, ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP]);
|
||||
for (let activity of allActivity) {
|
||||
let growthFundActivity = new GrowthFundData(activity, createTime);
|
||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||
@@ -850,7 +867,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
}
|
||||
//镇念塔成长基金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());
|
||||
allActivity = await findActivitiesByTypes([ACTIVITY_TYPE.GROWTH_FUND_TOWER, ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP]);
|
||||
for (let activity of allActivity) {
|
||||
let growthFundActivity = new GrowthFundData(activity, createTime);
|
||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||
@@ -866,7 +883,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
}
|
||||
//精英成长基金
|
||||
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());
|
||||
allActivity = await findActivitiesByTypes([ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP]);
|
||||
for (let activity of allActivity) {
|
||||
let growthFundActivity = new GrowthFundData(activity, createTime);
|
||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||
|
||||
Reference in New Issue
Block a user