🐞 fix(邮件): 全服邮件慢查询问题

This commit is contained in:
luying
2023-06-30 17:07:29 +08:00
parent 42625af339
commit a689f86e71
2 changed files with 5 additions and 2 deletions

View File

@@ -73,6 +73,7 @@ export class MailHandler {
public async delMails(msg: { id: string, mailType: number, type: number }, session: BackendSession) {
let roleId: string = session.get('roleId');
let serverId: number = session.get('serverId');
let { id, type, mailType } = msg;
if (type == 1) {//单个删除
let mail: MailType|GroupMailType|ServerMailType;
@@ -89,7 +90,7 @@ export class MailHandler {
} else {//一键删除
let singlemails = await MailModel.delMailsByRoleId(roleId);
let groupMails = await GroupMailModel.delMailsByRoleId(roleId);
let servermails = await ServerMailModel.delMailsByRoleId(roleId);
let servermails = await ServerMailModel.delMailsByRoleId(roleId, serverId);
let mails: { id: string, mailType: GM_MAIL_TYPE, status: MAIL_STATUS }[] = [];
for(let mail of singlemails) {
mails.push({ id: mail._id, mailType: GM_MAIL_TYPE.SINGLE, status: MAIL_STATUS.DELETE });

View File

@@ -13,6 +13,7 @@ class RoleStatus {
status: number;
}
@index({ serverId: 1 })
@index({ sendTime: 1 })
export default class ServerMail extends MailTemp {
@prop({ required: true })
@@ -95,9 +96,10 @@ export default class ServerMail extends MailTemp {
* @param _id
* @param roleId
*/
public static async delMailsByRoleId(roleId: string) {
public static async delMailsByRoleId(roleId: string, serverId: number) {
const ids: { _id: string }[] = await ServerMailModel.find(
{
serverId,
isSp: false,
sendTime:{ $lte: nowSeconds() },
$or: [{