🐞 fix(邮件): 全服邮件慢查询问题
This commit is contained in:
@@ -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 });
|
||||
|
||||
@@ -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: [{
|
||||
|
||||
Reference in New Issue
Block a user