From 5f6d40caa14f6373641feb8e3a68962017a834fb Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 3 Apr 2019 10:47:47 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=B0=86FlatMap=EF=BC=8CStruct2FlatMap?= =?UTF-8?q?=E4=BB=8Ejxutils=E7=A7=BB=E5=88=B0utils=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/excel/excel.go | 3 +-- globals/refutil/refutil.go | 27 +-------------------------- 2 files changed, 2 insertions(+), 28 deletions(-) diff --git a/business/jxutils/excel/excel.go b/business/jxutils/excel/excel.go index 75b8edd29..3e867a9d6 100644 --- a/business/jxutils/excel/excel.go +++ b/business/jxutils/excel/excel.go @@ -8,7 +8,6 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/refutil" "github.com/360EntSecGroup-Skylar/excelize" ) @@ -52,7 +51,7 @@ func Obj2Excel(sheetList []*Obj2ExcelSheetConfig) []byte { for i := 0; i < valueInfo.Len(); i++ { var mapData map[string]interface{} if typeInfo.Kind() == reflect.Struct { - mapData = refutil.FlatMap(utils.Struct2MapByJson(valueInfo.Index(i).Interface())) + mapData = utils.FlatMap(utils.Struct2MapByJson(valueInfo.Index(i).Interface())) } else { mapData = valueInfo.Index(i).Interface().(map[string]interface{}) } diff --git a/globals/refutil/refutil.go b/globals/refutil/refutil.go index d4b95775a..d003db82c 100644 --- a/globals/refutil/refutil.go +++ b/globals/refutil/refutil.go @@ -48,38 +48,13 @@ func DeSerializeData(strValue string, dataPtr interface{}) (err error) { return err } -func FlatMap(in map[string]interface{}) map[string]interface{} { - keys := []string{} - maps := []map[string]interface{}{} - for k, v := range in { - if vMap, ok := v.(map[string]interface{}); ok { - vMap = FlatMap(vMap) - maps = append(maps, vMap) - keys = append(keys, k) - } - } - if len(maps) > 0 { - retVal := utils.MergeMaps(in, maps...) - for _, v := range keys { - delete(retVal, v) - } - return retVal - } - return in -} - -func Struct2FlatMap(obj interface{}) map[string]interface{} { - m := utils.Struct2MapByJson(obj) - return FlatMap(m) -} - // todo 这里看是否需要将key值转换成标准格式(即字母大写),因为beego orm不区分,不转换也可以 func FilterMapByStructObject(mapData map[string]interface{}, obj interface{}, excludedFields []string, isCheckValue bool) (valid map[string]interface{}, invalid map[string]interface{}) { excludedMap := make(map[string]int) for _, v := range excludedFields { excludedMap[v] = 1 } - m := Struct2FlatMap(obj) + m := utils.Struct2FlatMap(obj) valid = make(map[string]interface{}) invalid = make(map[string]interface{}) for k, v := range mapData {