活动:修改结构

This commit is contained in:
qiaoxin
2021-06-30 11:41:38 +08:00
parent 550ec29842
commit 3cff8acf3a
60 changed files with 260 additions and 169 deletions

View File

@@ -1,6 +1,7 @@
import moment = require('moment');
import { ACTIVITY_TIME_TYPE, REFRESH_TIME, SERVER_OPEN_TIME } from '../../consts';
import { ActivityModelType } from '../../db/Activity';
import { RoleModel } from '../../db/Role';
import { deltaDays } from '../../pubUtils/util';
// 活动数据
@@ -22,7 +23,7 @@ export abstract class ActivityBase {
return this.todayIndex;
}
constructor(activityData: ActivityModelType) {
constructor(activityData: ActivityModelType, createTime: number) {
this.activityId = activityData.activityId;
this.delayDay = activityData.delayDay ? activityData.delayDay : 0;
this.beginTime = moment(activityData.beginTime).add(this.delayDay, 'd').valueOf();
@@ -44,7 +45,7 @@ export abstract class ActivityBase {
break;
}
case ACTIVITY_TIME_TYPE.ROLE_REGISTER_TIME: {
this.beginTime = moment(SERVER_OPEN_TIME).add(this.delayDay, 'd').startOf('d').add(REFRESH_TIME, 'h').valueOf();
this.beginTime = moment(createTime * 1000).add(this.delayDay, 'd').startOf('d').add(REFRESH_TIME, 'h').valueOf();
if (activityData.days > 0) {
this.endTime = moment(this.beginTime).add(activityData.days, 'd').valueOf();
} else {

View File

@@ -73,8 +73,8 @@ export class DailyChallengesData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -110,8 +110,8 @@ export class DailyCoinData extends ActivityBase {
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -55,8 +55,8 @@ export class DailyGKData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -72,8 +72,8 @@ export class DailyGiftsData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -66,8 +66,8 @@ export class DailyMealData extends ActivityBase {
// console.log('ddddddddddddbbbbbbb')
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -100,8 +100,8 @@ export class DailyRMBGiftsData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -78,8 +78,8 @@ export class FirstGiftData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -30,7 +30,7 @@ export class GachaData extends ActivityBase {
let dicGacha = gameData.gacha.get(this.gachaId);
this.pickHero = userGacha.pickHero;
this.freeCount = userGacha.freeCount;
if(dicGacha.free.count > 0) {
if (dicGacha.free.count > 0) {
let f = getTimeFun(userGacha.refFreeTime);
this.refFreeTime = <number>f.getAfterDayWithHour(dicGacha.free.day);
}
@@ -38,8 +38,8 @@ export class GachaData extends ActivityBase {
this.floor = userGacha.floor;
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
}
}
@@ -91,13 +91,13 @@ export class GachaListReturn {
point: number = 0; // 积分
turntable: Turntable[] = []; // 转盘记录
pickHero: number = 0; // 玩家选择的武将
constructor(dicGacha: DicGacha, userGacha: UserGachaType) {
this.gachaId = dicGacha.id;
if(userGacha) {
if (userGacha) {
this.freeCount = userGacha.freeCount;
if(dicGacha.free.count > 0) {
if (dicGacha.free.count > 0) {
let f = getTimeFun(userGacha.refFreeTime);
this.refFreeTime = <number>f.getAfterDayWithHour(dicGacha.free.day);
}
@@ -130,7 +130,7 @@ export class GachaResult {
}
setSetPickHero(hid: number) {
if(hid > 0 && this.hid == GACHA_OCCUPY_HID) {
if (hid > 0 && this.hid == GACHA_OCCUPY_HID) {
this.hid = hid;
}
}

View File

@@ -149,8 +149,8 @@ export class GrowthData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -164,8 +164,8 @@ export class GrowthFundData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -90,8 +90,8 @@ export class LimitShopData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -68,8 +68,8 @@ export class MonopolyData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -56,8 +56,8 @@ export class MonthlyTicketData extends ActivityBase {
this.endTime = 0;
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -95,8 +95,8 @@ export class NewHeroGKData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -70,8 +70,8 @@ export class NewHeroGachaData extends ActivityBase {
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -64,8 +64,8 @@ export class NewHeroGiftData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -84,8 +84,8 @@ export class RechargeMoneyData extends ActivityBase {
})
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -168,8 +168,8 @@ export class RefreshShopData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -128,8 +128,8 @@ export class RefreshTaskData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -104,8 +104,8 @@ export class SelfServiceShopData extends ActivityBase {
this.roundIndex = Math.ceil(this.todayIndex / this.days);
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -319,8 +319,8 @@ export class SevenDaysData extends ActivityBase {
this.dailyChallenge = new SevenDaysDailyChallengesData(objData.dailyChallenge)
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -108,8 +108,8 @@ export class SignInData extends ActivityBase {
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -256,8 +256,8 @@ export class ThirtyDaysData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -337,8 +337,8 @@ export class TreasureHuntData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -61,8 +61,8 @@ export class VipRechargeMoneyData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -62,8 +62,8 @@ export class YuanBaoShopData extends ActivityBase {
}
}
constructor(activityData: ActivityModelType) {
super(activityData)
constructor(activityData: ActivityModelType, createTime: number) {
super(activityData, createTime)
this.initData(activityData.data)
}
}

View File

@@ -499,6 +499,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
console.log('accomplishTask', roleId, taskType, count, JSON.stringify(parma))
let pushMessage = [];
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
let { createTime } = await RoleModel.findByRoleId(roleId);
// //成长活动统计
// let allActivity: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
// for (let activity of allActivity) {
@@ -562,7 +563,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
//七天乐
let allActivity: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SEVEN_DAY, new Date());
for (let activity of allActivity) {
let playerData = new SevenDaysData(activity)
let playerData = new SevenDaysData(activity, createTime)
//成长活动统计
let growthActivity = playerData.growth;
let growthTaskArray = growthActivity.findTaskByType(taskType);
@@ -620,7 +621,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
//今日挑战统计
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
for (let activity of allActivity) {
let growthActivity = new DailyChallengesData(activity);
let growthActivity = new DailyChallengesData(activity, createTime);
let taskArray = growthActivity.findTaskByType(taskType, growthActivity.today());
for (let task of taskArray) {
let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType)
@@ -650,7 +651,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
//刷新任务统计
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.REFRESH_TASK, new Date());
for (let activity of allActivity) {
let taskActivity = new RefreshTaskData(activity);
let taskActivity = new RefreshTaskData(activity, createTime);
let taskArray = taskActivity.findTaskByType(taskType);
for (let task of taskArray) {
let taskRecord = await ActivityRefreshTaskModel.findDataById(serverId, taskActivity.activityId, roleId, taskActivity.roundIndex, task.pageIndex, task.id, task.taskType)
@@ -686,7 +687,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
let huntRoundIndex = tempData.huntRoundIndex;
let activity = await ActivityModel.findActivity(tempData.huntActivityId);
if (activity) {
let playerData = new TreasureHuntData(activity);
let playerData = new TreasureHuntData(activity, createTime);
playerData.beginTime = moment(huntBeginTime).valueOf();
playerData.endTime = moment(huntEndTime).valueOf();
playerData.roundIndex = huntRoundIndex;
@@ -740,7 +741,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
) {
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.THIRTY_DAYS, new Date());
for (let activity of allActivity) {
let thirtyDaysActivity = new ThirtyDaysData(activity);
let thirtyDaysActivity = new ThirtyDaysData(activity, createTime);
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(serverId, activity.activityId, roleId);
thirtyDaysActivity.setPlayerRecords(playerRecords);
let taskArray = thirtyDaysActivity.findUncompleteTaskByType(taskType);
@@ -845,7 +846,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());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let growthFundActivity = new GrowthFundData(activity, createTime);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
@@ -861,7 +862,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
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 growthFundActivity = new GrowthFundData(activity, createTime);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
@@ -877,7 +878,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());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let growthFundActivity = new GrowthFundData(activity, createTime);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买