优化:任务中的活动读内存
This commit is contained in:
@@ -2,7 +2,7 @@ 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';
|
||||
import { _getActivitiesByType, _getActivityById, _getActivities } from '../../../services/activity/activityService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -73,4 +73,8 @@ export class ActivityRemote {
|
||||
public getActivitiesByType(serverId: number, type: number) {
|
||||
return _getActivitiesByType(serverId, type);
|
||||
}
|
||||
|
||||
public getActivities() {
|
||||
return _getActivities();
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import { RScriptRecordModel } from '../../../db/RScriptRecord';
|
||||
import { SkinModel, SkinUpdate } from '../../../db/Skin';
|
||||
import { CreateHeroes } from '../../../pubUtils/roleUtil';
|
||||
import { Figure } from '../../../domain/dbGeneral';
|
||||
import { getActivities } from '../../../services/activity/activityService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -57,6 +58,7 @@ export class RoleHandler {
|
||||
infos.set(heroInfo.hid, { heroInfo, skinInfo });
|
||||
}
|
||||
await createHero.createWithInitInfo(infos, initInfos.figureInfo);
|
||||
await createHero.clearTask(await getActivities());
|
||||
await createHero.pushMessage(pinus, sid);
|
||||
console.log('updateRedisRank before', Date.now())
|
||||
await createHero.updateRedisRank(Rank);
|
||||
|
||||
@@ -216,6 +216,17 @@ export async function getActivitiesByType(serverId: number, type: number) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function getActivities() {
|
||||
let serverType = pinus.app.getServerType();
|
||||
if(serverType == 'activity') {
|
||||
return _getActivities();
|
||||
} else {
|
||||
let servers = pinus.app.getServersByType('activity');
|
||||
let server = getRandSingleEelm(servers);
|
||||
return <ActivityModelType[]>await pinus.app.rpc.activity.activityRemote.getActivities.toServer(server.id);
|
||||
}
|
||||
}
|
||||
|
||||
export function _getActivityById(activityId: number) {
|
||||
return <ActivityModelType>pinus.app.get('activities')?.get(activityId);
|
||||
}
|
||||
@@ -232,3 +243,12 @@ export function _getActivitiesByType(serverId: number, type: number) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export function _getActivities() {
|
||||
let activities = pinus.app.get('activities');
|
||||
let result: ActivityModelType[] = [];
|
||||
for(let [_, activity] of activities) {
|
||||
result.push(activity);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import { calEquipSeids } from '../pubUtils/playerCe';
|
||||
import { CreateHeroes } from '../pubUtils/roleUtil';
|
||||
import { SkinUpdate } from '../db/Skin';
|
||||
import { getInitHeroById } from './roleService';
|
||||
import { getActivities } from './activity/activityService';
|
||||
|
||||
export class CheckMeterial {
|
||||
private roleId: string;
|
||||
@@ -471,6 +472,7 @@ export async function createHeroes(roleId: string, roleName: string, sid: string
|
||||
if (infos.size > 0) {
|
||||
let createHero = new CreateHeroes(roleId, roleName, serverId);
|
||||
await createHero.createWithHeroInfo(infos);
|
||||
await createHero.clearTask(await getActivities())
|
||||
await createHero.pushMessage(pinus, sid);
|
||||
await createHero.updateRedisRank(Rank);
|
||||
resultHeroes = createHero.getResultHeroes();
|
||||
|
||||
@@ -15,6 +15,7 @@ import { UserTaskHistoryModel } from '../db/UserTaskHistory';
|
||||
import { gameData, getGoodById } from '../pubUtils/data';
|
||||
import { getSeconds, getZeroPointD } from '../pubUtils/timeUtil';
|
||||
import { RoleStatus } from '../db/ComBattleTeam';
|
||||
import { getActivities } from './activity/activityService';
|
||||
|
||||
export async function checkTaskWithRoles(serverId: number, roleId: string, sid: string, taskType: number, roles: RoleType[]) {
|
||||
for (let role of roles) {
|
||||
@@ -74,7 +75,7 @@ export async function pushTaskUpdate(roleId: string, sid: string, pushMessage: T
|
||||
|
||||
|
||||
export async function checkActivityTask(serverId: number, sid: string, roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
|
||||
let pushMessage = await taskUtil.accomplishTask(serverId, roleId, taskType, count, parma);
|
||||
let pushMessage = await taskUtil.accomplishTask(serverId, roleId, taskType, count, parma, await getActivities());
|
||||
pushActivityUpdate(roleId, sid, pushMessage);
|
||||
return pushMessage;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user