From 32c16fa7c8c02018412f06cdd13426192179597a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 15 Apr 2024 09:00:48 +0800 Subject: [PATCH] 1 --- server/mailserver/common/types.go | 10 ++++++- server/mailserver/mail/mail.go | 4 +++ server/mailserver/mail/mailmgr.go | 49 ++++++++++++++++++++++++++++--- 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/server/mailserver/common/types.go b/server/mailserver/common/types.go index 9571cb24..9d0d638a 100644 --- a/server/mailserver/common/types.go +++ b/server/mailserver/common/types.go @@ -32,11 +32,19 @@ type Player interface { UnLock() GetHashCode() uint32 GetAccountId() string + + MarkMails([]Mail) + GetAttachment([]Mail) + DeleteMails([]Mail) } -type PlayerMgr interface{ +type PlayerMgr interface { GetPlayerByAccountId() Player } +type Mail interface { + GetMailId() int64 +} + type MailMgr interface{ } diff --git a/server/mailserver/mail/mail.go b/server/mailserver/mail/mail.go index ff379935..98f99a8d 100644 --- a/server/mailserver/mail/mail.go +++ b/server/mailserver/mail/mail.go @@ -44,6 +44,10 @@ func (this *mail) isValid(hum common.Player) bool { return true } +func (this *mail) GetMailId() int64 { + return this.mailId +} + func (this *mail) fillMailDto(mailDto *common.MailDto) bool { return true } diff --git a/server/mailserver/mail/mailmgr.go b/server/mailserver/mail/mailmgr.go index e1f26fee..f263db07 100644 --- a/server/mailserver/mail/mailmgr.go +++ b/server/mailserver/mail/mailmgr.go @@ -116,12 +116,19 @@ func (this *mailMgr) caGetMailList(hum common.Player, c *gin.Context) { func (this *mailMgr) caMarkMail(hum common.Player, c *gin.Context) { mailIds := q5.StrSplit(c.DefaultQuery("mail_ids", ""), ",") + mails := []common.Mail{} for _, str := range(mailIds) { m := this.getMail(str) if m != nil { - + q5.AppendSlice(&mails, m) } } + hum.MarkMails(mails) + rspObj := struct { + ErrCode int32 `json:"errcode"` + ErrMsg string `json:"errmsg"` + }{} + c.JSON(200, rspObj) } func (this *mailMgr) caGetUnreadMailCnt(hum common.Player, c *gin.Context) { @@ -129,11 +136,37 @@ func (this *mailMgr) caGetUnreadMailCnt(hum common.Player, c *gin.Context) { } func (this *mailMgr) caGetAttachment(hum common.Player, c *gin.Context) { - + mailIds := q5.StrSplit(c.DefaultQuery("mail_ids", ""), ",") + mails := []common.Mail{} + for _, str := range(mailIds) { + m := this.getMail(str) + if m != nil { + q5.AppendSlice(&mails, m) + } + } + hum.GetAttachment(mails) + rspObj := struct { + ErrCode int32 `json:"errcode"` + ErrMsg string `json:"errmsg"` + }{} + c.JSON(200, rspObj) } func (this *mailMgr) caDeleteMails(hum common.Player, c *gin.Context) { - + mailIds := q5.StrSplit(c.DefaultQuery("mail_ids", ""), ",") + mails := []common.Mail{} + for _, str := range(mailIds) { + m := this.getMail(str) + if m != nil { + q5.AppendSlice(&mails, m) + } + } + hum.DeleteMails(mails) + rspObj := struct { + ErrCode int32 `json:"errcode"` + ErrMsg string `json:"errmsg"` + }{} + c.JSON(200, rspObj) } func (this *mailMgr) traversePlayerMail(hum common.Player, cb func(*mail) bool) { @@ -190,7 +223,15 @@ func (this *mailMgr) getGroup(groupId int64) *userGroup { } } -func (this *mailMgr) getMail(mailId string) *mail { +func (this *mailMgr) getMail(mailId string) common.Mail { + if m := this.internalGetMail(mailId); m != nil { + return m + } else { + return nil + } +} + +func (this *mailMgr) internalGetMail(mailId string) *mail { if p, ok := this.idHash.Load(mailId); ok { return p.(*mail) } else {