提交 929f3de7 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

load user data yaml to db

上级 fce1ac53
...@@ -18,6 +18,7 @@ type ZdDef struct { ...@@ -18,6 +18,7 @@ type ZdDef struct {
Desc string `gorm:"column:desc" json:"desc"` Desc string `gorm:"column:desc" json:"desc"`
Yaml string `gorm:"yaml" json:"yaml"` Yaml string `gorm:"yaml" json:"yaml"`
Folder string `gorm:"-" json:"folder" yaml:"-"` Folder string `gorm:"-" json:"folder" yaml:"-"`
Fields []ZdField `gorm:"-" json:"fields"`
} }
func (*ZdDef) TableName() string { func (*ZdDef) TableName() string {
return constant.TablePrefix + "def" return constant.TablePrefix + "def"
...@@ -54,7 +55,7 @@ type ZdField struct { ...@@ -54,7 +55,7 @@ type ZdField struct {
Limit int `gorm:"column:limitCol" json:"limitCol"` Limit int `gorm:"column:limitCol" json:"limitCol"`
Ord int `gorm:"column:ord;default:1" json:"ord"` Ord int `gorm:"column:ord;default:1" json:"ord"`
Children []*ZdField `gorm:"-" json:"children"` Fields []*ZdField `gorm:"-" json:"fields"`
Froms []*ZdField `gorm:"-" json:"froms"` Froms []*ZdField `gorm:"-" json:"froms"`
// for range edit // for range edit
......
...@@ -86,7 +86,7 @@ func (r *FieldRepo) Save(field *model.ZdField) (err error) { ...@@ -86,7 +86,7 @@ func (r *FieldRepo) Save(field *model.ZdField) (err error) {
func (r *FieldRepo) makeTree(Data []*model.ZdField, node *model.ZdField) { //参数为父节点,添加父节点的子节点指针切片 func (r *FieldRepo) makeTree(Data []*model.ZdField, node *model.ZdField) { //参数为父节点,添加父节点的子节点指针切片
children, _ := r.haveChild(Data, node) //判断节点是否有子节点并返回 children, _ := r.haveChild(Data, node) //判断节点是否有子节点并返回
if children != nil { if children != nil {
node.Children = append(node.Children, children[0:]...) //添加子节点 node.Fields = append(node.Fields, children[0:]...) //添加子节点
for _, v := range children { //查询子节点的子节点,并添加到子节点 for _, v := range children { //查询子节点的子节点,并添加到子节点
_, has := r.haveChild(Data, v) _, has := r.haveChild(Data, v)
if has { if has {
......
...@@ -5,7 +5,7 @@ import "github.com/easysoft/zendata/src/model" ...@@ -5,7 +5,7 @@ import "github.com/easysoft/zendata/src/model"
func convertToConfModel(treeNode model.ZdField, field *model.DefField) { func convertToConfModel(treeNode model.ZdField, field *model.DefField) {
genField(treeNode, field) genField(treeNode, field)
for _, child := range treeNode.Children { for _, child := range treeNode.Fields {
defField := model.DefField{} defField := model.DefField{}
convertToConfModel(*child, &defField) convertToConfModel(*child, &defField)
......
...@@ -67,6 +67,7 @@ func (s *ConfigService) saveResToDB(config []model.ResFile, list []*model.ZdConf ...@@ -67,6 +67,7 @@ func (s *ConfigService) saveResToDB(config []model.ResFile, list []*model.ZdConf
config.Path = item.Path config.Path = item.Path
config.Field = item.Title config.Field = item.Title
config.Note = item.Desc config.Note = item.Desc
config.Yaml = string(content)
s.configRepo.Save(&config) s.configRepo.Save(&config)
} }
......
...@@ -5,8 +5,10 @@ import ( ...@@ -5,8 +5,10 @@ import (
"github.com/easysoft/zendata/src/server/repo" "github.com/easysoft/zendata/src/server/repo"
constant "github.com/easysoft/zendata/src/utils/const" constant "github.com/easysoft/zendata/src/utils/const"
fileUtils "github.com/easysoft/zendata/src/utils/file" fileUtils "github.com/easysoft/zendata/src/utils/file"
stringUtils "github.com/easysoft/zendata/src/utils/string"
"github.com/jinzhu/gorm" "github.com/jinzhu/gorm"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"io/ioutil"
"strings" "strings"
) )
...@@ -14,10 +16,15 @@ type DefService struct { ...@@ -14,10 +16,15 @@ type DefService struct {
defRepo *serverRepo.DefRepo defRepo *serverRepo.DefRepo
fieldRepo *serverRepo.FieldRepo fieldRepo *serverRepo.FieldRepo
referRepo *serverRepo.ReferRepo referRepo *serverRepo.ReferRepo
resService *ResService
} }
func (s *DefService) List() (defs []*model.ZdDef) { func (s *DefService) List() (list []*model.ZdDef) {
defs, _ = s.defRepo.List() defs := s.resService.LoadRes("yaml")
list, _ = s.defRepo.List()
s.saveDataToDB(defs, list)
list, _ = s.defRepo.List()
return return
} }
...@@ -100,7 +107,7 @@ func (s *DefService) dataToYaml(def *model.ZdDef) (str string) { ...@@ -100,7 +107,7 @@ func (s *DefService) dataToYaml(def *model.ZdDef) (str string) {
defData := model.DefData{} defData := model.DefData{}
s.defRepo.GenDef(*def, &defData) s.defRepo.GenDef(*def, &defData)
for _, child := range root.Children { // ignore the root for _, child := range root.Fields { // ignore the root
defField := model.DefField{} defField := model.DefField{}
convertToConfModel(*child, &defField) convertToConfModel(*child, &defField)
...@@ -132,6 +139,47 @@ func (s *DefService) getFolder(pth string) string { ...@@ -132,6 +139,47 @@ func (s *DefService) getFolder(pth string) string {
return pth[:idx+1] return pth[:idx+1]
} }
func NewDefService(defRepo *serverRepo.DefRepo, fieldRepo *serverRepo.FieldRepo, referRepo *serverRepo.ReferRepo) *DefService { func (s *DefService) saveDataToDB(defs []model.ResFile, list []*model.ZdDef) (err error) {
names := make([]string, 0)
for _, item := range list {
names = append(names, item.Path)
}
for _, def := range defs {
if !stringUtils.FindInArrBool(def.Path, names) {
//if strings.Contains(inst.Path, "_test") {
content, _ := ioutil.ReadFile(def.Path)
yamlContent := stringUtils.ReplaceSpecialChars(content)
defPo := model.ZdDef{}
err = yaml.Unmarshal(yamlContent, &defPo)
defPo.Title = def.Title
defPo.Type = def.ResType
defPo.Desc = def.Desc
defPo.Path = def.Path
defPo.Yaml = string(content)
s.defRepo.Create(&defPo)
for _, field := range defPo.Fields {
s.saveFieldToDB(&field, 0, defPo.ID)
}
//}
}
}
return
}
func (s *DefService) saveFieldToDB(item *model.ZdField, parentID, defID uint) {
item.DefID = defID
item.ParentID = parentID
s.fieldRepo.Save(item)
for _, child := range item.Fields {
s.saveFieldToDB(child, item.ID, defID)
}
}
func NewDefService(defRepo *serverRepo.DefRepo, fieldRepo *serverRepo.FieldRepo,
referRepo *serverRepo.ReferRepo) *DefService {
return &DefService{defRepo: defRepo, fieldRepo: fieldRepo, referRepo: referRepo} return &DefService{defRepo: defRepo, fieldRepo: fieldRepo, referRepo: referRepo}
} }
...@@ -104,10 +104,12 @@ func (s *InstancesService) saveResToDB(instances []model.ResFile, list []*model. ...@@ -104,10 +104,12 @@ func (s *InstancesService) saveResToDB(instances []model.ResFile, list []*model.
instPo.Name = inst.Name instPo.Name = inst.Name
instPo.Desc = inst.Desc instPo.Desc = inst.Desc
instPo.Path = inst.Path instPo.Path = inst.Path
instPo.Yaml = string(content)
s.instancesRepo.Save(&instPo) s.instancesRepo.Save(&instPo)
for _, item := range instPo.Instances { for i, item := range instPo.Instances {
item.Ord = i + 1
s.saveItemToDB(&item, 0, instPo.ID) s.saveItemToDB(&item, 0, instPo.ID)
} }
//} //}
......
...@@ -102,13 +102,17 @@ func (s *RangesService) saveResToDB(ranges []model.ResFile, list []*model.ZdRang ...@@ -102,13 +102,17 @@ func (s *RangesService) saveResToDB(ranges []model.ResFile, list []*model.ZdRang
ranges.Path = item.Path ranges.Path = item.Path
ranges.Field = item.Title ranges.Field = item.Title
ranges.Note = item.Desc ranges.Note = item.Desc
ranges.Yaml = string(content)
s.rangesRepo.Save(&ranges) s.rangesRepo.Save(&ranges)
i := 1
for k, v := range ranges.RangeMap { for k, v := range ranges.RangeMap {
item := model.ZdRangesItem{Name: k, Value: v} item := model.ZdRangesItem{Name: k, Value: v}
item.RangesID = ranges.ID item.RangesID = ranges.ID
item.Ord = i
s.rangesRepo.SaveItem(&item) s.rangesRepo.SaveItem(&item)
i += 1
} }
} }
} }
......
title: 测试数据
desc:
author: zentao
version: 1.0
fields:
- field: field1
note: 测试
fields:
- field: field1-1
range: 0-9
postfix: ","
- field: field1-2
range: a-z
- field: field2
range: A-Z
title: 国家数据
desc:
author: zentao
version: 1.0
field: country
instances:
- instance: instant1
note: 测试
fields:
- field: field1
note: 测试
fields:
- field: field1-1
range: 0-9
postfix: ","
- field: field1-2
range: a-z
- field: field2
range: A-Z
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册