活动:军团练兵场通过层数后推送

This commit is contained in:
qiaoxin
2021-06-08 20:21:47 +08:00
parent 8f015b5cb6
commit d1a4754fc5
9 changed files with 191 additions and 142 deletions

View File

@@ -630,7 +630,7 @@ export enum TASK_TYPE {
HERO_WAKE_UP_STAR_UP_COUNT = 76, // *名武将升至觉醒*星
EQUIP_REFINE_LV = 77, // *件装备成功精炼到*级
EQUIP_SUIT_JEWEL_STAGE = 78, // *次触发,一个武将满装备情况下,必须都镶嵌有相同阶的宝石(阶数大于等于x情况下都算达成)
GUILD_TRAIN_COUNT = 79, // 练兵场通关x关x次
GUILD_TRAIN_COUNT = 79, // 练兵场通关x
HERO_UNLOCK = 80, // 名将谱x阵营全部激活
GACHA_QUALITY_COUNT = 81, // 抽到*次品质*武将
ROLE_TERAPH_STAGE_UP = 82, // 神像进阶

View File

@@ -100,12 +100,22 @@ export default class Activity_Pop_Up_Shop extends BaseModel {
}
//添加数据并标记push消息
public static async addTaskPushMessage(serverId: number, activityId: number, roleId: string, id: number, type: number, addCount: number, beginTime: Date, endTime: Date) {
let result: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOneAndUpdate({ serverId, roleId, activityId, id, type, addCount, beginTime, endTime },
public static async addTaskPushMessage(serverId: number, activityId: number, roleId: string, id: number, type: number, totalCount: number, beginTime: Date, endTime: Date) {
let result: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOneAndUpdate({ serverId, roleId, activityId, id, type, totalCount, beginTime, endTime },
{ $set: { isPush: true } }, { upsert: true, new: true }).lean(true);
return result;
}
//添加数据并标记push消息
public static async addTaskArrayPushMessage(serverId: number, activityId: number, roleIds: string[], id: number, type: number, totalCount: number, beginTime: Date, endTime: Date) {
let activityData = [];
for (let roleId of roleIds) {
activityData.push(
{ serverId, roleId, activityId, id, type, totalCount, beginTime, endTime, isPush: true, buyCount: 0, data: JSON.stringify({ totalCount }) }
)
}
await ActivityPopUpShopModel.insertMany(activityData);
}
//删除活动领取记录
public static async deleteActivity(serverId: number, activityId: number, roleId: string, id: number) {

View File

@@ -47,8 +47,8 @@ export default class Activity_Thirty_Days extends BaseModel {
}
//根据活动记录统计数据
public static async addTaskRecord(serverId: number, activityId: number, roleId: string, dayIndex: number, cellIndex: number, tab: number, type: number, data: string,) {
let result: ActivityThirtyDaysModelType = await ActivityThirtyDaysModel.findOneAndUpdate({ serverId, roleId, activityId, dayIndex, cellIndex, tab, type },
public static async addTaskRecord(serverId: number, activityId: number, roleId: string, pageIndex: number, cellIndex: number, tab: number, type: number, data: string,) {
let result: ActivityThirtyDaysModelType = await ActivityThirtyDaysModel.findOneAndUpdate({ serverId, roleId, activityId, pageIndex, cellIndex, tab, type },
{ $set: { data: data } }, { upsert: true, new: true }).lean(true);
return result;
}

View File

@@ -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';
@@ -8,9 +8,8 @@ import { getZeroPoint } from './timeUtil';
import { HeroType } from '../db/Hero';
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';
@@ -26,6 +25,7 @@ import { ActivityPopUpShopModel } from '../db/ActivityPopUpShop';
import { ActivityPopUpShopRecordModel, ActivityPopUpShopRecordModelType } from '../db/ActivityPopUpShopRecord';
import { SevenDaysData } from '../domain/activityField/sevenDaysField';
import moment = require("moment");
import { GuildModel } from '../db/Guild';
@@ -721,6 +721,19 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
} else {
await ActivityPopUpShopRecordModel.addRecord(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate, addCount)
}
} else if (taskType == TASK_TYPE.GUILD_TRAIN_COUNT) {//军团练兵场通关层数推送所有团员
if (task.taskParam[0] == parma.trainId) {
let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, count, beginTime, endTime);
popShopData.setPlayerRecords(playerRecord)
pushMessage = pushMessage.concat(popShopData);
//全服推送
let code = parma.code;
const guildData = await GuildModel.findByCode(code, serverId, 'members');
let members = guildData.members.filter(member => { return member != roleId })
await ActivityPopUpShopModel.addTaskArrayPushMessage(serverId, activity.activityId, members, task.id, task.taskType, count, beginTime, endTime);
}
} else {
let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
@@ -1016,9 +1029,9 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin
addCount = count;
break;
}
case TASK_TYPE.GUILD_TRAIN_COUNT://trainId count&wardId&
case TASK_TYPE.GUILD_TRAIN_COUNT://trainId trainId&
{
if (paramObj.trainId == param[1]) {
if (paramObj.trainId == param[0]) {
addCount = count;
}
break;

View File

@@ -704,9 +704,9 @@
{
"id": 79,
"name": "军团",
"info": "练兵场通关x关x次",
"param": "count&wardId&",
"string": "发生次数&关卡Id&",
"info": "练兵场通关x",
"param": "trainId&",
"string": "练兵场层trainId&",
"content": 0,
"condition": "count"
},