活动存入内存中
This commit is contained in:
@@ -4,7 +4,7 @@ import { ENCRYPT_IV, ENCRYPT_KEY, STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { checkActivityTask } from '../../../services/taskService';
|
||||
import { ActivityGroupModel } from '../../../db/ActivityGroup';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
import { getActivity } from '../../../services/activity/activityService';
|
||||
import { getActivity, getActivityById } from '../../../services/activity/activityService';
|
||||
import { ActivityModel } from '../../../db/Activity';
|
||||
|
||||
export default function (app: Application) {
|
||||
@@ -39,7 +39,7 @@ export class ActivityHandler {
|
||||
for (let groupData of groups) {
|
||||
let playerGroupActivityArray = [];
|
||||
for (let activityId of groupData.activities) {
|
||||
let activityData = await ActivityModel.findActivity(activityId);
|
||||
let activityData = await getActivityById(activityId);
|
||||
if (activityData) {
|
||||
let playerActivityData = await getActivity(serverId, roleId, activityId, activityData.type)
|
||||
if (playerActivityData) playerGroupActivityArray.push(playerActivityData);
|
||||
|
||||
@@ -13,6 +13,7 @@ import { UserGachaRecModel } from "../../../db/UserGachaRec";
|
||||
import { ActivityModel } from "../../../db/Activity";
|
||||
import { checkActivityTask, checkTask } from "../../../services/taskService";
|
||||
import { RECRUIT } from "../../../pubUtils/dicParam";
|
||||
import { getActivityById } from "../../../services/activity/activityService";
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -238,7 +239,7 @@ export class GachaHandler {
|
||||
|
||||
let heroes: number[] = [];
|
||||
if (gachaId == GACHA_ID.TIMELIMIT) {
|
||||
let activityData = await ActivityModel.findActivity(activityId);
|
||||
let activityData = await getActivityById(activityId);
|
||||
if (!activityData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
|
||||
@@ -9,6 +9,7 @@ import { addReward, stringToRewardParam } from '../../../services/activity/giftP
|
||||
import { RewardParam } from '../../../domain/activityField/rewardField';
|
||||
import { handleCost } from '../../../services/rewardService';
|
||||
import moment = require('moment');
|
||||
import { getActivityById } from '../../../services/activity/activityService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -54,7 +55,7 @@ export class PopUpShopHandler {
|
||||
|
||||
let beginTime = moment(beginTimeStamp).toDate();
|
||||
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
let activityData: ActivityModelType = await getActivityById(activityId);
|
||||
if (!activityData) {
|
||||
return resResult(STATUS.ACTIVITY_MISSING);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import { addSelfServiceShopGiftReward, getSelfServiceShopActivityData, getPlayer
|
||||
import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../services/activity/giftPackageService';
|
||||
import { random } from 'underscore';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import { getActivityById } from '../../../services/activity/activityService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -54,7 +55,7 @@ export class SelfServiceShopHandler {
|
||||
const roleName = session.get('roleName');
|
||||
|
||||
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
let activityData = await getActivityById(activityId);
|
||||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
let playerData = new SelfServiceShopData(activityData, createTime);
|
||||
let item = playerData.getItem(index);
|
||||
@@ -114,7 +115,7 @@ export class SelfServiceShopHandler {
|
||||
const roleName = session.get('roleName');
|
||||
|
||||
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
let activityData: ActivityModelType = await getActivityById(activityId);
|
||||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
let playerData = new SelfServiceShopData(activityData, createTime);
|
||||
let unitPrice = playerData.unitPrice;//购买价格
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import { Application, ChannelService, HandlerService, } from 'pinus';
|
||||
import { ActivityModel, ActivityModelType } from '../../../db/Activity';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
import { reloadResources } from '../../../pubUtils/data';
|
||||
import { _getActivitiesByType, _getActivityById } from '../../../services/activity/activityService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -11,9 +14,13 @@ export class ActivityRemote {
|
||||
constructor(private app: Application) {
|
||||
this.app = app;
|
||||
this.channelService = app.get('channelService');
|
||||
this.loadActivities();
|
||||
}
|
||||
|
||||
private channelService: ChannelService;
|
||||
private activityByServer: Map<number, number[]> = new Map(); // serverId => activityId[];
|
||||
private activities: Map<number, ActivityModelType> = new Map(); // activityId => activity
|
||||
private activityByType: Map<number, Map<number, number[]>> = new Map(); // serverId => type => activityId[]
|
||||
|
||||
/**
|
||||
* 重载json资源
|
||||
@@ -21,4 +28,49 @@ export class ActivityRemote {
|
||||
public async reloadResources() {
|
||||
reloadResources();
|
||||
}
|
||||
|
||||
private async loadActivities() {
|
||||
let servers = await ServerlistModel.getAllServerList();
|
||||
let groupToServer = new Map<number, number[]>();
|
||||
for(let { serverId, activityGroupId } of servers) {
|
||||
for(let groupId of activityGroupId) {
|
||||
if(!groupToServer.has(groupId)) {
|
||||
groupToServer.set(groupId, []);
|
||||
}
|
||||
groupToServer.get(groupId).push(serverId);
|
||||
}
|
||||
}
|
||||
|
||||
let activities = await ActivityModel.findOpenAndComingActivityes();
|
||||
for(let activity of activities) {
|
||||
this.activities.set(activity.activityId, activity);
|
||||
let servers = groupToServer.get(activity.activityId)||[];
|
||||
for(let serverId of servers) {
|
||||
if(!this.activityByServer.has(serverId)) {
|
||||
this.activityByServer.set(serverId, []);
|
||||
}
|
||||
this.activityByServer.get(serverId).push(activity.activityId);
|
||||
|
||||
if(!this.activityByType.has(serverId)) {
|
||||
this.activityByType.set(serverId, new Map());
|
||||
}
|
||||
if(!this.activityByType.get(serverId).has(activity.type)) {
|
||||
this.activityByType.get(serverId).set(activity.type, []);
|
||||
}
|
||||
this.activityByType.get(serverId).get(activity.type).push(activity.activityId);
|
||||
}
|
||||
}
|
||||
|
||||
this.app.set('activityByServer', this.activityByServer);
|
||||
this.app.set('activityByType', this.activityByType);
|
||||
this.app.set('activities', this.activities);
|
||||
}
|
||||
|
||||
public getActivityById(activityId: number) {
|
||||
return _getActivityById(activityId);
|
||||
}
|
||||
|
||||
public getActivitiesByType(serverId: number, type: number) {
|
||||
return _getActivitiesByType(serverId, type);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user