From 374d7e36001a710c8cfbe4dde94de4fff5d134af Mon Sep 17 00:00:00 2001 From: JavaPythonAIForBAT Date: Thu, 16 Jul 2026 17:49:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20TriggerNotify=20=E6=8C=89=20CLA=20?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E8=A7=A6=E5=8F=91=EF=BC=8C=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E8=A7=A6=E5=8F=91=E4=BC=81=E4=B8=9A=E5=92=8C?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=A4=E8=BE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TriggerNotify(t) 只触发对应 CLA 类型的扫描器 - Update 中 SetPendingCLAForLink 仅企业 CLA 更新时标记 - 个人 CLA 更新 → 只通知个人,不标记企业 - 企业 CLA 更新 → 只通知企业,不触发个人扫描 --- signing/app/cla.go | 8 +++++--- signing/watch/notify_corp_admin.go | 20 ++++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/signing/app/cla.go b/signing/app/cla.go index 1e41b4a..8fb6420 100644 --- a/signing/app/cla.go +++ b/signing/app/cla.go @@ -62,11 +62,13 @@ func (s *claService) Update(cmd *CmdToUpdateCLA) error { return err } - if err = s.cs.SetPendingCLAForLink(cmd.LinkId, cla.Id); err != nil { - logs.Error("set pending CLA for link failed: %s, err: %v", cmd.LinkId, err) + if !dp.IsCLATypeIndividual(cla.Type) { + if err = s.cs.SetPendingCLAForLink(cmd.LinkId, cla.Id); err != nil { + logs.Error("set pending CLA for link failed: %s, err: %v", cmd.LinkId, err) + } } - watch.TriggerNotify() + watch.TriggerNotify(cla.Type) return nil } diff --git a/signing/watch/notify_corp_admin.go b/signing/watch/notify_corp_admin.go index 419bf51..297fd52 100644 --- a/signing/watch/notify_corp_admin.go +++ b/signing/watch/notify_corp_admin.go @@ -42,18 +42,22 @@ func NotifyAdminWatchStop() { } // TriggerNotify 立即触发一次通知扫描,不等待定时器周期。 -// CLA 更新后应调用此函数,确保企业和个人都在最短时间内收到通知。 -func TriggerNotify() { +// t 指定要触发的 CLA 类型,只触发对应类型的扫描器。 +func TriggerNotify(t dp.CLAType) { if notifyAdminWatchInstance == nil { return } - select { - case notifyAdminWatchInstance.corpTrigger <- struct{}{}: - default: + if !dp.IsCLATypeIndividual(t) { + select { + case notifyAdminWatchInstance.corpTrigger <- struct{}{}: + default: + } } - select { - case notifyAdminWatchInstance.individualTrigger <- struct{}{}: - default: + if dp.IsCLATypeIndividual(t) { + select { + case notifyAdminWatchInstance.individualTrigger <- struct{}{}: + default: + } } }