🐞 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) {
|
public async delMails(msg: { id: string, mailType: number, type: number }, session: BackendSession) {
|
||||||
let roleId: string = session.get('roleId');
|
let roleId: string = session.get('roleId');
|
||||||
|
let serverId: number = session.get('serverId');
|
||||||
let { id, type, mailType } = msg;
|
let { id, type, mailType } = msg;
|
||||||
if (type == 1) {//单个删除
|
if (type == 1) {//单个删除
|
||||||
let mail: MailType|GroupMailType|ServerMailType;
|
let mail: MailType|GroupMailType|ServerMailType;
|
||||||
@@ -89,7 +90,7 @@ export class MailHandler {
|
|||||||
} else {//一键删除
|
} else {//一键删除
|
||||||
let singlemails = await MailModel.delMailsByRoleId(roleId);
|
let singlemails = await MailModel.delMailsByRoleId(roleId);
|
||||||
let groupMails = await GroupMailModel.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 }[] = [];
|
let mails: { id: string, mailType: GM_MAIL_TYPE, status: MAIL_STATUS }[] = [];
|
||||||
for(let mail of singlemails) {
|
for(let mail of singlemails) {
|
||||||
mails.push({ id: mail._id, mailType: GM_MAIL_TYPE.SINGLE, status: MAIL_STATUS.DELETE });
|
mails.push({ id: mail._id, mailType: GM_MAIL_TYPE.SINGLE, status: MAIL_STATUS.DELETE });
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ class RoleStatus {
|
|||||||
status: number;
|
status: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@index({ serverId: 1 })
|
||||||
@index({ sendTime: 1 })
|
@index({ sendTime: 1 })
|
||||||
export default class ServerMail extends MailTemp {
|
export default class ServerMail extends MailTemp {
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
@@ -95,9 +96,10 @@ export default class ServerMail extends MailTemp {
|
|||||||
* @param _id
|
* @param _id
|
||||||
* @param roleId
|
* @param roleId
|
||||||
*/
|
*/
|
||||||
public static async delMailsByRoleId(roleId: string) {
|
public static async delMailsByRoleId(roleId: string, serverId: number) {
|
||||||
const ids: { _id: string }[] = await ServerMailModel.find(
|
const ids: { _id: string }[] = await ServerMailModel.find(
|
||||||
{
|
{
|
||||||
|
serverId,
|
||||||
isSp: false,
|
isSp: false,
|
||||||
sendTime:{ $lte: nowSeconds() },
|
sendTime:{ $lte: nowSeconds() },
|
||||||
$or: [{
|
$or: [{
|
||||||
|
|||||||
Reference in New Issue
Block a user