Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zendata
提交
3973405c
Z
zendata
项目概览
易企天创
/
zendata
9 个月 前同步成功
通知
17
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zendata
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3973405c
编写于
4月 22, 2020
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
adjust code logic for nested fields
上级
40bfb06d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
69 addition
and
33 deletion
+69
-33
src/gen/generator.go
src/gen/generator.go
+67
-28
src/gen/list.go
src/gen/list.go
+1
-5
src/model/definition.go
src/model/definition.go
+1
-0
未找到文件。
src/gen/generator.go
浏览文件 @
3973405c
package
gen
package
gen
import
(
import
(
"encoding/json"
"github.com/easysoft/zendata/src/model"
"github.com/easysoft/zendata/src/model"
constant
"github.com/easysoft/zendata/src/utils/const"
constant
"github.com/easysoft/zendata/src/utils/const"
logUtils
"github.com/easysoft/zendata/src/utils/log"
stringUtils
"github.com/easysoft/zendata/src/utils/string"
stringUtils
"github.com/easysoft/zendata/src/utils/string"
"strconv"
"strconv"
"strings"
"strings"
...
@@ -27,29 +29,10 @@ func Generate(def *model.Definition, total int, fields string, out string, table
...
@@ -27,29 +29,10 @@ func Generate(def *model.Definition, total int, fields string, out string, table
continue
continue
}
}
if
field
.
Loop
==
0
{
str
:=
GenerateFieldValWithLoop
(
field
,
fieldMap
,
indexOfRow
)
field
.
Loop
=
1
}
prefix
:=
field
.
Prefix
postfix
:=
field
.
Postfix
if
len
(
rows
)
==
i
{
rows
=
append
(
rows
,
make
([]
string
,
0
))
}
if
len
(
rows
)
==
i
{
rows
=
append
(
rows
,
make
([]
string
,
0
))
}
rows
[
i
]
=
append
(
rows
[
i
],
str
)
loopStr
:=
""
indexOfRow
++
for
j
:=
0
;
j
<
field
.
Loop
;
j
++
{
if
loopStr
!=
""
{
loopStr
=
loopStr
+
field
.
Loopfix
}
str
:=
GetFieldStr
(
field
,
fieldMap
,
indexOfRow
)
loopStr
=
loopStr
+
str
indexOfRow
++
if
indexOfRow
==
len
(
fieldMap
[
field
.
Name
])
{
// no enough
indexOfRow
=
0
}
}
rows
[
i
]
=
append
(
rows
[
i
],
prefix
+
loopStr
+
postfix
)
}
}
}
}
...
@@ -69,14 +52,57 @@ func GenerateFieldArr(field *model.Field, total int, fieldMap map[string][]inter
...
@@ -69,14 +52,57 @@ func GenerateFieldArr(field *model.Field, total int, fieldMap map[string][]inter
default
:
default
:
}
}
fieldMap
[
field
.
Name
]
=
GetFieldPlatArr
(
fieldValue
,
total
)
fieldMap
[
field
.
Name
]
=
append
(
fieldMap
[
field
.
Name
],
fieldValue
)
}
func
GenerateFieldValWithLoop
(
field
model
.
Field
,
fieldMap
map
[
string
][]
interface
{},
indexOfRow
int
)
string
{
prefix
:=
field
.
Prefix
postfix
:=
field
.
Postfix
loopStr
:=
""
for
j
:=
0
;
j
<
field
.
Loop
;
j
++
{
if
loopStr
!=
""
{
loopStr
=
loopStr
+
field
.
Loopfix
}
str
:=
GenerateFieldVal
(
field
,
fieldMap
,
indexOfRow
)
loopStr
=
loopStr
+
str
indexOfRow
++
}
return
prefix
+
loopStr
+
postfix
}
func
GenerateFieldVal
(
field
model
.
Field
,
fieldMap
map
[
string
][]
interface
{},
indexOfRow
int
)
string
{
fieldValue
:=
fieldMap
[
field
.
Name
][
indexOfRow
%
len
(
fieldMap
[
field
.
Name
])]
.
(
model
.
FieldValue
)
str
:=
""
index
:=
indexOfRow
%
len
(
fieldValue
.
Values
)
if
len
(
fieldValue
.
Children
)
==
0
{
val
:=
fieldValue
.
Values
[
index
]
str
=
GetFieldValStr
(
field
,
val
)
}
else
{
str
=
GetFieldValStrFromNestedObj
(
fieldValue
,
index
)
}
return
str
}
func
GetFieldValStrFromNestedObj
(
fieldValue
model
.
FieldValue
,
index
int
)
string
{
arr
:=
GetFieldPlatArr
(
fieldValue
)
bytes
,
_
:=
json
.
Marshal
(
arr
)
logUtils
.
Screen
(
string
(
bytes
))
return
""
}
}
func
GetFieldPlatArr
(
fieldValue
model
.
FieldValue
,
total
int
)
[]
interface
{}
{
func
GetFieldPlatArr
(
fieldValue
model
.
FieldValue
)
[]
interface
{}
{
arr
:=
make
([]
interface
{},
0
)
arr
:=
make
([]
interface
{},
0
)
if
len
(
fieldValue
.
Children
)
>
0
{
if
len
(
fieldValue
.
Children
)
>
0
{
platArr
:=
ConvertNestedFieldToPlatArr
(
fieldValue
)
arr
=
append
(
arr
,
platArr
...
)
}
else
{
}
else
{
arr
=
append
(
arr
,
fieldValue
.
Values
...
)
arr
=
append
(
arr
,
fieldValue
.
Values
...
)
}
}
...
@@ -84,10 +110,22 @@ func GetFieldPlatArr(fieldValue model.FieldValue, total int) []interface{} {
...
@@ -84,10 +110,22 @@ func GetFieldPlatArr(fieldValue model.FieldValue, total int) []interface{} {
return
arr
return
arr
}
}
func
GetFieldStr
(
field
model
.
Field
,
fieldMap
map
[
string
][]
interface
{},
indexOfRow
int
)
string
{
func
ConvertNestedFieldToPlatArr
(
fieldValue
model
.
FieldValue
)
[]
interface
{}
{
arr
:=
make
([]
interface
{},
0
)
for
_
,
child
:=
range
fieldValue
.
Children
{
if
child
.
Level
==
0
{
}
}
return
arr
}
func
GetFieldValStr
(
field
model
.
Field
,
val
interface
{})
string
{
str
:=
"n/a"
str
:=
"n/a"
success
:=
false
success
:=
false
val
:=
fieldMap
[
field
.
Name
][
indexOfRow
]
switch
val
.
(
type
)
{
switch
val
.
(
type
)
{
case
int64
:
case
int64
:
if
field
.
Format
!=
""
{
if
field
.
Format
!=
""
{
...
@@ -119,4 +157,5 @@ func GetFieldStr(field model.Field, fieldMap map[string][]interface{}, indexOfRo
...
@@ -119,4 +157,5 @@ func GetFieldStr(field model.Field, fieldMap map[string][]interface{}, indexOfRo
}
}
return
str
return
str
}
}
\ No newline at end of file
src/gen/list.go
浏览文件 @
3973405c
package
gen
package
gen
import
(
import
(
"encoding/json"
"github.com/easysoft/zendata/src/model"
"github.com/easysoft/zendata/src/model"
constant
"github.com/easysoft/zendata/src/utils/const"
constant
"github.com/easysoft/zendata/src/utils/const"
logUtils
"github.com/easysoft/zendata/src/utils/log"
"strconv"
"strconv"
"strings"
"strings"
)
)
...
@@ -13,15 +11,13 @@ func GenerateList(field *model.Field, total int) model.FieldValue {
...
@@ -13,15 +11,13 @@ func GenerateList(field *model.Field, total int) model.FieldValue {
fieldValue
:=
model
.
FieldValue
{}
fieldValue
:=
model
.
FieldValue
{}
GenerateListField
(
field
,
&
fieldValue
,
0
)
GenerateListField
(
field
,
&
fieldValue
,
0
)
bytes
,
_
:=
json
.
Marshal
(
fieldValue
)
logUtils
.
Screen
(
string
(
bytes
))
return
fieldValue
return
fieldValue
}
}
func
GenerateListField
(
field
*
model
.
Field
,
fieldValue
*
model
.
FieldValue
,
level
int
)
{
func
GenerateListField
(
field
*
model
.
Field
,
fieldValue
*
model
.
FieldValue
,
level
int
)
{
fieldValue
.
Name
=
field
.
Name
fieldValue
.
Name
=
field
.
Name
fieldValue
.
Precision
=
field
.
Precision
fieldValue
.
Precision
=
field
.
Precision
fieldValue
.
Level
=
level
if
len
(
field
.
Fields
)
>
0
{
if
len
(
field
.
Fields
)
>
0
{
GenerateFieldChildren
(
field
,
fieldValue
,
level
)
GenerateFieldChildren
(
field
,
fieldValue
,
level
)
...
...
src/model/definition.go
浏览文件 @
3973405c
...
@@ -29,6 +29,7 @@ type FieldValue struct {
...
@@ -29,6 +29,7 @@ type FieldValue struct {
Name
string
Name
string
Type
string
Type
string
Precision
int
Precision
int
Level
int
Values
[]
interface
{}
Values
[]
interface
{}
Children
[]
FieldValue
Children
[]
FieldValue
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录