活动:修改获取活动逻辑,从serverlist上剥离
This commit is contained in:
@@ -33,8 +33,7 @@ export class ActivityHandler {
|
|||||||
|
|
||||||
let playerActivityArray = [];
|
let playerActivityArray = [];
|
||||||
|
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let groups = await ActivityGroupModel.findByServerId(serverId);
|
||||||
let groups = await ActivityGroupModel.findGroupsData(activityGroupId);
|
|
||||||
let playerGroupArray = [];
|
let playerGroupArray = [];
|
||||||
for (let groupData of groups) {
|
for (let groupData of groups) {
|
||||||
let playerGroupActivityArray = [];
|
let playerGroupActivityArray = [];
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { getServerMainten, setServerMainten, stopServerMainten } from '../../../
|
|||||||
import { taflush } from '../../../services/sdkService';
|
import { taflush } from '../../../services/sdkService';
|
||||||
import { ActivityInRemote } from '../../../domain/activityField/activityField';
|
import { ActivityInRemote } from '../../../domain/activityField/activityField';
|
||||||
import { errlogger } from '../../../util/logger';
|
import { errlogger } from '../../../util/logger';
|
||||||
|
import { ActivityGroupModel } from '../../../db/ActivityGroup';
|
||||||
|
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
new HandlerService(app, {});
|
new HandlerService(app, {});
|
||||||
@@ -39,9 +40,9 @@ export class ActivityRemote {
|
|||||||
|
|
||||||
public async loadActivities() {
|
public async loadActivities() {
|
||||||
try {
|
try {
|
||||||
let servers = await ServerlistModel.findByEnv(this.app.get('env'));
|
let activityGroup = await ActivityGroupModel.findAllActivityGroup();
|
||||||
for(let { id: serverId, activityGroupId } of servers) {
|
for(let { groupId, serverIds } of activityGroup) {
|
||||||
for(let groupId of activityGroupId) {
|
for(let serverId of serverIds) {
|
||||||
if(!this.groupToServer.has(groupId)) {
|
if(!this.groupToServer.has(groupId)) {
|
||||||
this.groupToServer.set(groupId, []);
|
this.groupToServer.set(groupId, []);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -224,16 +224,16 @@ export class GmHandler {
|
|||||||
|
|
||||||
async saveGroupToServer(groupId: number, serverIds: number[], uid: number) {
|
async saveGroupToServer(groupId: number, serverIds: number[], uid: number) {
|
||||||
|
|
||||||
await ServerlistModel.pullByGroupId(groupId);
|
// await ServerlistModel.pullByGroupId(groupId);
|
||||||
let servers = await ServerlistModel.findServerByIds(serverIds);
|
// let servers = await ServerlistModel.findServerByIds(serverIds);
|
||||||
for(let server of servers) {
|
// for(let server of servers) {
|
||||||
let pushArr: number[] = [], pullArr: number[] = [];
|
// let pushArr: number[] = [], pullArr: number[] = [];
|
||||||
let activityGroupId = server.activityGroupId||[];
|
// let activityGroupId = server.activityGroupId||[];
|
||||||
if(!activityGroupId.includes(groupId)) {
|
// if(!activityGroupId.includes(groupId)) {
|
||||||
pushArr.push(groupId);
|
// pushArr.push(groupId);
|
||||||
}
|
// }
|
||||||
await ServerlistModel.updateActivityGroup(server._id, pushArr, pullArr);
|
// await ServerlistModel.updateActivityGroup(server._id, pushArr, pullArr);
|
||||||
}
|
// }
|
||||||
await ActivityGroupModel.updateServerData(groupId, serverIds, uid);
|
await ActivityGroupModel.updateServerData(groupId, serverIds, uid);
|
||||||
|
|
||||||
let activityServers = pinus.app.getServersByType('activity');
|
let activityServers = pinus.app.getServersByType('activity');
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ export function _getActivitiesByType(serverId: number, type: number) {
|
|||||||
let result: ActivityInRemote[] = [];
|
let result: ActivityInRemote[] = [];
|
||||||
for(let activityId of activityByType) {
|
for(let activityId of activityByType) {
|
||||||
let activity = activities.get(activityId);
|
let activity = activities.get(activityId);
|
||||||
if(activity && activity.beginTime <= Date.now()) {
|
if(activity && activity.beginTime <= Date.now() && activity.endTime >= Date.now()) {
|
||||||
result.push(activity);
|
result.push(activity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { DailyChallengesData } from '../../domain/activityField/dailyChallengesField';
|
import { DailyChallengesData } from '../../domain/activityField/dailyChallengesField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +17,8 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function dailyChallengesActivity(serverId: number, roleId: string) {
|
export async function dailyChallengesActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
|
let activityDataArray: ActivityModelType[] = await getActivitiesByType(serverId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES);
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { DailyCoinData } from '../../domain/activityField/dailyCoinField';
|
import { DailyCoinData } from '../../domain/activityField/dailyCoinField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +17,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function dailyCoinActivity(serverId: number, roleId: string) {
|
export async function dailyCoinActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.DAILY_COIN);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_COIN, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { DailyGKData } from '../../domain/activityField/dailyGKField';
|
import { DailyGKData } from '../../domain/activityField/dailyGKField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +17,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function dailyGKActivity(serverId: number, roleId: string) {
|
export async function dailyGKActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.DAILY_GK);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_GK, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { DailyGiftsData } from '../../domain/activityField/dailyGiftsField';
|
import { DailyGiftsData } from '../../domain/activityField/dailyGiftsField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -18,8 +18,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function dailyGiftsActivity(serverId: number, roleId: string) {
|
export async function dailyGiftsActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { DailyMealData } from '../../domain/activityField/dailyMealField';
|
import { DailyMealData } from '../../domain/activityField/dailyMealField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +17,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function dailyMealActivity(serverId: number, roleId: string) {
|
export async function dailyMealActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.DAILY_MEAL);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_MEAL, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { RewardParam } from '../../domain/activityField/rewardField';
|
|||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { RoleModel } from '../../db/Role';
|
import { RoleModel } from '../../db/Role';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -20,9 +20,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function dailyRMBGiftsActivity(serverId: number, roleId: string) {
|
export async function dailyRMBGiftsActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.DAILY_RMB_GIFTS);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_RMB_GIFTS, new Date())
|
|
||||||
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { ActivityBuyRecordsModel } from '../../db/ActivityBuyRecords';
|
|||||||
import { RoleModel } from '../../db/Role';
|
import { RoleModel } from '../../db/Role';
|
||||||
import { GrowthFundData } from '../../domain/activityField/growthFundField';
|
import { GrowthFundData } from '../../domain/activityField/growthFundField';
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -25,8 +25,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
GROWTH_FUND_MAIN_ELITE_VIP = 11, // 精英成长基金(高阶)
|
GROWTH_FUND_MAIN_ELITE_VIP = 11, // 精英成长基金(高阶)
|
||||||
*/
|
*/
|
||||||
export async function growthFundActivity(type: number, serverId: number, roleId: string) {
|
export async function growthFundActivity(type: number, serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, type);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date())
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,9 @@ import { ActivityModel, ActivityModelType } from '../../db/Activity';
|
|||||||
import { ActivityGrowthModel, ActivityGrowthModelType } from '../../db/ActivityGrowth';
|
import { ActivityGrowthModel, ActivityGrowthModelType } from '../../db/ActivityGrowth';
|
||||||
import { ActivityGrowthPointModel, ActivityGrowthPointModelType } from '../../db/ActivityGrowthPoint';
|
import { ActivityGrowthPointModel, ActivityGrowthPointModelType } from '../../db/ActivityGrowthPoint';
|
||||||
import { HeroModel } from '../../db/Hero';
|
import { HeroModel } from '../../db/Hero';
|
||||||
import { RoleModel } from '../../db/Role';
|
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
|
||||||
import { GrowthData } from '../../domain/activityField/growthField';
|
import { GrowthData } from '../../domain/activityField/growthField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -18,8 +16,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function growthActivity(serverId: number, roleId: string) {
|
export async function growthActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.TASK_GROWTH);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,8 +64,7 @@ export async function getPlayerLimitPackageData(activityId: number, serverId: nu
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function limitPackageActivity(serverId: number, roleId: string, type: number) {
|
export async function limitPackageActivity(serverId: number, roleId: string, type: number) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, type);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date)
|
|
||||||
activityArray = activityArray.sort((a, b) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { MonopolyData } from '../../domain/activityField/monopolyField';
|
import { MonopolyData } from '../../domain/activityField/monopolyField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18,8 +18,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function getMonopolyActivity(serverId: number, roleId: string) {
|
export async function getMonopolyActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.MONOPOLY);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.MONOPOLY, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import moment = require('moment');
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { sendMailByContent } from './../mailService';
|
import { sendMailByContent } from './../mailService';
|
||||||
import { RoleModel, RoleType } from '../../db/Role';
|
import { RoleModel, RoleType } from '../../db/Role';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { RewardInter } from '../../pubUtils/interface';
|
import { RewardInter } from '../../pubUtils/interface';
|
||||||
import { DUNGEON_CONST, PVP, VIP } from '../../pubUtils/dicParam';
|
import { DUNGEON_CONST, PVP, VIP } from '../../pubUtils/dicParam';
|
||||||
import { cal } from '../../pubUtils/util';
|
import { cal } from '../../pubUtils/util';
|
||||||
@@ -26,8 +26,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function monthlyTicketActivity(serverId: number, roleId: string, type: number) {
|
export async function monthlyTicketActivity(serverId: number, roleId: string, type: number) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, type);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date())
|
|
||||||
activityArray = activityArray.sort((a, b) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
import { ACTIVITY_TYPE } from '../../consts';
|
import { ACTIVITY_TYPE } from '../../consts';
|
||||||
import { ActivityModel, ActivityModelType } from '../../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../../db/Activity';
|
||||||
import { ActivityNewHeroGKModel, ActivityNewHeroGKModelType } from '../../db/ActivityNewHeroGK';
|
import { ActivityNewHeroGKModel, ActivityNewHeroGKModelType } from '../../db/ActivityNewHeroGK';
|
||||||
import { RoleModel } from '../../db/Role';
|
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
|
||||||
import { NewHeroGKData } from '../../domain/activityField/newHeroGKField';
|
import { NewHeroGKData } from '../../domain/activityField/newHeroGKField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +15,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function newHeroGKActivity(serverId: number, roleId: string) {
|
export async function newHeroGKActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.DAILY_GK);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_GK, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { NewHeroGachaData } from '../../domain/activityField/newHeroGachaField';
|
import { NewHeroGachaData } from '../../domain/activityField/newHeroGachaField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +17,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function newHeroGachaActivity(serverId: number, roleId: string) {
|
export async function newHeroGachaActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.NEW_HERO_GACHA);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.NEW_HERO_GACHA, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { ActivityNewHeroGiftModel, ActivityNewHeroGiftModelType } from '../../db
|
|||||||
import { NewHeroGiftData } from '../../domain/activityField/newHeroGiftField';
|
import { NewHeroGiftData } from '../../domain/activityField/newHeroGiftField';
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { RoleModel } from '../../db/Role';
|
import { RoleModel } from '../../db/Role';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +17,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function getNewHeroGiftsActivity(serverId: number, roleId: string) {
|
export async function getNewHeroGiftsActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.DAILY_RMB_GIFTS);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_RMB_GIFTS, new Date())
|
|
||||||
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -2,11 +2,9 @@ import { ACTIVITY_TYPE } from '../../consts';
|
|||||||
import { ActivityModel, ActivityModelType } from '../../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../../db/Activity';
|
||||||
import { ActivityRefreshTaskModel, ActivityRefreshTaskModelType } from '../../db/ActivityRefreshTask';
|
import { ActivityRefreshTaskModel, ActivityRefreshTaskModelType } from '../../db/ActivityRefreshTask';
|
||||||
import { ActivityRefreshTaskPointModel, ActivityRefreshTaskPointModelType } from '../../db/ActivityRefreshTaskPoint';
|
import { ActivityRefreshTaskPointModel, ActivityRefreshTaskPointModelType } from '../../db/ActivityRefreshTaskPoint';
|
||||||
import { RoleModel } from '../../db/Role';
|
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
|
||||||
import { RefreshTaskData } from '../../domain/activityField/refreshTaskField';
|
import { RefreshTaskData } from '../../domain/activityField/refreshTaskField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18,8 +16,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function getRefreshTaskActivity(serverId: number, roleId: string) {
|
export async function getRefreshTaskActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.REFRESH_TASK);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.REFRESH_TASK, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { SelfServiceShopData, SelfServiceShopItem } from '../../domain/activityF
|
|||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
import moment = require('moment');
|
import moment = require('moment');
|
||||||
import { RoleModel } from '../../db/Role';
|
import { RoleModel } from '../../db/Role';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,8 +21,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function getSelfServiceShopActivityData(serverId: number, roleId: string) {
|
export async function getSelfServiceShopActivityData(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.SELF_SERVICE_SHOP);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SELF_SERVICE_SHOP, new Date())
|
|
||||||
activityArray = activityArray.sort((a, b) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { SevenDaysData } from '../../domain/activityField/sevenDaysField';
|
|||||||
import { ActivityDailyChallengesModel, ActivityDailyChallengesModelType } from '../../db/ActivityDailyChallenges';
|
import { ActivityDailyChallengesModel, ActivityDailyChallengesModelType } from '../../db/ActivityDailyChallenges';
|
||||||
import { ActivityDailyGiftsModel, ActivityDailyGiftsModelType } from '../../db/ActivityDailyGifts';
|
import { ActivityDailyGiftsModel, ActivityDailyGiftsModelType } from '../../db/ActivityDailyGifts';
|
||||||
import { RoleModel } from '../../db/Role';
|
import { RoleModel } from '../../db/Role';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,8 +19,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function sevenDaysActivity(serverId: number, roleId: string, type: number) {
|
export async function sevenDaysActivity(serverId: number, roleId: string, type: number) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityDataArray = await getActivitiesByType(serverId, type);
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date());
|
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { SignInData } from '../../domain/activityField/signInField';
|
import { SignInData } from '../../domain/activityField/signInField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -18,8 +18,7 @@ import { getActivityById } from './activityService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function signInActivity(serverId: number, roleId: string) {
|
export async function signInActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.SIGN_IN);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SIGN_IN, new Date());
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -46,8 +45,7 @@ export async function signInActivity(serverId: number, roleId: string) {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function signInVIPActivity(serverId: number, roleId: string) {
|
export async function signInVIPActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.SIGN_IN_VIP);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SIGN_IN_VIP, new Date());
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -76,9 +74,7 @@ export async function signInVIPActivity(serverId: number, roleId: string) {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function newPlayerSignInActivity(serverId: number, roleId: string) {
|
export async function newPlayerSignInActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.NEW_PLAYER_SIGN_IN);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.NEW_PLAYER_SIGN_IN, new Date());
|
|
||||||
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { RoleModel } from '../../db/Role';
|
|||||||
import moment = require('moment');
|
import moment = require('moment');
|
||||||
import { deltaDays } from '../../pubUtils/util';
|
import { deltaDays } from '../../pubUtils/util';
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,8 +19,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function thirtyDaysActivity(type: number, serverId: number, roleId: string) {
|
export async function thirtyDaysActivity(type: number, serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, type);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date())
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { deltaDays } from '../../pubUtils/util';
|
|||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
import { RewardParam } from '../../domain/activityField/rewardField';
|
import { RewardParam } from '../../domain/activityField/rewardField';
|
||||||
import { RoleModel } from '../../db/Role';
|
import { RoleModel } from '../../db/Role';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -225,11 +225,10 @@ export async function getTreasureHuntData(serverId: number, roleId: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function getNewActivityData(serverId: number, roleId: string) {
|
async function getNewActivityData(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
|
||||||
let huntActivityId: number = 0; // 寻宝骑兵-活动Id
|
let huntActivityId: number = 0; // 寻宝骑兵-活动Id
|
||||||
let huntEndTime: Date = null; // 寻宝骑兵-结束时间
|
let huntEndTime: Date = null; // 寻宝骑兵-结束时间
|
||||||
let huntRoundIndex: number = 0; // 寻宝骑兵-周期数
|
let huntRoundIndex: number = 0; // 寻宝骑兵-周期数
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.TREASURE_HUNT, 1)//activityId从小到大排序
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.TREASURE_HUNT);
|
||||||
let treasureHuntDataArray: TreasureHuntData[] = [];
|
let treasureHuntDataArray: TreasureHuntData[] = [];
|
||||||
let createTime = await getRoleCreateTime(roleId);
|
let createTime = await getRoleCreateTime(roleId);
|
||||||
let serverTime = await getServerCreateTime(serverId);
|
let serverTime = await getServerCreateTime(serverId);
|
||||||
@@ -259,11 +258,10 @@ async function getNewActivityData(serverId: number, roleId: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function getNextActivityData(serverId: number, roleId: string, oldHuntActivityId: number, oldHuntEndTime: Date, oldHuntRoundIndex: number) {
|
async function getNextActivityData(serverId: number, roleId: string, oldHuntActivityId: number, oldHuntEndTime: Date, oldHuntRoundIndex: number) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
|
||||||
let huntActivityId: number = 0; // 寻宝骑兵-活动Id
|
let huntActivityId: number = 0; // 寻宝骑兵-活动Id
|
||||||
let huntEndTime: Date = null; // 寻宝骑兵-结束时间
|
let huntEndTime: Date = null; // 寻宝骑兵-结束时间
|
||||||
let huntRoundIndex: number = oldHuntRoundIndex; // 寻宝骑兵-周期数
|
let huntRoundIndex: number = oldHuntRoundIndex; // 寻宝骑兵-周期数
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.TREASURE_HUNT, 1)//activityId从小到大排序
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.TREASURE_HUNT);
|
||||||
let treasureHuntDataArray: TreasureHuntData[] = [];
|
let treasureHuntDataArray: TreasureHuntData[] = [];
|
||||||
let createTime = await getRoleCreateTime(roleId);
|
let createTime = await getRoleCreateTime(roleId);
|
||||||
let serverTime = await getServerCreateTime(serverId);
|
let serverTime = await getServerCreateTime(serverId);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { ActivityVipRechargeMoneyModel, ActivityVipRechargeMoneyModelType } from
|
|||||||
import { VipRechargeMoneyData } from '../../domain/activityField/vipRechargeMoneyField';
|
import { VipRechargeMoneyData } from '../../domain/activityField/vipRechargeMoneyField';
|
||||||
import { ServerlistModel } from '../../db/Serverlist';
|
import { ServerlistModel } from '../../db/Serverlist';
|
||||||
import { RoleModel } from '../../db/Role';
|
import { RoleModel } from '../../db/Role';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,8 +17,7 @@ import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function vipRechargeMoneyActivity(serverId: number, roleId: string) {
|
export async function vipRechargeMoneyActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.VIP_RECHARGE_MONEY);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.VIP_RECHARGE_MONEY, new Date())
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -65,8 +64,7 @@ export async function getPlayerVipRechargeMoneyData(activityId: number, serverId
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function addVipRechargeMoney(roleId: string, serverId: number, RMB: number) {
|
export async function addVipRechargeMoney(roleId: string, serverId: number, RMB: number) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.VIP_RECHARGE_MONEY);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.VIP_RECHARGE_MONEY, new Date())
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { UserOrderModel, UserOrderModelType } from '../../db/UserOrder';
|
|||||||
import { RewardParam } from '../../domain/activityField/rewardField';
|
import { RewardParam } from '../../domain/activityField/rewardField';
|
||||||
import { YuanBaoShopData } from '../../domain/activityField/yuanBaoShopField';
|
import { YuanBaoShopData } from '../../domain/activityField/yuanBaoShopField';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { getActivityById } from './activityService';
|
import { getActivitiesByType, getActivityById } from './activityService';
|
||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,8 +19,7 @@ import { addReward, stringToRewardParam } from './giftPackageService';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function yuanbaoActivity(serverId: number, roleId: string) {
|
export async function yuanbaoActivity(serverId: number, roleId: string) {
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
let activityArray = await getActivitiesByType(serverId, ACTIVITY_TYPE.YUAN_BAO_SHOP);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.YUAN_BAO_SHOP, -1)
|
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import { RefreshShopData } from "../domain/activityField/refreshShopField";
|
|||||||
import { RoleType } from "../db/Role";
|
import { RoleType } from "../db/Role";
|
||||||
import { MonopolyData } from "../domain/activityField/monopolyField";
|
import { MonopolyData } from "../domain/activityField/monopolyField";
|
||||||
import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from "../db/ActivityPopUpShop";
|
import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from "../db/ActivityPopUpShop";
|
||||||
|
import { getActivitiesByType } from "./activity/activityService";
|
||||||
|
|
||||||
// —————————————— 跑马灯 —————————————— //
|
// —————————————— 跑马灯 —————————————— //
|
||||||
// 初始
|
// 初始
|
||||||
@@ -319,8 +320,7 @@ export async function getParamStr(activity: ActivityModelType, productID: string
|
|||||||
// param['beginTimeStamp'] = playerRecord.beginTime.getTime();
|
// param['beginTimeStamp'] = playerRecord.beginTime.getTime();
|
||||||
break;
|
break;
|
||||||
case ACTIVITY_TYPE.REFRESH_SHOP:
|
case ACTIVITY_TYPE.REFRESH_SHOP:
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(role.serverId);
|
let monopolyActivitys = await getActivitiesByType(role.serverId, ACTIVITY_TYPE.MONOPOLY);
|
||||||
let monopolyActivitys = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.MONOPOLY, 1);
|
|
||||||
let parentActivity = monopolyActivitys.find(activity => {
|
let parentActivity = monopolyActivitys.find(activity => {
|
||||||
let data = new MonopolyData(activity, 0, 0);
|
let data = new MonopolyData(activity, 0, 0);
|
||||||
let curShop = data.list.find(land => { // 找到关联活动
|
let curShop = data.list.find(land => { // 找到关联活动
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import { TimeLimitRankData } from '../domain/activityField/timeLimitRankField';
|
|||||||
import { ActivityTimeLimitRankModel } from '../db/ActivityTimeLimitRank';
|
import { ActivityTimeLimitRankModel } from '../db/ActivityTimeLimitRank';
|
||||||
import { RoleModel, RoleType } from '../db/Role';
|
import { RoleModel, RoleType } from '../db/Role';
|
||||||
import { GuildType } from '../db/Guild';
|
import { GuildType } from '../db/Guild';
|
||||||
|
import { ActivityGroupModel } from '../db/ActivityGroup';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在服务重新启动时,将信息存入redis
|
* 在服务重新启动时,将信息存入redis
|
||||||
@@ -47,9 +48,9 @@ export async function initAllRank() {
|
|||||||
|
|
||||||
await setRankRedisFromDb(REDIS_KEY.PVP_RANK, {});
|
await setRankRedisFromDb(REDIS_KEY.PVP_RANK, {});
|
||||||
|
|
||||||
for(let {id, activityGroupId} of serverList) {
|
for(let {id} of serverList) {
|
||||||
await initRank(id);
|
await initRank(id);
|
||||||
await initActivitiesRank(id, activityGroupId)
|
await initActivitiesRank(id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,8 +75,10 @@ export async function initRank(serverId: number) {
|
|||||||
await setRankRedisFromDb(REDIS_KEY.HERO_RANK, { serverId });
|
await setRankRedisFromDb(REDIS_KEY.HERO_RANK, { serverId });
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function initActivitiesRank(serverId: number, activityGroupId: number[]) {
|
export async function initActivitiesRank(serverId: number) {
|
||||||
let serverTime = await getServerCreateTime(serverId);
|
let serverTime = await getServerCreateTime(serverId);
|
||||||
|
let activityGroup = await ActivityGroupModel.findByServerId(serverId);
|
||||||
|
let activityGroupId = activityGroup.map(cur => cur.groupId);
|
||||||
let activities = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TIME_LIMIT_RANK, new Date());
|
let activities = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TIME_LIMIT_RANK, new Date());
|
||||||
for(let activity of activities) {
|
for(let activity of activities) {
|
||||||
let data = new TimeLimitRankData(activity, 0, serverTime);
|
let data = new TimeLimitRankData(activity, 0, serverTime);
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import { ActivityModel, ActivityModelType } from '../db/Activity';
|
|||||||
import { TimeLimitRankData } from '../domain/activityField/timeLimitRankField';
|
import { TimeLimitRankData } from '../domain/activityField/timeLimitRankField';
|
||||||
import { sendRankMail, takeSnapshot } from './activity/timeLimitRankService';
|
import { sendRankMail, takeSnapshot } from './activity/timeLimitRankService';
|
||||||
import { getActivitiesByType } from './activity/activityService';
|
import { getActivitiesByType } from './activity/activityService';
|
||||||
|
import { ActivityGroupModel } from '../db/ActivityGroup';
|
||||||
|
|
||||||
const PER_SECOND = 1 * 1000;
|
const PER_SECOND = 1 * 1000;
|
||||||
const PER_DAY = 24 * 60 * 60;
|
const PER_DAY = 24 * 60 * 60;
|
||||||
@@ -679,61 +680,82 @@ async function autoCreateServerSchedule(region: RegionType) {
|
|||||||
|
|
||||||
// —————————————— 活动 start —————————————— //
|
// —————————————— 活动 start —————————————— //
|
||||||
async function initTimeLimitRank() {
|
async function initTimeLimitRank() {
|
||||||
let servers = await ServerlistModel.findByEnv(pinus.app.get('env'));
|
let activities = await ActivityModel.findAllActivities();
|
||||||
for(let { serverId } of servers) {
|
await updateTimeLimitRank(activities);
|
||||||
let serverTime = await getServerCreateTime(serverId);
|
|
||||||
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.TIME_LIMIT_RANK);
|
|
||||||
for(let activity of activities) {
|
|
||||||
let data = new TimeLimitRankData(activity, 0, serverTime);
|
|
||||||
if(data.sendMailTime > Date.now()) {
|
|
||||||
await setSendRankMailSchedule(data, serverId);
|
|
||||||
}
|
|
||||||
if(data.rankEndTime > Date.now() && data.needSnapshot()) {
|
|
||||||
await setTakeRankSnapshotSchedule(data, serverId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function updateTimeLimitRank(activities: ActivityModelType[]) {
|
export async function updateTimeLimitRank(activities: ActivityModelType[]) {
|
||||||
let servers = await ServerlistModel.findByEnv(pinus.app.get('env'));
|
let sendMailDataMap = new Map<number, Map<number, { serverId: number, data: TimeLimitRankData}[]>>(); // activityId => sendTime => data
|
||||||
for(let { serverId, openTime } of servers) {
|
let takeSnapDataMap = new Map<number, Map<number, { serverId: number, data: TimeLimitRankData}[]>>(); // activityId=>rankTime=>data
|
||||||
for(let activity of activities) {
|
for(let activity of activities) {
|
||||||
let data = new TimeLimitRankData(activity, 0, openTime);
|
let { activityId } = activity
|
||||||
if(data.sendMailTime > Date.now()) {
|
let group = await ActivityGroupModel.findByActivity(activityId);
|
||||||
await setSendRankMailSchedule(data, serverId);
|
for(let { serverIds } of group) {
|
||||||
}
|
let servers = await ServerlistModel.findByServerIds(serverIds);
|
||||||
if(data.rankEndTime > Date.now() && data.needSnapshot()) {
|
for(let { env, openTime, serverId } of servers) {
|
||||||
await setTakeRankSnapshotSchedule(data, serverId);
|
if(env == pinus.app.get('env')) {
|
||||||
|
let data = new TimeLimitRankData(activity, 0, openTime);
|
||||||
|
if(data.sendMailTime > Date.now()) {
|
||||||
|
if(!sendMailDataMap.has(activityId)) {
|
||||||
|
sendMailDataMap.set(activityId, new Map());
|
||||||
|
}
|
||||||
|
if(!sendMailDataMap.get(activityId).has(data.sendMailTime)) {
|
||||||
|
sendMailDataMap.get(activityId).set(data.sendMailTime, []);
|
||||||
|
}
|
||||||
|
sendMailDataMap.get(activityId).get(data.sendMailTime).push({ serverId, data });
|
||||||
|
}
|
||||||
|
if(data.rankEndTime > Date.now() && data.needSnapshot()) {
|
||||||
|
if(!takeSnapDataMap.has(activityId)) {
|
||||||
|
takeSnapDataMap.set(activityId,new Map());
|
||||||
|
}
|
||||||
|
if(!takeSnapDataMap.get(activityId).has(data.rankEndTime)) {
|
||||||
|
takeSnapDataMap.get(activityId).set(data.rankEndTime, []);
|
||||||
|
}
|
||||||
|
takeSnapDataMap.get(activityId).get(data.rankEndTime).push({ serverId, data });
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for(let [activityId, map] of sendMailDataMap) {
|
||||||
|
for(let [sendMailTime, arr] of map) {
|
||||||
|
await setSendRankMailSchedule(sendMailTime, activityId, arr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(let [activityId, map] of takeSnapDataMap) {
|
||||||
|
for(let [rankEndTime, arr] of map) {
|
||||||
|
await setTakeRankSnapshotSchedule(rankEndTime, activityId, arr);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function setSendRankMailSchedule(data: TimeLimitRankData, serverId: number) {
|
async function setSendRankMailSchedule(sendMailTime: number, activityId: number, arr: { serverId: number, data: TimeLimitRankData}[]) {
|
||||||
console.log('########### setSendRankMailSchedule1 ########')
|
console.log('########### setSendRankMailSchedule1 ########', sendMailTime, activityId, arr.length)
|
||||||
if(scheduledJobs[`rankMail_${serverId}_${data.activityId}`]) {
|
if(scheduledJobs[`rankMail_${sendMailTime}_${activityId}`]) {
|
||||||
scheduledJobs[`rankMail_${serverId}_${data.activityId}`].cancel();
|
scheduledJobs[`rankMail_${sendMailTime}_${activityId}`].cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleJob(`rankMail_${serverId}_${data.activityId}`, data.sendMailTime, async () => {
|
scheduleJob(`rankMail_${sendMailTime}_${activityId}`, sendMailTime, async () => {
|
||||||
console.log('########### setSendRankMailSchedule2 ########')
|
console.log('########### setSendRankMailSchedule2 ########')
|
||||||
await sendRankMail(data, serverId);
|
for(let { serverId, data } of arr) {
|
||||||
|
await sendRankMail(data, serverId);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async function setTakeRankSnapshotSchedule(data: TimeLimitRankData, serverId: number) {
|
async function setTakeRankSnapshotSchedule(rankEndTime: number, activityId: number, arr: { serverId: number, data: TimeLimitRankData}[]) {
|
||||||
console.log('########### setTakeRankSnapshotSchedule1 ########')
|
console.log('########### setTakeRankSnapshotSchedule1 ########', rankEndTime, activityId, arr.length)
|
||||||
|
|
||||||
if(scheduledJobs[`snapshot${data.activityId}`]) {
|
if(scheduledJobs[`snapshot_${rankEndTime}_${activityId}`]) {
|
||||||
scheduledJobs[`snapshot${data.activityId}`].cancel();
|
scheduledJobs[`snapshot_${rankEndTime}_${activityId}`].cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleJob(`snapshot${data.activityId}`, data.rankEndTime, async () => {
|
scheduleJob(`snapshot_${rankEndTime}_${activityId}`, rankEndTime, async () => {
|
||||||
console.log('########### setTakeRankSnapshotSchedule2 ########')
|
console.log('########### setTakeRankSnapshotSchedule2 ########')
|
||||||
await takeSnapshot(data, serverId);
|
for(let { serverId, data } of arr) {
|
||||||
|
await takeSnapshot(data, serverId);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// —————————————— 活动 end —————————————— //
|
// —————————————— 活动 end —————————————— //
|
||||||
@@ -41,6 +41,10 @@ export default class Activity_Group extends BaseModel {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async findByActivity(activityId: number) {
|
||||||
|
let result: ActivityGroupModelType[] = await ActivityGroupModel.find({ activities: activityId }).lean();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
//查询组
|
//查询组
|
||||||
public static async findGroupsData(groupIds: number[]) {
|
public static async findGroupsData(groupIds: number[]) {
|
||||||
let result: ActivityGroupModelType[] = await ActivityGroupModel.find({ groupId: { $in: groupIds } }).lean();
|
let result: ActivityGroupModelType[] = await ActivityGroupModel.find({ groupId: { $in: groupIds } }).lean();
|
||||||
|
|||||||
+14
-14
@@ -61,8 +61,8 @@ export default class Serverlist extends BaseModel {
|
|||||||
@prop({ required: true, default: 1, enum: SERVER_STATUS })
|
@prop({ required: true, default: 1, enum: SERVER_STATUS })
|
||||||
serverStatus: number; // 服务器状态
|
serverStatus: number; // 服务器状态
|
||||||
|
|
||||||
@prop({ required: true, type: Number })
|
// @prop({ required: true, type: Number })
|
||||||
activityGroupId: number[]; // 活动组
|
// activityGroupId: number[]; // 活动组
|
||||||
|
|
||||||
public get status() {
|
public get status() {
|
||||||
let now = nowSeconds();
|
let now = nowSeconds();
|
||||||
@@ -154,19 +154,19 @@ export default class Serverlist extends BaseModel {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async updateActivityGroup(id: string, pushArr: number[], pullArr: number[]) {
|
// public static async updateActivityGroup(id: string, pushArr: number[], pullArr: number[]) {
|
||||||
// console.log(id, pushArr, pullArr)
|
// // console.log(id, pushArr, pullArr)
|
||||||
let update = {};
|
// let update = {};
|
||||||
if(pushArr.length > 0) update['$push'] = { activityGroupId: { $each: pushArr } };
|
// if(pushArr.length > 0) update['$push'] = { activityGroupId: { $each: pushArr } };
|
||||||
if(pullArr.length > 0) update['$pull'] = { activityGroupId: { $in: pullArr } };
|
// if(pullArr.length > 0) update['$pull'] = { activityGroupId: { $in: pullArr } };
|
||||||
let result: ServerlistType[] = await ServerlistModel.findOneAndUpdate({ _id: id }, update).lean();
|
// let result: ServerlistType[] = await ServerlistModel.findOneAndUpdate({ _id: id }, update).lean();
|
||||||
return result;
|
// return result;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public static async pullByGroupId(groupId: number) {
|
// public static async pullByGroupId(groupId: number) {
|
||||||
let result = await ServerlistModel.updateMany({ activityGroupId: { $elemMatch: { $eq: groupId } }}, { $pull: { activityGroupId: groupId } }, { new: true }).lean(true);
|
// let result = await ServerlistModel.updateMany({ activityGroupId: { $elemMatch: { $eq: groupId } }}, { $pull: { activityGroupId: groupId } }, { new: true }).lean(true);
|
||||||
return result;
|
// return result;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public static async incRoleCnt(serverId: number) {
|
public static async incRoleCnt(serverId: number) {
|
||||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId }, { $inc: { playerCnt: 1 } });
|
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId }, { $inc: { playerCnt: 1 } });
|
||||||
|
|||||||
Reference in New Issue
Block a user