Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
779b8978
Commit
779b8978
authored
Dec 11, 2019
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
60477a04
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
624 additions
and
64 deletions
+624
-64
BaseEntity.java
...n-core/src/main/java/cn/datax/common/base/BaseEntity.java
+0
-1
BaseQueryParams.java
...e/src/main/java/cn/datax/common/base/BaseQueryParams.java
+0
-2
LogController.java
...ava/cn/datax/service/system/controller/LogController.java
+0
-1
PostController.java
...va/cn/datax/service/system/controller/PostController.java
+0
-1
RoleController.java
...va/cn/datax/service/system/controller/RoleController.java
+0
-2
TestController.java
...va/cn/datax/service/system/controller/TestController.java
+0
-4
UserController.java
...va/cn/datax/service/system/controller/UserController.java
+0
-4
Generate.java
...n/src/main/java/cn/datax/tool/codegen/utils/Generate.java
+76
-15
controller.java.vm
...l-codegen/src/main/resources/templates/controller.java.vm
+102
-17
controller.java.vm.bak
...degen/src/main/resources/templates/controller.java.vm.bak
+42
-0
dto.java.vm
...tax-tool-codegen/src/main/resources/templates/dto.java.vm
+35
-0
entity.java.vm
...-tool-codegen/src/main/resources/templates/entity.java.vm
+1
-1
entity.java.vm.bak
...l-codegen/src/main/resources/templates/entity.java.vm.bak
+153
-0
mapper.java.vm
...-tool-codegen/src/main/resources/templates/mapper.java.vm
+3
-5
mapper.java.vm.bak
...l-codegen/src/main/resources/templates/mapper.java.vm.bak
+20
-0
mapper.xml.vm
...x-tool-codegen/src/main/resources/templates/mapper.xml.vm
+1
-1
mapper.xml.vm.bak
...ol-codegen/src/main/resources/templates/mapper.xml.vm.bak
+39
-0
mapstruct.java.vm
...ol-codegen/src/main/resources/templates/mapstruct.java.vm
+20
-0
query.java.vm
...x-tool-codegen/src/main/resources/templates/query.java.vm
+20
-0
service.java.vm
...tool-codegen/src/main/resources/templates/service.java.vm
+6
-4
service.java.vm.bak
...-codegen/src/main/resources/templates/service.java.vm.bak
+20
-0
serviceImpl.java.vm
...-codegen/src/main/resources/templates/serviceImpl.java.vm
+30
-6
serviceImpl.java.vm.bak
...egen/src/main/resources/templates/serviceImpl.java.vm.bak
+26
-0
vo.java.vm
...atax-tool-codegen/src/main/resources/templates/vo.java.vm
+30
-0
No files found.
datax-common/datax-common-core/src/main/java/cn/datax/common/base/BaseEntity.java
View file @
779b8978
...
...
@@ -2,7 +2,6 @@ package cn.datax.common.base;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Data
;
import
java.io.Serializable
;
...
...
datax-common/datax-common-core/src/main/java/cn/datax/common/base/BaseQueryParams.java
View file @
779b8978
...
...
@@ -14,8 +14,6 @@ public class BaseQueryParams implements Serializable {
private
Integer
pageNum
=
1
;
// 分页条数
private
Integer
pageSize
=
20
;
// 显示字段
private
List
<
String
>
columnList
;
// 排序
private
List
<
OrderItem
>
orderList
;
// 数据权限
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/LogController.java
View file @
779b8978
...
...
@@ -8,7 +8,6 @@ import cn.datax.service.system.service.LogService;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/PostController.java
View file @
779b8978
...
...
@@ -10,7 +10,6 @@ import cn.datax.service.system.service.PostService;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/RoleController.java
View file @
779b8978
...
...
@@ -8,10 +8,8 @@ import cn.datax.service.system.api.entity.RoleEntity;
import
cn.datax.service.system.mapstruct.RoleMapper
;
import
cn.datax.service.system.service.RoleService
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/TestController.java
View file @
779b8978
...
...
@@ -7,7 +7,6 @@ import cn.datax.service.system.api.entity.UserEntity;
import
cn.datax.service.system.api.query.UserQuery
;
import
cn.datax.service.system.service.UserService
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -27,9 +26,6 @@ public class TestController extends BaseController {
@GetMapping
(
"/users/pageDataScope"
)
public
R
getUserPageDataScope
(
UserQuery
userQuery
)
{
QueryWrapper
<
UserEntity
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
CollUtil
.
isNotEmpty
(
userQuery
.
getColumnList
())){
queryWrapper
.
select
(
ArrayUtil
.
toArray
(
userQuery
.
getColumnList
(),
String
.
class
));
}
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
userQuery
.
getUsername
()),
"username"
,
userQuery
.
getUsername
());
queryWrapper
.
apply
(
StrUtil
.
isNotBlank
(
userQuery
.
getDeptId
()),
"(select dept_id from sys_user_dept where user_id = id) = {0}"
,
userQuery
.
getDeptId
());
if
(
CollUtil
.
isNotEmpty
(
userQuery
.
getOrderList
())){
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/UserController.java
View file @
779b8978
...
...
@@ -11,7 +11,6 @@ import cn.datax.service.system.api.query.UserQuery;
import
cn.datax.service.system.mapstruct.UserMapper
;
import
cn.datax.service.system.service.UserService
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -65,9 +64,6 @@ public class UserController extends BaseController {
@GetMapping
(
"/page"
)
public
R
getUserPage
(
UserQuery
userQuery
)
{
QueryWrapper
<
UserEntity
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
CollUtil
.
isNotEmpty
(
userQuery
.
getColumnList
())){
queryWrapper
.
select
(
ArrayUtil
.
toArray
(
userQuery
.
getColumnList
(),
String
.
class
));
}
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
userQuery
.
getUsername
()),
"username"
,
userQuery
.
getUsername
());
queryWrapper
.
apply
(
StrUtil
.
isNotBlank
(
userQuery
.
getDeptId
()),
"(select dept_id from sys_user_dept where user_id = id) = {0}"
,
userQuery
.
getDeptId
());
if
(
CollUtil
.
isNotEmpty
(
userQuery
.
getOrderList
())){
...
...
datax-tools/datax-tool-codegen/src/main/java/cn/datax/tool/codegen/utils/Generate.java
View file @
779b8978
...
...
@@ -9,10 +9,8 @@ import com.baomidou.mybatisplus.generator.config.*;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.io.File
;
import
java.util.*
;
public
class
Generate
{
...
...
@@ -48,8 +46,8 @@ public class Generate {
// 数据源配置
DataSourceConfig
dsc
=
new
DataSourceConfig
();
dsc
.
setUrl
(
"jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&
useSSL=false&characterEncoding=utf
8"
);
dsc
.
setDriverName
(
"com.mysql.jdbc.Driver"
);
dsc
.
setUrl
(
"jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&
characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B
8"
);
dsc
.
setDriverName
(
"com.mysql.
cj.
jdbc.Driver"
);
dsc
.
setUsername
(
"root"
);
dsc
.
setPassword
(
"1234@abcd"
);
mpg
.
setDataSource
(
dsc
);
...
...
@@ -66,6 +64,9 @@ public class Generate {
InjectionConfig
cfg
=
new
InjectionConfig
()
{
@Override
public
void
initMap
()
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"PackageParent"
,
"cn.datax.service"
);
this
.
setMap
(
map
);
}
};
...
...
@@ -77,7 +78,37 @@ public class Generate {
public
String
outputFile
(
TableInfo
tableInfo
)
{
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return
projectPath
+
"/src/main/resources/mapper/"
+
pc
.
getModuleName
()
+
"/"
+
tableInfo
.
getEntityName
()
+
"Mapper"
+
StringPool
.
DOT_XML
;
+
"/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Mapper"
)
+
StringPool
.
DOT_XML
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/entity.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
projectPath
+
"/src/main/java/"
+
"cn.datax.service"
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
pc
.
getModuleName
()
+
"/api/entity/"
+
tableInfo
.
getEntityName
()
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/mapstruct.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
projectPath
+
"/src/main/java/"
+
"cn.datax.service"
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
pc
.
getModuleName
()
+
"/mapstruct/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Mapper"
)
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/dto.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
projectPath
+
"/src/main/java/"
+
"cn.datax.service"
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
pc
.
getModuleName
()
+
"/api/dto/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Dto"
)
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/vo.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
projectPath
+
"/src/main/java/"
+
"cn.datax.service"
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
pc
.
getModuleName
()
+
"/api/vo/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Vo"
)
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/query.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
projectPath
+
"/src/main/java/"
+
"cn.datax.service"
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
pc
.
getModuleName
()
+
"/api/query/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Query"
)
+
StringPool
.
DOT_JAVA
;
}
});
/*
...
...
@@ -98,7 +129,7 @@ public class Generate {
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
templateConfig
.
setEntity
(
"templates/entity.java"
);
templateConfig
.
setEntity
(
null
);
templateConfig
.
setController
(
"templates/controller.java"
);
templateConfig
.
setService
(
"templates/service.java"
);
templateConfig
.
setServiceImpl
(
"templates/serviceImpl.java"
);
...
...
@@ -147,7 +178,7 @@ public class Generate {
// 策略配置
StrategyConfig
strategyConfig
=
getStrategyConfig
(
tableNames
);
//自定义配置
InjectionConfig
injectionConfig
=
getInjectionConfig
();
InjectionConfig
injectionConfig
=
getInjectionConfig
(
moduleName
,
parentName
);
//配置模板
TemplateConfig
templateConfig
=
getTemplateConfig
();
//自动生成
...
...
@@ -182,12 +213,12 @@ public class Generate {
*
* @return templateConfig
*/
private
InjectionConfig
getInjectionConfig
()
{
private
InjectionConfig
getInjectionConfig
(
String
moduleName
,
String
parentName
)
{
InjectionConfig
cfg
=
new
InjectionConfig
()
{
@Override
public
void
initMap
()
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"
abc"
,
this
.
getConfig
().
getGlobalConfig
().
getAuthor
()
+
"-mp"
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"
PackageParent"
,
parentName
);
this
.
setMap
(
map
);
}
};
...
...
@@ -195,7 +226,37 @@ public class Generate {
focList
.
add
(
new
FileOutConfig
(
"/templates/mapper.xml.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
System
.
getProperty
(
"user.home"
)
+
"/src/main/resources/mapper/"
+
tableInfo
.
getEntityName
()
+
"Mapper"
+
StringPool
.
DOT_XML
;
return
System
.
getProperty
(
"user.dir"
)
+
"/src/main/resources/mapper/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Mapper"
)
+
StringPool
.
DOT_XML
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/entity.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
System
.
getProperty
(
"user.dir"
)
+
"/src/main/java/"
+
parentName
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
moduleName
+
"/api/entity/"
+
tableInfo
.
getEntityName
()
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/mapstruct.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
System
.
getProperty
(
"user.dir"
)
+
"/src/main/java/"
+
parentName
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
moduleName
+
"/mapstruct/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Mapper"
)
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/dto.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
System
.
getProperty
(
"user.dir"
)
+
"/src/main/java/"
+
parentName
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
moduleName
+
"/api/dto/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Dto"
)
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/vo.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
System
.
getProperty
(
"user.dir"
)
+
"/src/main/java/"
+
parentName
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
moduleName
+
"/api/vo/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Vo"
)
+
StringPool
.
DOT_JAVA
;
}
});
focList
.
add
(
new
FileOutConfig
(
"/templates/query.java.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
System
.
getProperty
(
"user.dir"
)
+
"/src/main/java/"
+
parentName
.
replace
(
"."
,
File
.
separator
)
+
File
.
separator
+
moduleName
+
"/api/query/"
+
tableInfo
.
getEntityName
().
replace
(
"Entity"
,
"Query"
)
+
StringPool
.
DOT_JAVA
;
}
});
cfg
.
setFileOutConfigList
(
focList
);
...
...
@@ -209,7 +270,7 @@ public class Generate {
*/
private
TemplateConfig
getTemplateConfig
()
{
return
new
TemplateConfig
()
.
setEntity
(
"templates/entity.java"
)
.
setEntity
(
null
)
.
setController
(
"templates/controller.java"
)
.
setService
(
"templates/service.java"
)
.
setServiceImpl
(
"templates/serviceImpl.java"
)
...
...
@@ -259,7 +320,7 @@ public class Generate {
//指定生成的主键的ID类型
.
setIdType
(
IdType
.
ID_WORKER_STR
)
//设置输出路径
.
setOutputDir
(
System
.
getProperty
(
"user.
home
"
)
+
"/src/main/java/"
)
.
setOutputDir
(
System
.
getProperty
(
"user.
dir
"
)
+
"/src/main/java/"
)
.
setEntityName
(
"%sEntity"
)
.
setMapperName
(
"%sDao"
)
.
setXmlName
(
"%sMapper"
)
...
...
datax-tools/datax-tool-codegen/src/main/resources/templates/controller.java.vm
View file @
779b8978
package
${
package
.
Controller
};
import
cn
.
datax
.
common
.
core
.
R
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForSave
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForUpdate
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
.${
className
}
Dto
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
entity
.${
entity
};
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
query
.${
className
}
Query
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
mapstruct
.${
className
}
Mapper
;
import
${
package
.
Service
}.${
table
.
serviceName
};
import
cn
.
hutool
.
core
.
util
.
StrUtil
;
import
com
.
baomidou
.
mybatisplus
.
core
.
conditions
.
query
.
QueryWrapper
;
import
com
.
baomidou
.
mybatisplus
.
core
.
metadata
.
IPage
;
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
pagination
.
Page
;
import
io
.
swagger
.
annotations
.
Api
;
import
io
.
swagger
.
annotations
.
ApiImplicitParam
;
import
io
.
swagger
.
annotations
.
ApiImplicitParams
;
import
io
.
swagger
.
annotations
.
ApiOperation
;
import
org
.
springframework
.
beans
.
factory
.
annotation
.
Autowired
;
import
org
.
springframework
.
validation
.
annotation
.
Validated
;
import
org
.
springframework
.
web
.
bind
.
annotation
.*;
import
org
.
springframework
.
web
.
bind
.
annotation
.
RequestMapping
;
#
if
(${
restControllerStyle
})
import
org
.
springframework
.
web
.
bind
.
annotation
.
RestController
;
#
else
import
org
.
springframework
.
stereotype
.
Controller
;
#
end
#
if
(${
superControllerClassPackage
})
import
${
superControllerClassPackage
};
#
end
...
...
@@ -20,22 +33,95 @@ import ${superControllerClassPackage};
*
@
author
${
author
}
*
@
since
${
date
}
*/
#
if
(${
restControllerStyle
})
@
RestController
#
if
(${
table
.
comment
})
@
Api
(
tags
=
{
"${table.comment}"
})
#
else
@
Controller
@
Api
(
tags
=
{
"${className}"
})
#
end
@
RequestMapping
(
"#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end"
)
#
if
(${
kotlin
})
class
${
table
.
controllerName
}#
if
(${
superControllerClass
})
:
${
superControllerClass
}()#
end
#
else
@
RestController
@
RequestMapping
(
"#if(${package.ModuleName})/${package.ModuleName}#end/${classNameLower}"
)
#
if
(${
superControllerClass
})
public
class
${
table
.
controllerName
}
extends
${
superControllerClass
}
{
#
else
public
class
${
table
.
controllerName
}
{
#
end
}
@
Autowired
private
${
table
.
serviceName
}
${
classNameLower
}
Service
;
#
end
\ No newline at end of file
@
Autowired
private
${
className
}
Mapper
${
classNameLower
}
Mapper
;
/**
*
通过
ID
查询信息
*
*
@
param
id
*
@
return
*/
@
ApiOperation
(
value
=
"获取详细信息"
,
notes
=
"根据url的id来获取详细信息"
)
@
ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@
GetMapping
(
"/{id}"
)
public
R
get
${
className
}
ById
(@
PathVariable
String
id
)
{
${
entity
}
${
classNameLower
}
Entity
=
${
classNameLower
}
Service
.
getById
(
id
);
return
R
.
ok
().
setData
(${
classNameLower
}
Mapper
.
toVO
(${
classNameLower
}
Entity
));
}
/**
*
分页查询信息
*
*
@
param
${
classNameLower
}
Query
*
@
return
*/
@
ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@
ApiImplicitParams
({
@
ApiImplicitParam
(
name
=
"${classNameLower}Query"
,
value
=
"查询实体${classNameLower}Query"
,
required
=
true
,
dataTypeClass
=
${
className
}
Query
.
class
)
})
@
GetMapping
(
"/page"
)
public
R
getRolePage
(${
className
}
Query
${
classNameLower
}
Query
)
{
QueryWrapper
<${
entity
}>
queryWrapper
=
new
QueryWrapper
<>();
IPage
<${
entity
}>
page
=
${
classNameLower
}
Service
.
page
(
new
Page
<>(${
classNameLower
}
Query
.
getPageNum
(),
${
classNameLower
}
Query
.
getPageSize
()),
queryWrapper
);
return
R
.
ok
().
setData
(
page
);
}
/**
*
添加
*
@
param
${
classNameLower
}
*
@
return
*/
@
ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据${classNameLower}对象添加信息"
)
@
ApiImplicitParam
(
name
=
"${classNameLower}"
,
value
=
"详细实体${classNameLower}"
,
required
=
true
,
dataType
=
"${className}Dto"
)
@
PostMapping
()
public
R
save
${
className
}(@
RequestBody
@
Validated
({
ValidateGroupForSave
.
class
})
${
className
}
Dto
${
classNameLower
})
{
${
classNameLower
}
Service
.
save
${
className
}(${
classNameLower
});
return
R
.
ok
();
}
/**
*
修改
*
@
param
${
classNameLower
}
*
@
return
*/
@
ApiOperation
(
value
=
"修改信息"
,
notes
=
"根据url的id来指定修改对象,并根据传过来的信息来修改详细信息"
)
@
ApiImplicitParams
({
@
ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
),
@
ApiImplicitParam
(
name
=
"${classNameLower}"
,
value
=
"详细实体${classNameLower}"
,
required
=
true
,
dataType
=
"${className}Dto"
)
})
@
PutMapping
(
"/{id}"
)
public
R
update
${
className
}(@
PathVariable
String
id
,
@
RequestBody
@
Validated
({
ValidateGroupForUpdate
.
class
})
${
className
}
Dto
${
classNameLower
})
{
${
classNameLower
}
Service
.
update
${
className
}(${
classNameLower
});
return
R
.
ok
();
}
/**
*
删除
*
@
param
id
*
@
return
*/
@
ApiOperation
(
value
=
"删除"
,
notes
=
"根据url的id来指定删除对象"
)
@
ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@
DeleteMapping
(
"/{id}"
)
public
R
delete
${
className
}
ById
(@
PathVariable
String
id
)
{
${
classNameLower
}
Service
.
delete
${
className
}
ById
(
id
);
return
R
.
ok
();
}
}
datax-tools/datax-tool-codegen/src/main/resources/templates/controller.java.vm.bak
0 → 100644
View file @
779b8978
package
${
package
.
Controller
};
import
org
.
springframework
.
web
.
bind
.
annotation
.
RequestMapping
;
#
if
(${
restControllerStyle
})
import
org
.
springframework
.
web
.
bind
.
annotation
.
RestController
;
#
else
import
org
.
springframework
.
stereotype
.
Controller
;
#
end
#
if
(${
superControllerClassPackage
})
import
${
superControllerClassPackage
};
#
end
/**
*
<
p
>
*
$
!{table.comment} 前端控制器
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
#
if
(${
restControllerStyle
})
@
RestController
#
else
@
Controller
#
end
@
RequestMapping
(
"#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end"
)
#
if
(${
kotlin
})
class
${
table
.
controllerName
}#
if
(${
superControllerClass
})
:
${
superControllerClass
}()#
end
#
else
#
if
(${
superControllerClass
})
public
class
${
table
.
controllerName
}
extends
${
superControllerClass
}
{
#
else
public
class
${
table
.
controllerName
}
{
#
end
}
#
end
\ No newline at end of file
datax-tools/datax-tool-codegen/src/main/resources/templates/dto.java.vm
0 → 100644
View file @
779b8978
package
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForSave
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForUpdate
;
import
io
.
swagger
.
annotations
.
ApiModel
;
import
io
.
swagger
.
annotations
.
ApiModelProperty
;
import
lombok
.
Data
;
import
javax
.
validation
.
constraints
.
NotBlank
;
import
java
.
io
.
Serializable
;
/**
*
<
p
>
*
$
!{table.comment} 实体DTO
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
@
ApiModel
(
value
=
"$!{table.comment}Model"
)
@
Data
public
class
${
className
}
Dto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@
ApiModelProperty
(
value
=
"主键ID"
)
@
NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
ValidateGroupForUpdate
.
class
})
private
String
id
;
##
----------
BEGIN
字段循环遍历
----------
#
foreach
($
field
in
${
table
.
fields
})
@
ApiModelProperty
(
value
=
"${field.comment}"
)
private
${
field
.
propertyType
}
${
field
.
propertyName
};
#
end
##
----------
END
字段循环遍历
----------
}
datax-tools/datax-tool-codegen/src/main/resources/templates/entity.java.vm
View file @
779b8978
package
${
package
.
Entity
}
;
package
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
entity
;
#
foreach
($
pkg
in
${
table
.
importPackages
})
import
${
pkg
};
...
...
datax-tools/datax-tool-codegen/src/main/resources/templates/entity.java.vm.bak
0 → 100644
View file @
779b8978
package
${
package
.
Entity
};
#
foreach
($
pkg
in
${
table
.
importPackages
})
import
${
pkg
};
#
end
#
if
(${
swagger2
})
import
io
.
swagger
.
annotations
.
ApiModel
;
import
io
.
swagger
.
annotations
.
ApiModelProperty
;
#
end
#
if
(${
entityLombokModel
})
import
lombok
.
Data
;
import
lombok
.
EqualsAndHashCode
;
import
lombok
.
experimental
.
Accessors
;
#
end
/**
*
<
p
>
*
$
!{table.comment}
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
#
if
(${
entityLombokModel
})
@
Data
#
if
(${
superEntityClass
})
@
EqualsAndHashCode
(
callSuper
=
true
)
#
else
@
EqualsAndHashCode
(
callSuper
=
false
)
#
end
@
Accessors
(
chain
=
true
)
#
end
#
if
(${
table
.
convert
})
@
TableName
(
"${table.name}"
)
#
end
#
if
(${
swagger2
})
@
ApiModel
(
value
=
"${entity}对象"
,
description
=
"$!{table.comment}"
)
#
end
#
if
(${
superEntityClass
})
public
class
${
entity
}
extends
${
superEntityClass
}#
if
(${
activeRecord
})<${
entity
}>#
end
{
#
elseif
(${
activeRecord
})
public
class
${
entity
}
extends
Model
<${
entity
}>
{
#
else
public
class
${
entity
}
implements
Serializable
{
#
end
#
if
(${
entitySerialVersionUID
})
private
static
final
long
serialVersionUID
=
1L
;
#
end
##
----------
BEGIN
字段循环遍历
----------
#
foreach
($
field
in
${
table
.
fields
})
#
if
(${
field
.
keyFlag
})
#
set
($
keyPropertyName
=${
field
.
propertyName
})
#
end
#
if
(
"$!field.comment"
!= "")
#
if
(${
swagger2
})
@
ApiModelProperty
(
value
=
"${field.comment}"
)
#
else
/**
*
${
field
.
comment
}
*/
#
end
#
end
#
if
(${
field
.
keyFlag
})
##
主键
#
if
(${
field
.
keyIdentityFlag
})
@
TableId
(
value
=
"${field.name}"
,
type
=
IdType
.
AUTO
)
#
elseif
(
!$null.isNull(${idType}) && "$!idType" != "")
@
TableId
(
value
=
"${field.name}"
,
type
=
IdType
.${
idType
})
#
elseif
(${
field
.
convert
})
@
TableId
(
"${field.name}"
)
#
end
##
普通字段
#
elseif
(${
field
.
fill
})
##
-----
存在字段填充设置
-----
#
if
(${
field
.
convert
})
@
TableField
(
value
=
"${field.name}"
,
fill
=
FieldFill
.${
field
.
fill
})
#
else
@
TableField
(
fill
=
FieldFill
.${
field
.
fill
})
#
end
#
elseif
(${
field
.
convert
})
@
TableField
(
"${field.name}"
)
#
end
##
乐观锁注解
#
if
(${
versionFieldName
}==${
field
.
name
})
@
Version
#
end
##
逻辑删除注解
#
if
(${
logicDeleteFieldName
}==${
field
.
name
})
@
TableLogic
#
end
private
${
field
.
propertyType
}
${
field
.
propertyName
};
#
end
##
----------
END
字段循环遍历
----------
#
if
(
!${entityLombokModel})
#
foreach
($
field
in
${
table
.
fields
})
#
if
(${
field
.
propertyType
.
equals
(
"boolean"
)})
#
set
($
getprefix
=
"is"
)
#
else
#
set
($
getprefix
=
"get"
)
#
end
public
${
field
.
propertyType
}
${
getprefix
}${
field
.
capitalName
}()
{
return
${
field
.
propertyName
};
}
#
if
(${
entityBuilderModel
})
public
${
entity
}
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
#
else
public
void
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
#
end
this
.${
field
.
propertyName
}
=
${
field
.
propertyName
};
#
if
(${
entityBuilderModel
})
return
this
;
#
end
}
#
end
#
end
#
if
(${
entityColumnConstant
})
#
foreach
($
field
in
${
table
.
fields
})
public
static
final
String
${
field
.
name
.
toUpperCase
()}
=
"${field.name}"
;
#
end
#
end
#
if
(${
activeRecord
})
@
Override
protected
Serializable
pkVal
()
{
#
if
(${
keyPropertyName
})
return
this
.${
keyPropertyName
};
#
else
return
null
;
#
end
}
#
end
#
if
(
!${entityLombokModel})
@
Override
public
String
toString
()
{
return
"${entity}{"
+
#
foreach
($
field
in
${
table
.
fields
})
#
if
($
!{foreach.index}==0)
"${field.propertyName}="
+
${
field
.
propertyName
}
+
#
else
", ${field.propertyName}="
+
${
field
.
propertyName
}
+
#
end
#
end
"}"
;
}
#
end
}
datax-tools/datax-tool-codegen/src/main/resources/templates/mapper.java.vm
View file @
779b8978
package
${
package
.
Mapper
};
import
${
package
.
Entity
}.${
entity
};
import
${
superMapperClassPackage
};
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
entity
.${
entity
};
import
org
.
apache
.
ibatis
.
annotations
.
Mapper
;
/**
*
<
p
>
...
...
@@ -11,10 +12,7 @@ import ${superMapperClassPackage};
*
@
author
${
author
}
*
@
since
${
date
}
*/
#
if
(${
kotlin
})
interface
${
table
.
mapperName
}
:
${
superMapperClass
}<${
entity
}>
#
else
@
Mapper
public
interface
${
table
.
mapperName
}
extends
${
superMapperClass
}<${
entity
}>
{
}
#
end
datax-tools/datax-tool-codegen/src/main/resources/templates/mapper.java.vm.bak
0 → 100644
View file @
779b8978
package
${
package
.
Mapper
};
import
${
package
.
Entity
}.${
entity
};
import
${
superMapperClassPackage
};
/**
*
<
p
>
*
$
!{table.comment} Mapper 接口
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
#
if
(${
kotlin
})
interface
${
table
.
mapperName
}
:
${
superMapperClass
}<${
entity
}>
#
else
public
interface
${
table
.
mapperName
}
extends
${
superMapperClass
}<${
entity
}>
{
}
#
end
datax-tools/datax-tool-codegen/src/main/resources/templates/mapper.xml.vm
View file @
779b8978
...
...
@@ -9,7 +9,7 @@
#end
#if(${baseResultMap})
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"${
package.Entity}
.${entity}"
>
<resultMap
id=
"BaseResultMap"
type=
"${
cfg.PackageParent}#if(${package.ModuleName}).${package.ModuleName}#end.api.entity
.${entity}"
>
#foreach($field in ${table.fields})
#if(${field.keyFlag})##生成主键排在第一位
<id
column=
"${field.name}"
property=
"${field.propertyName}"
/>
...
...
datax-tools/datax-tool-codegen/src/main/resources/templates/mapper.xml.vm.bak
0 → 100644
View file @
779b8978
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"${package.Mapper}.${table.mapperName}"
>
#if(${enableCache})
<!-- 开启二级缓存 -->
<cache
type=
"org.mybatis.caches.ehcache.LoggingEhcache"
/>
#end
#if(${baseResultMap})
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"${package.Entity}.${entity}"
>
#foreach($field in ${table.fields})
#if(${field.keyFlag})##生成主键排在第一位
<id
column=
"${field.name}"
property=
"${field.propertyName}"
/>
#end
#end
#foreach($field in ${table.commonFields})##生成公共字段
<result
column=
"${field.name}"
property=
"${field.propertyName}"
/>
#end
#foreach($field in ${table.fields})
#if(!${field.keyFlag})##生成普通字段
<result
column=
"${field.name}"
property=
"${field.propertyName}"
/>
#end
#end
</resultMap>
#end
#if(${baseColumnList})
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
#foreach($field in ${table.commonFields})
${field.name},
#end
${table.fieldNames}
</sql>
#end
</mapper>
datax-tools/datax-tool-codegen/src/main/resources/templates/mapstruct.java.vm
0 → 100644
View file @
779b8978
package
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
mapstruct
;
import
cn
.
datax
.
common
.
mapstruct
.
EntityMapper
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
.${
className
}
Dto
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
entity
.${
entity
};
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
vo
.${
className
}
Vo
;
import
org
.
mapstruct
.
Mapper
;
/**
*
<
p
>
*
$
!{table.comment} Mapper 实体映射
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
@
Mapper
(
componentModel
=
"spring"
)
public
interface
${
table
.
mapperName
}
extends
EntityMapper
<${
className
}
Dto
,
${
entity
},
${
className
}
Vo
>
{
}
datax-tools/datax-tool-codegen/src/main/resources/templates/query.java.vm
0 → 100644
View file @
779b8978
package
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
query
;
import
cn
.
datax
.
common
.
base
.
BaseQueryParams
;
import
lombok
.
Data
;
import
lombok
.
EqualsAndHashCode
;
/**
*
<
p
>
*
$
!{table.comment} 查询实体
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
@
Data
@
EqualsAndHashCode
(
callSuper
=
true
)
public
class
${
className
}
Query
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
}
datax-tools/datax-tool-codegen/src/main/resources/templates/service.java.vm
View file @
779b8978
package
${
package
.
Service
};
import
${
package
.
Entity
}.${
entity
};
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
.${
className
}
Dto
;
import
${
superServiceClassPackage
};
/**
...
...
@@ -11,10 +12,11 @@ import ${superServiceClassPackage};
*
@
author
${
author
}
*
@
since
${
date
}
*/
#
if
(${
kotlin
})
interface
${
table
.
serviceName
}
:
${
superServiceClass
}<${
entity
}>
#
else
public
interface
${
table
.
serviceName
}
extends
${
superServiceClass
}<${
entity
}>
{
void
save
${
className
}(${
className
}
Dto
${
classNameLower
});
void
update
${
className
}(${
className
}
Dto
${
classNameLower
});
void
delete
${
className
}
ById
(
String
id
);
}
#
end
datax-tools/datax-tool-codegen/src/main/resources/templates/service.java.vm.bak
0 → 100644
View file @
779b8978
package
${
package
.
Service
};
import
${
package
.
Entity
}.${
entity
};
import
${
superServiceClassPackage
};
/**
*
<
p
>
*
$
!{table.comment} 服务类
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
#
if
(${
kotlin
})
interface
${
table
.
serviceName
}
:
${
superServiceClass
}<${
entity
}>
#
else
public
interface
${
table
.
serviceName
}
extends
${
superServiceClass
}<${
entity
}>
{
}
#
end
datax-tools/datax-tool-codegen/src/main/resources/templates/serviceImpl.java.vm
View file @
779b8978
...
...
@@ -3,8 +3,12 @@ package ${package.ServiceImpl};
import
${
package
.
Entity
}.${
entity
};
import
${
package
.
Mapper
}.${
table
.
mapperName
};
import
${
package
.
Service
}.${
table
.
serviceName
};
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
mapstruct
.${
className
}
Mapper
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
dao
.${
className
}
Dao
;
import
${
superServiceImplClassPackage
};
import
org
.
springframework
.
stereotype
.
Service
;
import
org
.
springframework
.
transaction
.
annotation
.
Propagation
;
import
org
.
springframework
.
transaction
.
annotation
.
Transactional
;
/**
*
<
p
>
...
...
@@ -15,12 +19,32 @@ import org.springframework.stereotype.Service;
*
@
since
${
date
}
*/
@
Service
#
if
(${
kotlin
})
open
class
${
table
.
serviceImplName
}
:
${
superServiceImplClass
}<${
table
.
mapperName
},
${
entity
}>(),
${
table
.
serviceName
}
{
}
#
else
@
Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
${
table
.
serviceImplName
}
extends
${
superServiceImplClass
}<${
table
.
mapperName
},
${
entity
}>
implements
${
table
.
serviceName
}
{
@
Autowired
private
${
className
}
Dao
${
classNameLower
}
Dao
;
@
Autowired
private
${
className
}
Mapper
${
classNameLower
}
Mapper
;
@
Override
@
Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
save
${
className
}(${
className
}
Dto
${
classNameLower
}
Dto
)
{
${
entity
}
${
classNameLower
}
=
${
classNameLower
}
Mapper
.
toEntity
(${
classNameLower
}
Dto
);
${
classNameLower
}
Dao
.
insert
(${
classNameLower
});
}
@
Override
@
Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
${
className
}(${
className
}
Dto
${
classNameLower
}
Dto
)
{
${
entity
}
${
classNameLower
}
=
${
classNameLower
}
Mapper
.
toEntity
(${
classNameLower
}
Dto
);
${
classNameLower
}
Dao
.
updateById
(${
classNameLower
});
}
@
Override
@
Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
${
className
}
ById
(
String
id
)
{
${
classNameLower
}
Dao
.
deleteById
(
id
);
}
}
#
end
datax-tools/datax-tool-codegen/src/main/resources/templates/serviceImpl.java.vm.bak
0 → 100644
View file @
779b8978
package
${
package
.
ServiceImpl
};
import
${
package
.
Entity
}.${
entity
};
import
${
package
.
Mapper
}.${
table
.
mapperName
};
import
${
package
.
Service
}.${
table
.
serviceName
};
import
${
superServiceImplClassPackage
};
import
org
.
springframework
.
stereotype
.
Service
;
/**
*
<
p
>
*
$
!{table.comment} 服务实现类
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
@
Service
#
if
(${
kotlin
})
open
class
${
table
.
serviceImplName
}
:
${
superServiceImplClass
}<${
table
.
mapperName
},
${
entity
}>(),
${
table
.
serviceName
}
{
}
#
else
public
class
${
table
.
serviceImplName
}
extends
${
superServiceImplClass
}<${
table
.
mapperName
},
${
entity
}>
implements
${
table
.
serviceName
}
{
}
#
end
datax-tools/datax-tool-codegen/src/main/resources/templates/vo.java.vm
0 → 100644
View file @
779b8978
package
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
vo
;
import
lombok
.
Data
;
import
java
.
io
.
Serializable
;
import
java
.
time
.
LocalDateTime
;
/**
*
<
p
>
*
$
!{table.comment} 实体VO
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
@
Data
public
class
${
className
}
Vo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
id
;
private
Integer
status
;
private
LocalDateTime
createTime
;
##
----------
BEGIN
字段循环遍历
----------
#
foreach
($
field
in
${
table
.
fields
})
private
${
field
.
propertyType
}
${
field
.
propertyName
};
#
end
##
----------
END
字段循环遍历
----------
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment