From b89db66774ee980d94a9272eb0ff9a792bc7938a Mon Sep 17 00:00:00 2001 From: aaron <462826@qq.com> Date: Fri, 15 May 2020 16:39:22 +0800 Subject: [PATCH] new definition format --- src/action/generator.go | 4 ++-- src/gen/definition.go | 28 +++++++++++++++------------- src/gen/generator.go | 6 +++--- src/utils/const/const.go | 4 ++-- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/action/generator.go b/src/action/generator.go index 3fba12fe..faa1bd49 100644 --- a/src/action/generator.go +++ b/src/action/generator.go @@ -23,8 +23,8 @@ func Generate(def string, total int, fieldsToExportStr string, out string, forma constant.InputDir = filepath.Dir(def) + string(os.PathSeparator) - referRangeFields, referInstFields := gen.LoadDefinitionFromFile(def, fieldsToExport) - gen.LoadReferRes(referRangeFields, referInstFields) + referRangeFields, referInstFields := gen.LoadDefinitionFromFile(def, fieldsToExport) // init constant.RootDef + gen.LoadReferRes(referRangeFields, referInstFields) // init const.ResMap rows, colTypes := gen.GenerateForDefinition(total, fieldsToExport) content := Print(rows, format, table, colTypes, fieldsToExport) diff --git a/src/gen/definition.go b/src/gen/definition.go index 45becff7..9ca3494b 100644 --- a/src/gen/definition.go +++ b/src/gen/definition.go @@ -4,6 +4,7 @@ import ( "github.com/easysoft/zendata/src/model" constant "github.com/easysoft/zendata/src/utils/const" logUtils "github.com/easysoft/zendata/src/utils/log" + stringUtils "github.com/easysoft/zendata/src/utils/string" "gopkg.in/yaml.v2" "io/ioutil" "strings" @@ -26,26 +27,27 @@ func LoadDefinitionFromFile(file string, fieldsToExport []string) ([]model.ClsRa return referRangeFields, referInstFields } - if strings.Index(file, "def") != 0 && constant.Definition.Title == "" { // only add the fields in first level yaml file - constant.Definition = def + if strings.Index(file, "def") != 0 && constant.RootDef.Title == "" { // only add the fields in first level yaml file + constant.RootDef = def } for _, field := range def.Fields { - _ = field - // TODO: dealwith referRangeFields and referInstFields for constant.LoadedResValues - } + if !stringUtils.FindInArr(field.Field, fieldsToExport) { continue } - //for _, field := range def.Fields { - // fieldValue := model.FieldValue{} - // // TODO: 生成fieldValue - // constant.LoadedResValues[field.Field] = fieldValue // add to a map - //} + // TODO: dealwith referRangeFields and referInstFields for constant.ResMap + } return referRangeFields, referInstFields } func LoadReferRes([]model.ClsRange, []model.ClsInst) { - //fieldValueMap := map[string]model.FieldValue{} - // - //LoadDefinitionFromFile(constant.ResBuildIn) // load buildin resource + // init const.ResMap + + + + //for _, field := range def.Fields { + // fieldValue := model.FieldValue{} + // // TODO: 生成fieldValue + // constant.ResMap[field.Field] = fieldValue // add to a map + //} } diff --git a/src/gen/generator.go b/src/gen/generator.go index ccce1b1e..1cff08e9 100644 --- a/src/gen/generator.go +++ b/src/gen/generator.go @@ -10,7 +10,7 @@ import ( ) func GenerateForDefinition(total int, fieldsToExport []string) ([][]string, []bool) { - def := constant.Definition + def := constant.RootDef fieldNameToValues := map[string][]string{} @@ -70,7 +70,7 @@ func GenerateForField(field *model.DefField, total int) []string { } else if field.From != "" && field.Select != "" { // refer to excel arr := strings.Split(field.From, ".") - referField := constant.LoadedResValues[arr[0]] + referField := constant.ResMap[arr[0]] referField.From = field.From referField.Select = field.Select @@ -89,7 +89,7 @@ func GenerateForField(field *model.DefField, total int) []string { //LoadDefinitionFromFile(constant.InputDir + field.Range) } - //referField := constant.LoadedResValues[field.Field] + //referField := constant.ResMap[field.Field] //values = GenerateForField(&referField, total) // TODO: 需要处理range: small,large等逻辑 diff --git a/src/utils/const/const.go b/src/utils/const/const.go index f78f681d..7d9d7a21 100644 --- a/src/utils/const/const.go +++ b/src/utils/const/const.go @@ -30,8 +30,8 @@ var ( WorkDir string = "" InputDir string = "" - Definition model.DefData = model.DefData{} - LoadedResValues map[string]model.FieldValue = map[string]model.FieldValue{} + RootDef model.DefData = model.DefData{} + ResMap map[string]model.FieldValue = map[string]model.FieldValue{} ResDir string = "data/" ResBuildIn string = ResDir + "system/buildin.yaml" -- GitLab