From 8bccc4c0f2cae75c77aa89b838cead0ad602dc95 Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 12 Apr 2023 16:58:30 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(=E6=9C=8D=E5=8A=A1=E5=99=A8):?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E6=9C=8D=E5=8A=A1=E5=99=A8id=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/db/Serverlist.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/shared/db/Serverlist.ts b/shared/db/Serverlist.ts index 220500593..aec0c2582 100644 --- a/shared/db/Serverlist.ts +++ b/shared/db/Serverlist.ts @@ -1,7 +1,6 @@ import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType, modelOptions, ReturnModelType, mongoose } from '@typegoose/typegoose'; -import { CounterAllModal } from './CounterAll'; -import { COUNTER, SERVER_STATUS } from '../consts'; +import { SERVER_STATUS } from '../consts'; import { CreateServerParam } from '../domain/backEndField/params'; import { RegionType } from './Region'; import { nowSeconds } from '../pubUtils/timeUtil'; @@ -97,11 +96,11 @@ export default class Serverlist extends BaseModel { isMain: boolean; public static async getAllServerList() { - let id = await CounterAllModal.getCounter(COUNTER.SERVER); - let result: ServerlistType[] = []; - let n = Math.ceil(id/1000); - for(let i = 0; i < n; i++) { - let servers: ServerlistType[] = await ServerlistModel.find().limit(1000).skip(i * 1000).lean({ getters: true, virtuals: true }); + let result: ServerlistType[] = [], id = 0; + for(let i = 0; i < 1000; i++) { // 防无限循环锁死 + let servers: ServerlistType[] = await ServerlistModel.find({ id: { $gt: id }}).sort({ id: 1 }).lean({ getters: true, virtuals: true }); + if(servers.length == 0) break; + id = servers[servers.length -1].id; result.push(...servers); } return result; @@ -131,11 +130,11 @@ export default class Serverlist extends BaseModel { let dicServerName = gameData.serverNames.get(serverId); let { prefix, id: regionId, env } = region; // 分大区 - let id = await CounterAllModal.getNewCounter(COUNTER.SERVER); let { openTime, stopRegisterTime: hour, activityGroupId } = params; let { sname: name, groupId, groupName } = dicServerName; let stopRegisterTime = openTime + hour * 60 * 60; + let id = regionId * 10000 + serverId; const doc = new ServerlistModel(); const update = Object.assign(doc.toJSON(), { id, regionId, env, prefix,