Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zendata
提交
32631ab8
Z
zendata
项目概览
易企天创
/
zendata
8 个月 前同步成功
通知
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 搜索 >>
提交
32631ab8
编写于
9月 17, 2020
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
close task#7908
上级
22576c94
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
31 addition
and
18 deletion
+31
-18
demo/test/test_recursice.yaml
demo/test/test_recursice.yaml
+1
-0
src/action/generator.go
src/action/generator.go
+1
-1
src/gen/generator.go
src/gen/generator.go
+15
-9
src/gen/list.go
src/gen/list.go
+2
-2
src/model/definition.go
src/model/definition.go
+6
-6
src/utils/const/const.go
src/utils/const/const.go
+6
-0
未找到文件。
demo/test/test_recursice.yaml
浏览文件 @
32631ab8
...
...
@@ -9,6 +9,7 @@ fields:
postfix
:
"
\t
"
-
field
:
field_recursive_test
mode
:
recursive
fields
:
-
field
:
recursive.1
range
:
A-C
...
...
src/action/generator.go
浏览文件 @
32631ab8
...
...
@@ -23,7 +23,7 @@ func Generate(defaultFile string, configFile string, fieldsToExportStr, format,
fieldsToExport
=
strings
.
Split
(
fieldsToExportStr
,
","
)
}
rows
,
colIsNumArr
,
err
:=
gen
.
GenerateFor
Definition
(
defaultFile
,
configFile
,
&
fieldsToExport
)
rows
,
colIsNumArr
,
err
:=
gen
.
GenerateFor
OnTop
(
defaultFile
,
configFile
,
&
fieldsToExport
)
if
err
!=
nil
{
return
}
...
...
src/gen/generator.go
浏览文件 @
32631ab8
...
...
@@ -16,7 +16,7 @@ import (
"strings"
)
func
GenerateFor
Definition
(
defaultFile
,
configFile
string
,
fieldsToExport
*
[]
string
,
func
GenerateFor
OnTop
(
defaultFile
,
configFile
string
,
fieldsToExport
*
[]
string
,
)
(
rows
[][]
string
,
colIsNumArr
[]
bool
,
err
error
)
{
vari
.
DefaultDir
=
fileUtils
.
GetAbsDir
(
defaultFile
)
...
...
@@ -67,7 +67,7 @@ func GenerateForDefinition(defaultFile, configFile string, fieldsToExport *[]str
childValues
:=
topFieldNameToValuesMap
[
child
.
Field
]
arrOfArr
=
append
(
arrOfArr
,
childValues
)
}
rows
=
putChildrenToArr
(
arrOfArr
)
rows
=
putChildrenToArr
(
arrOfArr
,
vari
.
Recursive
)
return
}
...
...
@@ -90,7 +90,13 @@ func GenerateForField(field *model.DefField, withFix bool) (values []string) {
if
count
>
vari
.
Total
{
count
=
vari
.
Total
}
values
=
combineChildrenValues
(
arrOfArr
,
count
)
recursive
:=
vari
.
Recursive
if
stringUtils
.
InArray
(
field
.
Mode
,
constant
.
Modes
)
{
// set on field level
recursive
=
field
.
Mode
==
constant
.
ModeRecursive
||
field
.
Mode
==
constant
.
ModeRecursiveShort
}
values
=
combineChildrenValues
(
arrOfArr
,
recursive
)
values
=
loopFieldValues
(
field
,
values
,
count
,
true
)
}
else
if
len
(
field
.
Froms
)
>
0
{
// from muti items
...
...
@@ -198,7 +204,7 @@ func GenerateFieldValuesForDef(field *model.DefField) []string {
values
=
append
(
values
,
val
)
count
++
isRandomAndLoopEnd
:=
!
(
*
field
)
.
IsRef
erYaml
&&
(
*
field
)
.
IsRand
&&
(
*
field
)
.
LoopIndex
==
(
*
field
)
.
LoopEnd
isRandomAndLoopEnd
:=
!
(
*
field
)
.
ReferToAnoth
erYaml
&&
(
*
field
)
.
IsRand
&&
(
*
field
)
.
LoopIndex
==
(
*
field
)
.
LoopEnd
// isNotRandomAndValOver := !(*field).IsRand && indexOfRow >= len(fieldWithValues.Values)
if
count
>=
vari
.
Total
||
count
>=
len
(
fieldWithValues
.
Values
)
||
isRandomAndLoopEnd
{
break
...
...
@@ -353,9 +359,9 @@ func computerLoop(field *model.DefField) {
(
*
field
)
.
LoopIndex
=
(
*
field
)
.
LoopStart
}
func
putChildrenToArr
(
arrOfArr
[][]
string
)
(
values
[][]
string
)
{
func
putChildrenToArr
(
arrOfArr
[][]
string
,
recursive
bool
)
(
values
[][]
string
)
{
indexArr
:=
make
([]
int
,
0
)
if
vari
.
R
ecursive
{
if
r
ecursive
{
indexArr
=
getModArr
(
arrOfArr
)
}
...
...
@@ -365,7 +371,7 @@ func putChildrenToArr(arrOfArr [][]string) (values [][]string) {
child
:=
arrOfArr
[
j
]
var
index
int
if
vari
.
R
ecursive
{
if
r
ecursive
{
mod
:=
indexArr
[
j
]
index
=
i
/
mod
%
len
(
child
)
}
else
{
...
...
@@ -410,8 +416,8 @@ func randomValues(values []string) (ret []string) {
return
}
func
combineChildrenValues
(
arrOfArr
[][]
string
,
total
int
)
(
ret
[]
string
)
{
valueArr
:=
putChildrenToArr
(
arrOfArr
)
func
combineChildrenValues
(
arrOfArr
[][]
string
,
recursive
bool
)
(
ret
[]
string
)
{
valueArr
:=
putChildrenToArr
(
arrOfArr
,
recursive
)
for
_
,
arr
:=
range
valueArr
{
ret
=
append
(
ret
,
strings
.
Join
(
arr
,
""
))
...
...
src/gen/list.go
浏览文件 @
32631ab8
...
...
@@ -58,7 +58,7 @@ func CreateFieldValuesFromList(field *model.DefField, fieldValue *model.FieldWit
items
=
CreateValuesFromInterval
(
field
,
desc
,
stepStr
,
repeat
)
}
else
if
typ
==
"yaml"
{
items
=
CreateValuesFromYaml
(
field
,
desc
,
stepStr
,
repeat
)
field
.
IsRef
erYaml
=
true
field
.
ReferToAnoth
erYaml
=
true
}
fieldValue
.
Values
=
append
(
fieldValue
.
Values
,
items
...
)
...
...
@@ -248,7 +248,7 @@ func CreateValuesFromYaml(field *model.DefField, yamlFile, stepStr string, repea
configFile
:=
vari
.
ConfigDir
+
yamlFile
fieldsToExport
:=
make
([]
string
,
0
)
// set to empty to use all fields
rows
,
colIsNumArr
,
_
:=
GenerateFor
Definition
(
""
,
configFile
,
&
fieldsToExport
)
rows
,
colIsNumArr
,
_
:=
GenerateFor
OnTop
(
""
,
configFile
,
&
fieldsToExport
)
if
field
.
Rand
{
rows
=
randomValuesArr
(
rows
)
}
...
...
src/model/definition.go
浏览文件 @
32631ab8
...
...
@@ -79,13 +79,13 @@ type FieldSimple struct {
Format
string
`yaml:"format"`
Rand
bool
`yaml:"rand"`
Type
string
`yaml:"type"`
Refer
string
`yaml:"refer
"`
Mode
string
`yaml:"mode
"`
LoopStart
int
`yaml:"-"`
LoopEnd
int
`yaml:"-"`
LoopIndex
int
`yaml:"-"`
IsRand
bool
`yaml:"-"`
IsReferYaml
bool
`yaml:"-"`
LoopStart
int
`yaml:"-"`
LoopEnd
int
`yaml:"-"`
LoopIndex
int
`yaml:"-"`
IsRand
bool
`yaml:"-"`
ReferToAnotherYaml
bool
`yaml:"-"`
}
type
FieldWithValues
struct
{
...
...
src/utils/const/const.go
浏览文件 @
32631ab8
...
...
@@ -38,6 +38,12 @@ var (
FormatData
=
"data"
Formats
=
[]
string
{
FormatText
,
FormatJson
,
FormatXml
,
FormatSql
}
ModeParallel
=
"parallel"
ModeRecursive
=
"recursive"
ModeParallelShort
=
"p"
ModeRecursiveShort
=
"r"
Modes
=
[]
string
{
ModeParallel
,
ModeRecursive
,
ModeParallelShort
,
ModeRecursiveShort
}
ConfigTypeText
=
"text"
ConfigTypeArticle
=
"article"
ConfigTypeImage
=
"image"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录