diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 9e91ead9e..5362d8488 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -1,6 +1,6 @@ import { ROLE_TERAPH, ROLE_SELECT, ABI_TYPE, BLOCK_TYPE } from './../consts'; import BaseModel from './BaseModel'; -import { index, getModelForClass, prop, DocumentType, Ref, mongoose, ReturnModelType } from '@typegoose/typegoose'; +import { index, getModelForClass, prop, DocumentType, Ref, mongoose } from '@typegoose/typegoose'; import User from './User'; import { shouldRefresh } from '../pubUtils/util'; import { nowSeconds, getTimeFunD } from '../pubUtils/timeUtil'; @@ -366,7 +366,7 @@ export default class Role extends BaseModel { needCount: boolean; public static async findAllByUid(uid: number, getters = false, virtuals = true) { - const role: RoleType[] = await RoleROModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId head frame spine heads frames spines lv updatedAt createTime +closeTime').lean({ getters, virtuals }); + const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId head frame spine heads frames spines lv updatedAt createTime +closeTime').lean({ getters, virtuals }); return role; } @@ -400,7 +400,7 @@ export default class Role extends BaseModel { return role; } public static async findByRoleIds(roleIds: string[], select?: string, getters = false, virtuals = true) { - const role: RoleType[] = await RoleROModel.find({ roleId: { $in: roleIds } }).select(select).lean({ getters, virtuals }); + const role: RoleType[] = await RoleModel.find({ roleId: { $in: roleIds } }).select(select).lean({ getters, virtuals }); return role; } @@ -606,7 +606,7 @@ export default class Role extends BaseModel { sortBy = {}; break; } - const ranks: RoleType[] = await RoleROModel.find({ serverId, ...condition }).select(select).sort(sortBy).limit(limit).skip((page - 1) * limit).lean({ virtuals: true, getters: true }); + const ranks: RoleType[] = await RoleModel.find({ serverId, ...condition }).select(select).sort(sortBy).limit(limit).skip((page - 1) * limit).lean({ virtuals: true, getters: true }); return ranks; } @@ -658,7 +658,7 @@ export default class Role extends BaseModel { * @param invitedMembers 当天已邀请过的人 */ public static async getInviteList(time: number, serverId: number) { - const result: RoleType[] = await RoleROModel.find({ loginTime: { $gt: time }, hasGuild: false, serverId, hasInit: true }) + const result: RoleType[] = await RoleModel.find({ loginTime: { $gt: time }, hasGuild: false, serverId, hasInit: true }) .select({ roleId: 1, roleName: 1, ce: 1, head: 1, frame: 1, lv: 1, title: 1, job: 1, quitTime: 1, _id: 0 }) .sort({ quitTime: -1, lv: -1, ce: -1 }) .limit(100).lean({ getters: true, virtuals: true }); @@ -667,7 +667,7 @@ export default class Role extends BaseModel { // 获取好友推荐列表 public static async getRecommedList(minLv: number, maxLv: number, time: number) { - const result: RoleType[] = await RoleROModel.find({ loginTime: { $gt: time }, lv: { $gte: minLv, $lte: maxLv }, hasInit: true }, { _id: 0 }) + const result: RoleType[] = await RoleModel.find({ loginTime: { $gt: time }, lv: { $gte: minLv, $lte: maxLv }, hasInit: true }, { _id: 0 }) .select(ROLE_SELECT.SHOW_FRIEND_APPLY_LIST) .sort({ lv: -1, ce: -1 }) .limit(200).lean({ getters: true, virtuals: true }); @@ -676,7 +676,7 @@ export default class Role extends BaseModel { // 查询玩家 public static async searchByNameOrId(value: string) { - const result: RoleType[] = await RoleROModel.find({ + const result: RoleType[] = await RoleModel.find({ $or: [ { roleName: { $regex: new RegExp(value.toString(), 'i') } }, { roleId: value } @@ -737,14 +737,14 @@ export default class Role extends BaseModel { public static async checkName(roleName: string, serverId: number) { if(!roleName) return true; // 不可起空字符串 - const res = await RoleROModel.exists({ roleName, serverId }); + const res = await RoleModel.exists({ roleName, serverId }); return res; } // 获取战力在中位数的玩家 public static async getActivePlayers(serverId: number) { let yesterday = getTimeFunD().getBeforeDayWithHour(1); - const roles: RoleType[] = await RoleROModel.find({ serverId, updatedAt: { $gte: yesterday } }) + const roles: RoleType[] = await RoleModel.find({ serverId, updatedAt: { $gte: yesterday } }) .select('roleId ce topLineup topLineupCe guildCode hasGuild') .sort({ ce: -1 }).lean(); return roles @@ -781,7 +781,7 @@ export default class Role extends BaseModel { // 用于远征匹配 public static async findByCeScale(min: number, max: number) { - const result: RoleType[] = await RoleROModel.find({ topLineupCe: { $lte: max, $gte: min } }) + const result: RoleType[] = await RoleModel.find({ topLineupCe: { $lte: max, $gte: min } }) .populate('topLineup.hero') .sort({ topLineupCe: 1, updatedAt: 1 }).limit(10).lean({ getters: true, virtuals: true }); return result; @@ -818,7 +818,7 @@ export default class Role extends BaseModel { sort[sortField] = -1; } } - const result: RoleType[] = await RoleROModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean({ getters: true, virtuals: true }); + const result: RoleType[] = await RoleModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean({ getters: true, virtuals: true }); return result; } @@ -826,7 +826,7 @@ export default class Role extends BaseModel { public static async countByCondition(form: SearchRoleParam = {}) { let searchObj = this.getSearchObj(form); - const result = await RoleROModel.count(searchObj); + const result = await RoleModel.count(searchObj); return result; } @@ -842,20 +842,20 @@ export default class Role extends BaseModel { public static async findHasGuildPlayers(createdAt?: Date) { let filter = createdAt? { createdAt: { $gt: createdAt } }: {}; - let roles: RoleType[] = await RoleROModel.find({ loginTime: { $gte: nowSeconds() - 24 * 60 * 60 }, ...filter, hasGuild: true }).sort({ createdAt: 1 }).select('userInfo.channelInfo quitTime loginTime isClosePush createdAt').lean(); + let roles: RoleType[] = await RoleModel.find({ loginTime: { $gte: nowSeconds() - 24 * 60 * 60 }, ...filter, hasGuild: true }).sort({ createdAt: 1 }).select('userInfo.channelInfo quitTime loginTime isClosePush createdAt').lean(); return roles; } public static async findAfkPlayers(createdAt?: Date) { let filter = createdAt? { createdAt: { $gt: createdAt } }: {}; - let roles: RoleType[] = await RoleROModel.find({ loginTime: { $lt: nowSeconds() - 48 * 60 * 60 }, lv: { $gte: 20 }, hasPushMsg: { $exists: false }, ...filter }).sort({ createdAt: 1 }).select('userInfo.channelInfo quitTime loginTime isClosePush createdAt').lean(); + let roles: RoleType[] = await RoleModel.find({ loginTime: { $lt: nowSeconds() - 48 * 60 * 60 }, lv: { $gte: 20 }, hasPushMsg: { $exists: false }, ...filter }).sort({ createdAt: 1 }).select('userInfo.channelInfo quitTime loginTime isClosePush createdAt').lean(); await RoleModel.updateMany({ _id: roles.map(cur => cur._id) }, { $set: { hasPushMsg: true } }); return roles; } public static async findActivePlayers(createdAt?: Date) { let filter = createdAt? { createdAt: { $gt: createdAt } }: {}; - let roles: RoleType[] = await RoleROModel.find({ loginTime: { $gte: nowSeconds() - 24 * 60 * 60 }, ...filter }).sort({ createdAt: 1 }).select('userInfo.channelInfo quitTime loginTime isClosePush createdAt').lean(); + let roles: RoleType[] = await RoleModel.find({ loginTime: { $gte: nowSeconds() - 24 * 60 * 60 }, ...filter }).sort({ createdAt: 1 }).select('userInfo.channelInfo quitTime loginTime isClosePush createdAt').lean(); return roles; } @@ -880,20 +880,13 @@ export default class Role extends BaseModel { } public static async checkHasRole(uid: number, serverId: number) { - return await RoleROModel.exists({ 'userInfo.uid': uid, lv: { $gt: 3 }, serverId: { $lt: serverId } }); + return await RoleModel.exists({ 'userInfo.uid': uid, lv: { $gt: 3 }, serverId: { $lt: serverId } }); } } export const RoleModel = getModelForClass(Role); -export let RoleROModel: ReturnModelType; -export function loadRoleROModel(connect: mongoose.Connection) { - RoleROModel = getModelForClass(Role, { - existingConnection: connect - }); -} - export interface RoleType extends Pick, keyof Role> { }; export type RoleUpdate = Partial; // 将所有字段变成可选项 export type RoleInc = Partial, 'heroNum' | 'blockCnt' | 'friendCnt' | 'gold' | 'coin' | 'ce' | 'renameCnt'>>; diff --git a/shared/db/index.ts b/shared/db/index.ts index 8a2368095..6e447a018 100644 --- a/shared/db/index.ts +++ b/shared/db/index.ts @@ -14,7 +14,6 @@ import { loadActivityTaskPoint } from "./ActivityTaskPoint"; import { loadChannelInfo } from "./ChannelInfo"; import { loadPackageModel } from "./Package"; import { loadUserLog } from "./UserLog"; -import { loadRoleROModel } from "./Role"; export function loadGmDb(connect: mongoose.Connection) { // console.log('************') @@ -40,5 +39,4 @@ export function loadSubDb(connect: mongoose.Connection) { // dbro export function loadRODb(connect: mongoose.Connection) { - loadRoleROModel(connect); } \ No newline at end of file