common.go 1.3 KB
Newer Older
aaronchen2k2k's avatar
aaronchen2k2k 已提交
1 2 3 4
package serverService

import "github.com/easysoft/zendata/src/model"

aaronchen2k2k's avatar
aaronchen2k2k 已提交
5
func convertToConfModel(treeNode model.ZdField, field *model.DefField) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6 7
	genField(treeNode, field)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
8
	for _, child := range treeNode.Fields {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
		defField := model.DefField{}
		convertToConfModel(*child, &defField)

		field.Fields = append(field.Fields, defField)
	}

	for _, from := range treeNode.Froms { // only one level
		defField := model.DefField{}
		genField(*from, &defField)

		field.Froms = append(field.Froms, defField)
	}

	if len(field.Fields) == 0 {
		field.Fields = nil
	}
	if len(field.Froms) == 0 {
		field.Froms = nil
	}

	return
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
32
func genField(treeNode model.ZdField, field *model.DefField) () {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
	field.Field = treeNode.Field
	field.Note = treeNode.Note

	field.Range = treeNode.Range
	field.Value = treeNode.Exp
	field.Prefix = treeNode.Prefix
	field.Postfix = treeNode.Postfix
	field.Loop = treeNode.Loop
	field.Loopfix = treeNode.Loopfix
	field.Format = treeNode.Format
	field.Type = treeNode.Type
	field.Mode = treeNode.Mode
	field.Length = treeNode.Length
	field.LeftPad = treeNode.LeftPad
	field.RightPad = treeNode.RightPad
	field.Rand = treeNode.Rand

	field.Config = treeNode.Config
	field.Use = treeNode.Use
	field.From = treeNode.From
	field.Select = treeNode.Select
	field.Where = treeNode.Where
	field.Limit = treeNode.Limit
}