From e2a2e6a3c211636f449bfbfb362aba84f2122371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Mon, 11 Mar 2024 11:08:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=88=E5=B9=B6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abstruct.go | 4 ++++ common.go | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/abstruct.go b/abstruct.go index 03dfc4e..d7017d5 100644 --- a/abstruct.go +++ b/abstruct.go @@ -35,6 +35,10 @@ type EasyMap interface { Count() int GetAll() map[interface{}]interface{} GetAllForMapKeyString() map[string]interface{} + // Merge 合并数据 + Merge(mergeData ...EasyMap) + // MergeWithReceiver 合并数据并转换 + MergeWithReceiver(receiver interface{}, mergeData ...EasyMap) error // Iterator 对数据的迭代 Iterator(IteratorFunc) // ToStruct 转换成结构体 diff --git a/common.go b/common.go index 2435517..fad4398 100644 --- a/common.go +++ b/common.go @@ -405,3 +405,30 @@ func (c *common) Filter(ignoreFieldList []string, rewriteFieldTable map[string]s } return result } + +// Merge 合并数据 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:01 2024/3/11 +func (c *common) Merge(mergeData ...EasyMap) { + for _, itemData := range mergeData { + allData := itemData.GetAll() + for k, v := range allData { + c.Set(k, v) + } + } +} + +// MergeWithReceiver 合并并转换 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:06 2024/3/11 +func (c *common) MergeWithReceiver(receiver interface{}, mergeData ...EasyMap) error { + c.Merge(mergeData...) + if nil == receiver { + return nil + } + return c.ToStruct(receiver) +}