From ffa5920a879e0816c1715c82c6e1489539328847 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 10 May 2024 11:59:22 +0800 Subject: [PATCH] 1 --- server/mailserver/constant/constant.go | 1 + server/mailserver/model/inbox.go | 6 ++++-- server/mailserver/player/player.go | 14 +++++++++++--- third_party/f5 | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/server/mailserver/constant/constant.go b/server/mailserver/constant/constant.go index 9d34b219..c05fe292 100644 --- a/server/mailserver/constant/constant.go +++ b/server/mailserver/constant/constant.go @@ -18,6 +18,7 @@ const ( ) const ( + INBOX_STATE_NONE = 0 INBOX_STATE_READ = 1 INBOX_STATE_DELETED = 2 ) diff --git a/server/mailserver/model/inbox.go b/server/mailserver/model/inbox.go index 2810e579..38e3e22e 100644 --- a/server/mailserver/model/inbox.go +++ b/server/mailserver/model/inbox.go @@ -6,10 +6,12 @@ type inbox struct { var Inbox = new(inbox) -func (this *inbox) Mark(accountId string, mailId int64, nowTime int64) error { +func (this *inbox) Mark(accountId string, mailId int64, nowTime int64, expireTime int32) error { + //f5.GetGoStyleDb().RawQuery( + //) return nil } -func (this *inbox) Delete(accountId string, mailId int64, nowTime int64) error { +func (this *inbox) Delete(accountId string, mailId int64, nowTime int64, expireTime int32) error { return nil } diff --git a/server/mailserver/player/player.go b/server/mailserver/player/player.go index 686a3f18..a4aecad3 100644 --- a/server/mailserver/player/player.go +++ b/server/mailserver/player/player.go @@ -55,12 +55,12 @@ func (this *player) GetRegisterTime() int32 { func (this *player) MarkMails(mails []common.Mail) error { this.checkLock() var resultErr error - var nowTime int64 + var nowTime = f5.GetApp().GetRealSeconds() for _, m := range(mails) { if m.IsValid(this) { mi := this.getInbox(m.GetMailId()) if mi == nil { - err := model.Inbox.Mark(this.GetAccountId(), m.GetMailId(), nowTime) + err := model.Inbox.Mark(this.GetAccountId(), m.GetMailId(), nowTime, m.GetExpireTime()) if err != nil { resultErr = err break @@ -70,6 +70,14 @@ func (this *player) MarkMails(mails []common.Mail) error { mi.state = constant.INBOX_STATE_READ mi.expireTime = m.GetExpireTime() this.inboxHash[mi.mailId] = mi + } else if mi.state != constant.INBOX_STATE_NONE { + err := model.Inbox.Mark(this.GetAccountId(), m.GetMailId(), nowTime, m.GetExpireTime()) + if err != nil { + resultErr = err + break + } + mi.state = constant.INBOX_STATE_READ + mi.expireTime = m.GetExpireTime() } } } @@ -90,7 +98,7 @@ func (this *player) DeleteMails(mails []common.Mail) error { if m.IsValid(this) { mi := this.getInbox(m.GetMailId()) if mi == nil { - err := model.Inbox.Delete(this.GetAccountId(), m.GetMailId(), nowTime) + err := model.Inbox.Delete(this.GetAccountId(), m.GetMailId(), nowTime, m.GetExpireTime()) if err != nil { resultErr = err break diff --git a/third_party/f5 b/third_party/f5 index 55494b30..03df640b 160000 --- a/third_party/f5 +++ b/third_party/f5 @@ -1 +1 @@ -Subproject commit 55494b30028680324d5401feb66ae7a419a652ae +Subproject commit 03df640b48e253e04c141d7b331b4362eef7b415