From e0a4bb028bd180bf72e16805bf44ee6bd09ec0cf Mon Sep 17 00:00:00 2001 From: missish <2445921920@qq.com> Date: Sat, 31 May 2025 11:22:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin/server):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=9B=B4=E6=96=B0=E6=97=B6Tags=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改DeepCopy调用以忽略空值,并完善Tags字段的处理逻辑。当Tags为空数组时清空数据库字段,避免保留旧值。 --- internal/logic/admin/server/updateNodeLogic.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/logic/admin/server/updateNodeLogic.go b/internal/logic/admin/server/updateNodeLogic.go index e7ced74..582c206 100644 --- a/internal/logic/admin/server/updateNodeLogic.go +++ b/internal/logic/admin/server/updateNodeLogic.go @@ -37,7 +37,7 @@ func (l *UpdateNodeLogic) UpdateNode(req *types.UpdateNodeRequest) error { if err != nil { return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "find server error: %v", err) } - tool.DeepCopy(nodeInfo, req) + tool.DeepCopy(nodeInfo, req, tool.CopyWithIgnoreEmpty(false)) config, err := json.Marshal(req.Config) if err != nil { return err @@ -50,8 +50,14 @@ func (l *UpdateNodeLogic) UpdateNode(req *types.UpdateNodeRequest) error { return err } - if len(req.Tags) > 0 { + // 处理Tags字段 + switch { + case len(req.Tags) > 0: + // 有Tags,进行连接 nodeInfo.Tags = strings.Join(req.Tags, ",") + default: + // 空数组,清空Tags + nodeInfo.Tags = "" } nodeInfo.City = req.City