From 9f395295f0be5f655cbeef4616cb549924bf3be7 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 6 May 2024 11:46:20 +0800 Subject: [PATCH] 1 --- README.md | 4 ++++ server/mailserver/mail/mailmgr.go | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/README.md b/README.md index 252e813d..7942fa39 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,10 @@ SMLogin 用户组 增删改 +事件类型 +邮件:新增、变更、删除 +用户组:新增、变更、删除 + # 参考 https://gorm.io/zh_CN/docs/ diff --git a/server/mailserver/mail/mailmgr.go b/server/mailserver/mail/mailmgr.go index 75015022..6b28c7c8 100644 --- a/server/mailserver/mail/mailmgr.go +++ b/server/mailserver/mail/mailmgr.go @@ -21,9 +21,11 @@ type mailMgr struct { groupMails sync.Map //int64 => *mail personalMails sync.Map //string => sync.Map groupHash sync.Map //int64 => *userGroup + lastSyncEventIdx int64 } func (this *mailMgr) Init() { + this.syncEvent() this.loadMails() this.loadGroups() this.loadGroupMembers() @@ -265,3 +267,20 @@ func (this *mailMgr) internalGetMail(mailId string) *mail { return nil } } + +func (this *mailMgr) syncEvent() { + f5.GetGoStyleDb().SyncSelectCustomQuery( + constant.MAIL_DB, + "SELECT MAX(idx) FROM t_event;", + func(err error, ds *f5.DataSet) { + if err != nil { + panic("sync event error") + return + } + if ds.Next() { + this.lastSyncEventIdx = q5.ToInt64(ds.GetByIndex(0)) + } else { + panic("sync event error") + } + }); +}