diff --git a/shared/db/GroupMail.ts b/shared/db/GroupMail.ts index 714cedb0c..4ca716361 100644 --- a/shared/db/GroupMail.ts +++ b/shared/db/GroupMail.ts @@ -91,7 +91,8 @@ export default class GroupMail extends BaseModel { let mails = []; for(let id of ids) { const result: GroupMailType = await GroupMailModel.findOneAndUpdate({_id: id, "sendRoles.roleId": roleId}, { $set:{ 'sendRoles.$.status': status } }, { new: true }).lean(lean); - mails.push({id: result._id, status: result.sendRoles[0].status, mailType: MAIL_TYPE.GROUPMAIL}); + let { status: resStatus } = findWhere(result.sendRoles, { roleId }); + mails.push({id: result._id, status: resStatus, mailType: MAIL_TYPE.GROUPMAIL}); } return mails; } diff --git a/shared/db/Mail.ts b/shared/db/Mail.ts index a4d1ee849..0b779830c 100644 --- a/shared/db/Mail.ts +++ b/shared/db/Mail.ts @@ -82,10 +82,10 @@ export default class Mail extends BaseModel { return ids; } - public static async updateMailStatus(ids: string[], status: number) { + public static async updateMailStatus(ids: string[], status: number, lean = true) { let mails = []; for(let id of ids) { - const result: MailType = await MailModel.findOneAndUpdate({_id: id}, { $set:{ 'status': status } }); + const result: MailType = await MailModel.findOneAndUpdate({_id: id}, { $set:{ 'status': status } }, { new: true }).lean(lean); mails.push({id: result._id, status: result.status, mailType: MAIL_TYPE.SINGLEMAIL}); } return mails;