From ec3dbf148c321dee8f1f4fbbeddb6b0ac0f94132 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 10 May 2024 18:04:43 +0800 Subject: [PATCH] 1 --- server/mailserver/mail/mailmgr.go | 37 +++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/server/mailserver/mail/mailmgr.go b/server/mailserver/mail/mailmgr.go index f19726ae..c32250e1 100644 --- a/server/mailserver/mail/mailmgr.go +++ b/server/mailserver/mail/mailmgr.go @@ -437,11 +437,32 @@ func (this* mailMgr) procMailUpdate(e *dbEvent) { panic(fmt.Sprintf("procMailUpdate error:%s", err)); } e.entry.DelInit() + this.updateDbEvent() }) } func (this* mailMgr) procGroupUpdate(e *dbEvent) { this.procingEvent = true + fetchMemberFunc := func () { + f5.GetJsStyleDb().OrmSelect( + constant.MAIL_DB, + "t_member", + [][]string{ + {"group_id", e.param1}, + {"deleted", "0"}, + }, + func (err error, ds *f5.DataSet) { + this.procingEvent = false + if err != nil { + return + } + if ds.Next() { + return + } else { + panic(fmt.Sprintf("procGroupUpdate1 error:%s", err)); + } + }) + } f5.GetJsStyleDb().OrmSelectOne( constant.MAIL_DB, "t_group", @@ -449,10 +470,22 @@ func (this* mailMgr) procGroupUpdate(e *dbEvent) { {"group_id", e.param1}, }, func (err error, ds *f5.DataSet) { - this.procingEvent = false if err != nil { + this.procingEvent = false return } - e.entry.DelInit() + if ds.Next() { + deleted := q5.ToInt32(ds.GetByName("deleted")) + if deleted != 0 { + this.procingEvent = false + this.groupHash.Delete(q5.ToInt64(e.param1)) + return + } + fetchMemberFunc() + return + } else { + this.procingEvent = false + panic(fmt.Sprintf("procGroupUpdate1 error:%s", err)); + } }) }