Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
4f27faa7
提交
4f27faa7
编写于
7月 02, 2020
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev' 到 'master'
Dev 查看合并请求
!15
上级
4eccca57
acb25e0e
变更
15
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
1036 行增加
和
95 行删除
+1036
-95
CHANGELOG.md
CHANGELOG.md
+8
-0
I%DE%Service.java.ftl
...PKGPATH%/core/%MOD_PKGPATH%/service/I%DE%Service.java.ftl
+39
-1
%DE%ServiceImpl.java.ftl
.../core/%MOD_PKGPATH%/service/impl/%DE%ServiceImpl.java.ftl
+241
-19
%DE%ServiceEx.java.ftl
...S_PKGPATH%/core/extensions.service/%DE%ServiceEx.java.ftl
+9
-39
%DE%ExService.java.ftl
...S_PKGPATH%/core/extensions/service/%DE%ExService.java.ftl
+173
-0
MybatisConfiguration.java.ftl
...S_PKGPATH%/core/util/config/MybatisConfiguration.java.ftl
+9
-1
%PUBPRJ%-provider-%SYSAPI_PKGPATH%.yaml.ftl
...c/main/docker/%PUBPRJ%-provider-%SYSAPI_PKGPATH%.yaml.ftl
+2
-2
%ITEM%Resource.java.ftl
...YS_PKGPATH%/%SYSAPI_PKGPATH%/rest/%ITEM%Resource.java.ftl
+287
-12
VersionCheck.java.ftl
.../java/%SYS_PKGPATH%/util/annotation/VersionCheck.java.ftl
+18
-0
DEFieldDefaultValueAspect.java.ftl
...S_PKGPATH%/util/aspect/DEFieldDefaultValueAspect.java.ftl
+1
-1
VersionCheckAspect.java.ftl
...ava/%SYS_PKGPATH%/util/aspect/VersionCheckAspect.java.ftl
+118
-0
LayeringCache.java.ftl
...ava/%SYS_PKGPATH%/util/cache/cache/LayeringCache.java.ftl
+4
-2
DEFieldCacheMap.java.ftl
...n/java/%SYS_PKGPATH%/util/helper/DEFieldCacheMap.java.ftl
+4
-4
AppController.java.ftl
.../main/java/%SYS_PKGPATH%/util/rest/AppController.java.ftl
+4
-0
AuthPermissionEvaluator.java.ftl
...S_PKGPATH%/util/security/AuthPermissionEvaluator.java.ftl
+119
-14
未找到文件。
CHANGELOG.md
0 → 100644
浏览文件 @
4f27faa7
# **iBiz4j Spring R7 Template ChangeLog**
## [v2020.07.02]
-
支持测试行为模式
-
数据保存时增加版本检查
-
调整Service扩展目录
-
补充数据查询上下级权限控制
-
关闭mybatis-plus分页数量大小限制
\ No newline at end of file
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/%MOD_PKGPATH%/service/I%DE%Service.java.ftl
浏览文件 @
4f27faa7
...
@@ -57,7 +57,6 @@ public interface I${item.codeName}Service extends IService<${item.codeName}>{
...
@@ -57,7 +57,6 @@ public interface I${item.codeName}Service extends IService<${item.codeName}>{
List
<${
de
.
codeName
}>
get
${
deCodeNameCamel
}
ByIds
(
List
<
String
>
ids
)
;
List
<${
de
.
codeName
}>
get
${
deCodeNameCamel
}
ByIds
(
List
<
String
>
ids
)
;
List
<${
de
.
codeName
}>
get
${
deCodeNameCamel
}
ByEntities
(
List
<${
de
.
codeName
}>
entities
)
;
List
<${
de
.
codeName
}>
get
${
deCodeNameCamel
}
ByEntities
(
List
<${
de
.
codeName
}>
entities
)
;
</#
if
>
</#
if
>
}
}
<#
comment
>
NoSQL
存储
-
MongoDB
</#
comment
>
<#
comment
>
NoSQL
存储
-
MongoDB
</#
comment
>
<#
elseif
de
.
getStorageMode
()==
2
>
<#
elseif
de
.
getStorageMode
()==
2
>
...
@@ -146,6 +145,7 @@ public interface I${item.codeName}Service{
...
@@ -146,6 +145,7 @@ public interface I${item.codeName}Service{
<#
else
>
<#
else
>
${
item
.
codeName
}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
codeName
}
et
)
;
${
item
.
codeName
}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
codeName
}
et
)
;
</#
if
>
</#
if
>
<@
outputTestActionDetail
deaction
/>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
</#
if
>
</#
if
>
...
@@ -196,4 +196,42 @@ public interface I${item.codeName}Service{
...
@@ -196,4 +196,42 @@ public interface I${item.codeName}Service{
</#
if
>
</#
if
>
</#
macro
>
</#
macro
>
<#
comment
>
输出测试行为
</#
comment
>
<#
macro
outputTestActionDetail
deaction
>
<#
if
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??
&&
(
deaction
.
getTestActionMode
()
==
1
||
deaction
.
getTestActionMode
()
==
3
)
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
);
<#
elseif
deaction
.
getActionType
()==
'DELOGIC'
>
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
boolean
testGet
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"createbatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"updatebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"removebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"savebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
boolean
testCreate
(${
item
.
getCodeName
()}
et
);
boolean
testCreateBatch
(
List
<${
item
.
getCodeName
()}>
list
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
boolean
testUpdate
(${
item
.
getCodeName
()}
et
);
boolean
testUpdateBatch
(
List
<${
item
.
getCodeName
()}>
list
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"save"
>
boolean
testSave
(${
item
.
getCodeName
()}
et
);
boolean
testSaveOrUpdate
(${
item
.
getCodeName
()}
et
);
boolean
testSaveBatch
(
Collection
<${
item
.
getCodeName
()}>
list
);
boolean
testSaveBatch
(
List
<${
item
.
getCodeName
()}>
list
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
boolean
testRemove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
);
boolean
testRemoveBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
boolean
testGetDraft
(${
item
.
getCodeName
()}
et
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
boolean
testCheckKey
(${
item
.
getCodeName
()}
et
);
<#
else
>
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
);
</#
if
>
</#
if
>
</#
macro
>
</#
if
>
</#
if
>
\ No newline at end of file
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/%MOD_PKGPATH%/service/impl/%DE%ServiceImpl.java.ftl
浏览文件 @
4f27faa7
...
@@ -110,11 +110,11 @@ public class ${item.getCodeName()}ServiceImpl extends ServiceImpl<${de.getCodeNa
...
@@ -110,11 +110,11 @@ public class ${item.getCodeName()}ServiceImpl extends ServiceImpl<${de.getCodeNa
<#
if
!P.exists('DER1N',der.getMinorPSDataEntity().getCodeName())>
<#
if
!P.exists('DER1N',der.getMinorPSDataEntity().getCodeName())>
<#
if
der
.
getMinorPSDataEntity
().
getCodeName
()==
de
.
codeName
>
<#
if
der
.
getMinorPSDataEntity
().
getCodeName
()==
de
.
codeName
>
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
=
this
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
=
this
;
<#
else
>
<#
else
>
@
Autowired
@
Autowired
@
Lazy
@
Lazy
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
...
@@ -127,11 +127,11 @@ public class ${item.getCodeName()}ServiceImpl extends ServiceImpl<${de.getCodeNa
...
@@ -127,11 +127,11 @@ public class ${item.getCodeName()}ServiceImpl extends ServiceImpl<${de.getCodeNa
<#
if
!P.exists('DER1N',der.getMajorPSDataEntity().getCodeName())>
<#
if
!P.exists('DER1N',der.getMajorPSDataEntity().getCodeName())>
<#
if
der
.
getMajorPSDataEntity
().
getCodeName
()==
de
.
codeName
>
<#
if
der
.
getMajorPSDataEntity
().
getCodeName
()==
de
.
codeName
>
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMajorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMajorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMajorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
=
this
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMajorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMajorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMajorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
=
this
;
<#
else
>
<#
else
>
@
Autowired
@
Autowired
@
Lazy
@
Lazy
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMajorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMajorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMajorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMajorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMajorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMajorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
...
@@ -148,14 +148,16 @@ public class ${item.getCodeName()}ServiceImpl extends ServiceImpl<${de.getCodeNa
...
@@ -148,14 +148,16 @@ public class ${item.getCodeName()}ServiceImpl extends ServiceImpl<${de.getCodeNa
<#
comment
>
实体行为附加逻辑
</#
comment
>
<#
comment
>
实体行为附加逻辑
</#
comment
>
<#
if
deAction
.
getPSDEActionLogics
()??>
<#
if
deAction
.
getPSDEActionLogics
()??>
<#
list
deAction
.
getPSDEActionLogics
()
as
deActionLogic
>
<#
list
deAction
.
getPSDEActionLogics
()
as
deActionLogic
>
<#
if
deActionLogic
.
isInternalLogic
()>
<#
assign
deLogic
=
deActionLogic
.
getPSDELogic
()>
<#
assign
deLogic
=
deActionLogic
.
getPSDELogic
()>
<@
importDELogic
deLogic
/>
<@
importDELogic
deLogic
/>
</#
if
>
</#
list
>
</#
list
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
</#
if
>
</#
if
>
pr
ivate
int
batchSize
=
500
;
pr
otected
int
batchSize
=
500
;
<#
comment
>
输出实体行为
</#
comment
>
<#
comment
>
输出实体行为
</#
comment
>
<#
if
item
.
getAllPSDEActions
()??>
<#
if
item
.
getAllPSDEActions
()??>
...
@@ -168,6 +170,8 @@ ${deaction.getRender().code}
...
@@ -168,6 +170,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"usercustom"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
//
自定义代码
//
自定义代码
...
@@ -180,6 +184,8 @@ ${deaction.getRender().code}
...
@@ -180,6 +184,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"delogic"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
...
@@ -192,6 +198,8 @@ ${deaction.getRender().code}
...
@@ -192,6 +198,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"get"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
buildEntityParam
deaction
/>
<@
buildEntityParam
deaction
/>
<@
addGetActionBoforeLogic
deaction
/>
<@
addGetActionBoforeLogic
deaction
/>
...
@@ -239,6 +247,8 @@ ${deaction.getRender().code}
...
@@ -239,6 +247,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"create"
/>
<#
if
hasMinorPSDERs
gt
0
>
<#
if
hasMinorPSDERs
gt
0
>
fillParentData
(
et
);
fillParentData
(
et
);
</#
if
>
</#
if
>
...
@@ -286,6 +296,8 @@ ${deaction.getRender().code}
...
@@ -286,6 +296,8 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
createBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
createBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"createBatch"
/>
<#
if
hasMinorPSDERs
gt
0
>
<#
if
hasMinorPSDERs
gt
0
>
list
.
forEach
(
item
->
fillParentData
(
item
));
list
.
forEach
(
item
->
fillParentData
(
item
));
</#
if
>
</#
if
>
...
@@ -305,6 +317,8 @@ ${deaction.getRender().code}
...
@@ -305,6 +317,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"update"
/>
<#
if
hasMinorPSDERs
gt
0
>
<#
if
hasMinorPSDERs
gt
0
>
fillParentData
(
et
);
fillParentData
(
et
);
</#
if
>
</#
if
>
...
@@ -356,6 +370,8 @@ ${deaction.getRender().code}
...
@@ -356,6 +370,8 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
updateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
updateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"updateBatch"
/>
<#
if
hasMinorPSDERs
gt
0
>
<#
if
hasMinorPSDERs
gt
0
>
list
.
forEach
(
item
->
fillParentData
(
item
));
list
.
forEach
(
item
->
fillParentData
(
item
));
</#
if
>
</#
if
>
...
@@ -370,6 +386,8 @@ ${deaction.getRender().code}
...
@@ -370,6 +386,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"save"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
if
(
!saveOrUpdate(et))
if
(
!saveOrUpdate(et))
...
@@ -384,6 +402,8 @@ ${deaction.getRender().code}
...
@@ -384,6 +402,8 @@ ${deaction.getRender().code}
rollbackFor
=
{
Exception
.
class
}
rollbackFor
=
{
Exception
.
class
}
)
)
public
boolean
saveOrUpdate
(${
item
.
getCodeName
()}
et
)
{
public
boolean
saveOrUpdate
(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"saveOrUpdate"
/>
if
(
null
==
et
)
{
if
(
null
==
et
)
{
return
false
;
return
false
;
}
else
{
}
else
{
...
@@ -393,6 +413,8 @@ ${deaction.getRender().code}
...
@@ -393,6 +413,8 @@ ${deaction.getRender().code}
@
Override
@
Override
public
boolean
saveBatch
(
Collection
<${
item
.
getCodeName
()}>
list
)
{
public
boolean
saveBatch
(
Collection
<${
item
.
getCodeName
()}>
list
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"saveBatch"
/>
<#
if
hasMinorPSDERs
gt
0
>
<#
if
hasMinorPSDERs
gt
0
>
list
.
forEach
(
item
->
fillParentData
(
item
));
list
.
forEach
(
item
->
fillParentData
(
item
));
</#
if
>
</#
if
>
...
@@ -402,6 +424,8 @@ ${deaction.getRender().code}
...
@@ -402,6 +424,8 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"saveBatch"
/>
<#
if
hasMinorPSDERs
gt
0
>
<#
if
hasMinorPSDERs
gt
0
>
list
.
forEach
(
item
->
fillParentData
(
item
));
list
.
forEach
(
item
->
fillParentData
(
item
));
</#
if
>
</#
if
>
...
@@ -412,6 +436,8 @@ ${deaction.getRender().code}
...
@@ -412,6 +436,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"remove"
/>
<#
comment
>
附加数据逻辑
-
操作前,通过
key
构造
entity
传入逻辑中
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前,通过
key
构造
entity
传入逻辑中
</#
comment
>
<@
buildEntityParam
deaction
/>
<@
buildEntityParam
deaction
/>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
...
@@ -442,6 +468,8 @@ ${deaction.getRender().code}
...
@@ -442,6 +468,8 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
)
{
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"removeBatch"
/>
<#
if
hasPSDERsMapping
>
<#
if
hasPSDERsMapping
>
List
<${
item
.
getCodeName
()}>
entities
=
baseMapper
.
selectBatchIds
(
idList
);
List
<${
item
.
getCodeName
()}>
entities
=
baseMapper
.
selectBatchIds
(
idList
);
</#
if
>
</#
if
>
...
@@ -455,6 +483,8 @@ ${deaction.getRender().code}
...
@@ -455,6 +483,8 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"getdraft"
/>
<#
if
hasMinorPSDERs
gt
0
>
<#
if
hasMinorPSDERs
gt
0
>
fillParentData
(
et
);
fillParentData
(
et
);
</#
if
>
</#
if
>
...
@@ -468,6 +498,8 @@ ${deaction.getRender().code}
...
@@ -468,6 +498,8 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
@
Override
@
Override
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"checkkey"
/>
return
(
!ObjectUtils.isEmpty(et.get${srfcaseformat(keyfield.codeName,'l_u2lC')?cap_first}()))&&(!Objects.isNull(this.getById(et.get${srfcaseformat(keyfield.codeName,'l_u2lC')?cap_first}())));
return
(
!ObjectUtils.isEmpty(et.get${srfcaseformat(keyfield.codeName,'l_u2lC')?cap_first}()))&&(!Objects.isNull(this.getById(et.get${srfcaseformat(keyfield.codeName,'l_u2lC')?cap_first}())));
}
}
<#
comment
>
用户扩展新建、更新
</#
comment
>
<#
comment
>
用户扩展新建、更新
</#
comment
>
...
@@ -475,6 +507,8 @@ ${deaction.getRender().code}
...
@@ -475,6 +507,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"userex"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
comment
>
附加实体行为参数
</#
comment
>
<#
comment
>
附加实体行为参数
</#
comment
>
...
@@ -487,6 +521,8 @@ ${deaction.getRender().code}
...
@@ -487,6 +521,8 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestAction
deaction
"other"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
...
@@ -496,6 +532,8 @@ ${deaction.getRender().code}
...
@@ -496,6 +532,8 @@ ${deaction.getRender().code}
}
}
</#
if
>
</#
if
>
<#
comment
>
输出测试实体行为
</#
comment
>
<@
outputTestActionDetail
deaction
/>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -753,7 +791,7 @@ ${deaction.getRender().code}
...
@@ -753,7 +791,7 @@ ${deaction.getRender().code}
<#
if
!P.exists('DER1N',majorIndexDECodeName)>
<#
if
!P.exists('DER1N',majorIndexDECodeName)>
@
Autowired
@
Autowired
@
Lazy
@
Lazy
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
majorIndexDE
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
majorIndexDECodeName
}
Service
${
srfcaseformat
(
majorIndexDECodeName
,
'l_u2lC'
)}
Service
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
majorIndexDE
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
majorIndexDECodeName
}
Service
${
srfcaseformat
(
majorIndexDECodeName
,
'l_u2lC'
)}
Service
;
</#
if
>
</#
if
>
/**
/**
...
@@ -835,7 +873,7 @@ import com.mongodb.QueryBuilder;
...
@@ -835,7 +873,7 @@ import com.mongodb.QueryBuilder;
public
class
${
item
.
getCodeName
()}
ServiceImpl
implements
I
${
de
.
getCodeName
()}
Service
{
public
class
${
item
.
getCodeName
()}
ServiceImpl
implements
I
${
de
.
getCodeName
()}
Service
{
@
Autowired
@
Autowired
pr
ivate
${
item
.
getCodeName
()}
Repository
repository
;
pr
otected
${
item
.
getCodeName
()}
Repository
repository
;
<#
assign
keyfield
=
de
.
getKeyPSDEField
()>
<#
assign
keyfield
=
de
.
getKeyPSDEField
()>
<#
comment
>
引入关联依赖
</#
comment
>
<#
comment
>
引入关联依赖
</#
comment
>
...
@@ -845,7 +883,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
...
@@ -845,7 +883,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
if
!P.exists('DEMinorPSDataEntity',der.getMinorPSDataEntity().getCodeName())>
<#
if
!P.exists('DEMinorPSDataEntity',der.getMinorPSDataEntity().getCodeName())>
@
Autowired
@
Autowired
@
Lazy
@
Lazy
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -861,8 +899,10 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
...
@@ -861,8 +899,10 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
comment
>
实体行为附加逻辑
</#
comment
>
<#
comment
>
实体行为附加逻辑
</#
comment
>
<#
if
deAction
.
getPSDEActionLogics
()??>
<#
if
deAction
.
getPSDEActionLogics
()??>
<#
list
deAction
.
getPSDEActionLogics
()
as
deActionLogic
>
<#
list
deAction
.
getPSDEActionLogics
()
as
deActionLogic
>
<#
if
deActionLogic
.
isInternalLogic
()>
<#
assign
deLogic
=
deActionLogic
.
getPSDELogic
()>
<#
assign
deLogic
=
deActionLogic
.
getPSDELogic
()>
<@
importDELogic
deLogic
/>
<@
importDELogic
deLogic
/>
</#
if
>
</#
list
>
</#
list
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -879,6 +919,7 @@ ${deaction.getRender().code}
...
@@ -879,6 +919,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"usercustom"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
//
自定义代码
//
自定义代码
...
@@ -891,6 +932,7 @@ ${deaction.getRender().code}
...
@@ -891,6 +932,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"delogic"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
...
@@ -903,6 +945,7 @@ ${deaction.getRender().code}
...
@@ -903,6 +945,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
<@
outputTestAction
deaction
"get"
/>
<@
buildEntityParam
deaction
/>
<@
buildEntityParam
deaction
/>
<@
addGetActionBoforeLogic
deaction
/>
<@
addGetActionBoforeLogic
deaction
/>
Optional
<${
item
.
getCodeName
()}>
result
=
repository
.
findById
(
key
);
Optional
<${
item
.
getCodeName
()}>
result
=
repository
.
findById
(
key
);
...
@@ -951,6 +994,7 @@ ${deaction.getRender().code}
...
@@ -951,6 +994,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"create"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
repository
.
insert
(
et
);
repository
.
insert
(
et
);
...
@@ -987,6 +1031,7 @@ ${deaction.getRender().code}
...
@@ -987,6 +1031,7 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
createBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
createBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<@
outputTestAction
deaction
"createBatch"
/>
<#
comment
>
联合主键,走
SaveOrUpdateBatch
,防止因主键冲突导致后续数据无法保存
</#
comment
>
<#
comment
>
联合主键,走
SaveOrUpdateBatch
,防止因主键冲突导致后续数据无法保存
</#
comment
>
<#
if
item
.
getUnionKeyValuePSDEFields
()??>
<#
if
item
.
getUnionKeyValuePSDEFields
()??>
repository
.
saveAll
(
list
);
repository
.
saveAll
(
list
);
...
@@ -999,6 +1044,7 @@ ${deaction.getRender().code}
...
@@ -999,6 +1044,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"update"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
if
de
.
getKeyPSDEField
()??>
<#
if
de
.
getKeyPSDEField
()??>
...
@@ -1039,6 +1085,7 @@ ${deaction.getRender().code}
...
@@ -1039,6 +1085,7 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
updateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
updateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<@
outputTestAction
deaction
"updateBatch"
/>
repository
.
saveAll
(
list
);
repository
.
saveAll
(
list
);
}
}
...
@@ -1046,6 +1093,7 @@ ${deaction.getRender().code}
...
@@ -1046,6 +1093,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"save"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
if
de
.
getKeyPSDEField
()??>
<#
if
de
.
getKeyPSDEField
()??>
...
@@ -1087,6 +1135,7 @@ ${deaction.getRender().code}
...
@@ -1087,6 +1135,7 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<@
outputTestAction
deaction
"saveBatch"
/>
repository
.
saveAll
(
list
);
repository
.
saveAll
(
list
);
}
}
...
@@ -1094,6 +1143,7 @@ ${deaction.getRender().code}
...
@@ -1094,6 +1143,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
<@
outputTestAction
deaction
"remove"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
buildEntityParam
deaction
/>
<@
buildEntityParam
deaction
/>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
...
@@ -1114,12 +1164,14 @@ ${deaction.getRender().code}
...
@@ -1114,12 +1164,14 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
)
{
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
)
{
<@
outputTestAction
deaction
"removeBatch"
/>
repository
.
deleteAll
(
repository
.
findAllById
(
idList
));
repository
.
deleteAll
(
repository
.
findAllById
(
idList
));
}
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"getdraft"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
...
@@ -1130,6 +1182,7 @@ ${deaction.getRender().code}
...
@@ -1130,6 +1182,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
@
Override
@
Override
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"checkkey"
/>
return
repository
.
findById
(
et
.
get
${
srfcaseformat
(
keyfield
.
codeName
,
'l_u2lC'
)?
cap_first
}()).
isPresent
();
return
repository
.
findById
(
et
.
get
${
srfcaseformat
(
keyfield
.
codeName
,
'l_u2lC'
)?
cap_first
}()).
isPresent
();
}
}
...
@@ -1137,7 +1190,7 @@ ${deaction.getRender().code}
...
@@ -1137,7 +1190,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
//
自定义代码
<@
outputTestAction
deaction
"other"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
...
@@ -1146,6 +1199,8 @@ ${deaction.getRender().code}
...
@@ -1146,6 +1199,8 @@ ${deaction.getRender().code}
}
}
</#
if
>
</#
if
>
<#
comment
>
输出测试实体行为
</#
comment
>
<@
outputTestActionDetail
deaction
/>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -1233,7 +1288,7 @@ ${deaction.getRender().code}
...
@@ -1233,7 +1288,7 @@ ${deaction.getRender().code}
@
Resource
@
Resource
pr
ivate
MongoTemplate
mongoTemplate
;
pr
otected
MongoTemplate
mongoTemplate
;
<#
comment
>
输出数据查询
</#
comment
>
<#
comment
>
输出数据查询
</#
comment
>
<#
if
item
.
getAllPSDEDataSets
()??>
<#
if
item
.
getAllPSDEDataSets
()??>
...
@@ -1311,7 +1366,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
...
@@ -1311,7 +1366,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
if
!P.exists('DEMinorPSDataEntity',der.getMinorPSDataEntity().getCodeName())>
<#
if
!P.exists('DEMinorPSDataEntity',der.getMinorPSDataEntity().getCodeName())>
@
Autowired
@
Autowired
@
Lazy
@
Lazy
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -1328,6 +1383,7 @@ ${deaction.getRender().code}
...
@@ -1328,6 +1383,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"usercustom"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
//
自定义代码
//
自定义代码
...
@@ -1340,6 +1396,7 @@ ${deaction.getRender().code}
...
@@ -1340,6 +1396,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"delogic"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
...
@@ -1351,6 +1408,7 @@ ${deaction.getRender().code}
...
@@ -1351,6 +1408,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
${
keyfield
.
getCodeName
()?
lower_case
})
{
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
${
keyfield
.
getCodeName
()?
lower_case
})
{
<@
outputTestAction
deaction
"get"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#--<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>-->
<#--<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>-->
...
@@ -1403,6 +1461,7 @@ ${deaction.getRender().code}
...
@@ -1403,6 +1461,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
@
Override
@
Override
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"create"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
...
@@ -1448,6 +1507,7 @@ ${deaction.getRender().code}
...
@@ -1448,6 +1507,7 @@ ${deaction.getRender().code}
}
}
public
void
createBatch
(
List
<${
item
.
codeName
}>
list
){
public
void
createBatch
(
List
<${
item
.
codeName
}>
list
){
<@
outputTestAction
deaction
"createBatch"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
createBatch
(
list
)
;
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
createBatch
(
list
)
;
...
@@ -1458,6 +1518,7 @@ ${deaction.getRender().code}
...
@@ -1458,6 +1518,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
@
Override
@
Override
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"update"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
...
@@ -1504,6 +1565,7 @@ ${deaction.getRender().code}
...
@@ -1504,6 +1565,7 @@ ${deaction.getRender().code}
}
}
public
void
updateBatch
(
List
<${
item
.
codeName
}>
list
){
public
void
updateBatch
(
List
<${
item
.
codeName
}>
list
){
<@
outputTestAction
deaction
"updateBatch"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
updateBatch
(
list
)
;
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
updateBatch
(
list
)
;
...
@@ -1515,6 +1577,7 @@ ${deaction.getRender().code}
...
@@ -1515,6 +1577,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"save"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
...
@@ -1560,6 +1623,7 @@ ${deaction.getRender().code}
...
@@ -1560,6 +1623,7 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<@
outputTestAction
deaction
"saveBatch"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
saveBatch
(
list
)
;
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
saveBatch
(
list
)
;
...
@@ -1570,6 +1634,7 @@ ${deaction.getRender().code}
...
@@ -1570,6 +1634,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
@
Override
@
Override
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
${
keyfield
.
getCodeName
()?
lower_case
})
{
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
${
keyfield
.
getCodeName
()?
lower_case
})
{
<@
outputTestAction
deaction
"remove"
/>
<#
if
de
.
getMajorPSDERs
()??>
<#
if
de
.
getMajorPSDERs
()??>
<#
list
de
.
getMajorPSDERs
()
as
der
>
<#
list
de
.
getMajorPSDERs
()
as
der
>
<#
if
der
.
getDERType
()
==
'DER1N'
&&
der
.
isNestedRS
()
&&
der
.
getMinorPSDataEntity
()??
&&
(
der
.
getMinorPSDataEntity
().
getStorageMode
()==
1
||
der
.
getMinorPSDataEntity
().
getStorageMode
()==
2
)
>
<#
if
der
.
getDERType
()
==
'DER1N'
&&
der
.
isNestedRS
()
&&
der
.
getMinorPSDataEntity
()??
&&
(
der
.
getMinorPSDataEntity
().
getStorageMode
()==
1
||
der
.
getMinorPSDataEntity
().
getStorageMode
()==
2
)
>
...
@@ -1597,6 +1662,7 @@ ${deaction.getRender().code}
...
@@ -1597,6 +1662,7 @@ ${deaction.getRender().code}
}
}
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
){
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
){
<@
outputTestAction
deaction
"removeBatch"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
removeBatch
(
idList
);
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
removeBatch
(
idList
);
...
@@ -1607,6 +1673,7 @@ ${deaction.getRender().code}
...
@@ -1607,6 +1673,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"getdraft"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
...
@@ -1626,6 +1693,7 @@ ${deaction.getRender().code}
...
@@ -1626,6 +1693,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
@
Override
@
Override
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"checkkey"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
return
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
checkKey
(
et
);
return
${
subSysServiceApiDECodeName
?
uncap_first
}
FeignClient
.
checkKey
(
et
);
...
@@ -1639,6 +1707,7 @@ ${deaction.getRender().code}
...
@@ -1639,6 +1707,7 @@ ${deaction.getRender().code}
<#
else
>
<#
else
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"other"
/>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
item
.
isEnableAPIStorage
()>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
if
deaction
.
getPSSubSysServiceAPIDEMethod
()??
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
...
@@ -1655,6 +1724,8 @@ ${deaction.getRender().code}
...
@@ -1655,6 +1724,8 @@ ${deaction.getRender().code}
</#
if
>
</#
if
>
}
}
</#
if
>
</#
if
>
<#
comment
>
输出测试实体行为
</#
comment
>
<@
outputTestActionDetail
deaction
/>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -1788,7 +1859,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
...
@@ -1788,7 +1859,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
if
!P.exists('DEMinorPSDataEntity',der.getMinorPSDataEntity().getCodeName())>
<#
if
!P.exists('DEMinorPSDataEntity',der.getMinorPSDataEntity().getCodeName())>
@
Autowired
@
Autowired
@
Lazy
@
Lazy
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
der
.
getMinorPSDataEntity
().
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
I
${
der
.
getMinorPSDataEntity
().
getCodeName
()}
Service
${
srfcaseformat
(
der
.
getMinorPSDataEntity
().
getCodeName
(),
'l_u2lC'
)}
Service
;
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -1804,8 +1875,10 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
...
@@ -1804,8 +1875,10 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
comment
>
实体行为附加逻辑
</#
comment
>
<#
comment
>
实体行为附加逻辑
</#
comment
>
<#
if
deAction
.
getPSDEActionLogics
()??>
<#
if
deAction
.
getPSDEActionLogics
()??>
<#
list
deAction
.
getPSDEActionLogics
()
as
deActionLogic
>
<#
list
deAction
.
getPSDEActionLogics
()
as
deActionLogic
>
<#
if
deActionLogic
.
isInternalLogic
()>
<#
assign
deLogic
=
deActionLogic
.
getPSDELogic
()>
<#
assign
deLogic
=
deActionLogic
.
getPSDELogic
()>
<@
importDELogic
deLogic
/>
<@
importDELogic
deLogic
/>
</#
if
>
</#
list
>
</#
list
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -1822,6 +1895,7 @@ ${deaction.getRender().code}
...
@@ -1822,6 +1895,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"usercustom"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
//
自定义代码
//
自定义代码
...
@@ -1834,6 +1908,7 @@ ${deaction.getRender().code}
...
@@ -1834,6 +1908,7 @@ ${deaction.getRender().code}
@
Override
@
Override
@
Transactional
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"delogic"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
${
deaction
.
getPSDELogic
().
getCodeName
()?
lower_case
}
Logic
.
execute
(
et
);
...
@@ -1845,6 +1920,7 @@ ${deaction.getRender().code}
...
@@ -1845,6 +1920,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
public
${
item
.
getCodeName
()}
get
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
<@
outputTestAction
deaction
"get"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
buildEntityParam
deaction
/>
<@
buildEntityParam
deaction
/>
<@
addGetActionBoforeLogic
deaction
/>
<@
addGetActionBoforeLogic
deaction
/>
...
@@ -1862,6 +1938,7 @@ ${deaction.getRender().code}
...
@@ -1862,6 +1938,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
@
Override
@
Override
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
public
boolean
create
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"create"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
//
代码实现
//
代码实现
...
@@ -1871,12 +1948,13 @@ ${deaction.getRender().code}
...
@@ -1871,12 +1948,13 @@ ${deaction.getRender().code}
}
}
public
void
createBatch
(
List
<${
item
.
codeName
}>
list
){
public
void
createBatch
(
List
<${
item
.
codeName
}>
list
){
<@
outputTestAction
deaction
"createBatch"
/>
}
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
@
Override
@
Override
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
public
boolean
update
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"update"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
//
代码实现
//
代码实现
...
@@ -1886,13 +1964,14 @@ ${deaction.getRender().code}
...
@@ -1886,13 +1964,14 @@ ${deaction.getRender().code}
}
}
public
void
updateBatch
(
List
<${
item
.
codeName
}>
list
){
public
void
updateBatch
(
List
<${
item
.
codeName
}>
list
){
<@
outputTestAction
deaction
"updateBatch"
/>
}
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"save"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"save"
>
@
Override
@
Override
@
Transactional
@
Transactional
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
public
boolean
save
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"save"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
//
代码实现
//
代码实现
...
@@ -1903,12 +1982,13 @@ ${deaction.getRender().code}
...
@@ -1903,12 +1982,13 @@ ${deaction.getRender().code}
@
Override
@
Override
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
public
void
saveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
<@
outputTestAction
deaction
"saveBatch"
/>
}
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
@
Override
@
Override
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
public
boolean
remove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
<@
outputTestAction
deaction
"remove"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
buildEntityParam
deaction
/>
<@
buildEntityParam
deaction
/>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
...
@@ -1918,12 +1998,13 @@ ${deaction.getRender().code}
...
@@ -1918,12 +1998,13 @@ ${deaction.getRender().code}
}
}
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
){
public
void
removeBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
){
<@
outputTestAction
deaction
"removeBatch"
/>
}
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
getDraft
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"getdraft"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
...
@@ -1934,6 +2015,7 @@ ${deaction.getRender().code}
...
@@ -1934,6 +2015,7 @@ ${deaction.getRender().code}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
@
Override
@
Override
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
public
boolean
checkKey
(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"checkkey"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
...
@@ -1943,6 +2025,7 @@ ${deaction.getRender().code}
...
@@ -1943,6 +2025,7 @@ ${deaction.getRender().code}
<#
else
>
<#
else
>
@
Override
@
Override
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
<@
outputTestAction
deaction
"other"
/>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作前
</#
comment
>
<@
addBoforeLogic
deaction
/>
<@
addBoforeLogic
deaction
/>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
<#
comment
>
附加数据逻辑
-
操作后
</#
comment
>
...
@@ -1950,6 +2033,8 @@ ${deaction.getRender().code}
...
@@ -1950,6 +2033,8 @@ ${deaction.getRender().code}
return
et
;
return
et
;
}
}
</#
if
>
</#
if
>
<#
comment
>
输出测试实体行为
</#
comment
>
<@
outputTestActionDetail
deaction
/>
</#
if
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
...
@@ -2118,7 +2203,7 @@ ${deaction.getRender().code}
...
@@ -2118,7 +2203,7 @@ ${deaction.getRender().code}
@
Autowired
@
Autowired
@
Lazy
@
Lazy
pr
ivate
${
pub
.
getPKGCodeName
()}.
core
.${
de
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
logic
.
I
${
de
.
getCodeName
()}${
deLogic
.
codeName
}
Logic
${
deLogic
.
getCodeName
()?
lower_case
}
Logic
;
pr
otected
${
pub
.
getPKGCodeName
()}.
core
.${
de
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
logic
.
I
${
de
.
getCodeName
()}${
deLogic
.
codeName
}
Logic
${
deLogic
.
getCodeName
()?
lower_case
}
Logic
;
</#
if
>
</#
if
>
</#
macro
>
</#
macro
>
...
@@ -2172,4 +2257,141 @@ ${deaction.getRender().code}
...
@@ -2172,4 +2257,141 @@ ${deaction.getRender().code}
</#
if
>
</#
if
>
</#
macro
>
</#
macro
>
<#
comment
>
输出测试行为
</#
comment
>
<#
macro
outputTestAction
deaction
actionParam
>
<#
if
deaction
.
isEnableBackend
()
&&
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??>
<#
if
deaction
.
getTestActionMode
()
==
1
||
deaction
.
getTestActionMode
()
==
3
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(
et
);
<#
elseif
deaction
.
getActionType
()==
'DELOGIC'
>
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(
et
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
testGet
(
key
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"createbatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"updatebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"removebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"savebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
<#
if
actionParam
==
'createBatch'
>
testCreateBatch
(
list
);
<#
else
>
testCreate
(
et
);
</#
if
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
<#
if
actionParam
==
'updateBatch'
>
testUpdateBatch
(
list
);
<#
else
>
testUpdate
(
et
);
</#
if
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"save"
>
<#
if
actionParam
==
'saveBatch'
>
testSaveBatch
(
list
);
<#
elseif
actionParam
==
'saveOrUpdate'
>
testSaveOrUpdate
(
et
);
<#
else
>
testSave
(
et
);
</#
if
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
<#
if
actionParam
==
'removeBatch'
>
testRemoveBatch
(
idList
);
<#
else
>
testRemove
(
key
);
</#
if
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
testGetDraft
(
et
);
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
testCheckKey
(
et
);
<#
else
>
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(
et
);
</#
if
>
</#
if
>
</#
if
>
</#
macro
>
<#
comment
>
输出测试行为
</#
comment
>
<#
macro
outputTestActionDetail
deaction
>
<#
if
deaction
.
isEnableBackend
()
&&
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??>
<#
if
deaction
.
getTestActionMode
()
==
1
||
deaction
.
getTestActionMode
()
==
3
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
public
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
<#
elseif
deaction
.
getActionType
()==
'DELOGIC'
>
public
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
public
boolean
testGet
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
return
true
;
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"createbatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"updatebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"removebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"savebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
public
boolean
testCreate
(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
public
boolean
testCreateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
return
true
;
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
public
boolean
testUpdate
(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
public
boolean
testUpdateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
return
true
;
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"save"
>
public
boolean
testSave
(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
public
boolean
testSaveOrUpdate
(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
public
boolean
testSaveBatch
(
Collection
<${
item
.
getCodeName
()}>
list
)
{
return
true
;
}
public
boolean
testSaveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
return
true
;
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
public
boolean
testRemove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
return
true
;
}
public
boolean
testRemoveBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
)
{
return
true
;
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
public
boolean
testGetDraft
(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
public
boolean
testCheckKey
(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
<#
else
>
public
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
)
{
return
true
;
}
</#
if
>
</#
if
>
</#
if
>
</#
macro
>
</#
if
>
</#
if
>
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/extensions.service/%DE%ServiceEx.java.ftl
浏览文件 @
4f27faa7
...
@@ -8,52 +8,22 @@ TARGET=PSDATAENTITY
...
@@ -8,52 +8,22 @@ TARGET=PSDATAENTITY
<#
if
deaction
.
isEnableBackend
()
&&
deaction
.
getActionType
()==
'USERCUSTOM'
>
<#
if
deaction
.
isEnableBackend
()
&&
deaction
.
getActionType
()==
'USERCUSTOM'
>
<#
assign
hasServiceEx
=
true
>
<#
assign
hasServiceEx
=
true
>
<#
break
>
<#
break
>
<#
elseif
deaction
.
isEnableBackend
()
&&
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??
&&
(
deaction
.
getTestActionMode
()
==
1
||
deaction
.
getTestActionMode
()
==
3
)>
<#
assign
hasServiceEx
=
true
>
<#
break
>
</#
if
>
</#
if
>
</#
list
>
</#
list
>
</#
if
>
</#
if
>
<#
if
hasServiceEx
&&
(
de
.
getStorageMode
()==
1
||
de
.
getStorageMode
()==
2
||
de
.
getStorageMode
()==
4
||
de
.
getStorageMode
()==
0
)
>
<#
if
hasServiceEx
&&
(
de
.
getStorageMode
()==
1
||
de
.
getStorageMode
()==
2
||
de
.
getStorageMode
()==
4
||
de
.
getStorageMode
()==
0
)
>
package
${
pub
.
getPKGCodeName
()}.
core
.
extensions
.
service
;
package
${
pub
.
getPKGCodeName
()}.
core
.
extensions
.
service
;
import
${
pub
.
getPKGCodeName
()}.
core
.${
item
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
impl
.${
item
.
codeName
}
ServiceImpl
;
import
lombok
.
extern
.
slf4j
.
Slf4j
;
import
${
pub
.
getPKGCodeName
()}.
core
.${
item
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
domain
.${
item
.
codeName
};
import
org
.
springframework
.
stereotype
.
Service
;
import
org
.
springframework
.
transaction
.
annotation
.
Transactional
;
import
org
.
springframework
.
context
.
annotation
.
Primary
;
/**
/**
*
实体
[${
item
.
getLogicName
()}]
自定义服务对象
*
扩展目录已变更,请到
[${
pub
.
getPKGCodeName
()}.
core
.
extensions
.
service
.
xxExService
]
中来进行扩展
*
若您之前有在当前目录下扩展过其它的
service
对象,请将扩展的代码移到新的扩展类中,并注释掉老的扩展类,防止
Bean
重复
*/
*/
@
Slf4j
@
Deprecated
@
Primary
public
class
${
item
.
codeName
}
ServiceEx
{
@
Service
(
"${item.codeName}ServiceEx"
)
public
class
${
item
.
codeName
}
ServiceEx
extends
${
item
.
codeName
}
ServiceImpl
{
<#
comment
>
SQL
存储:解决
mybatis
继承
service
批操作报错
</#
comment
>
<#
if
de
.
getStorageMode
()==
1
>
@
Override
protected
Class
currentModelClass
()
{
return
com
.
baomidou
.
mybatisplus
.
core
.
toolkit
.
ReflectionKit
.
getSuperClassGenericType
(
this
.
getClass
().
getSuperclass
(),
1
);
}
</#
if
>
<#
comment
>
输出实体行为
</#
comment
>
<#
if
item
.
getAllPSDEActions
()??>
<#
list
item
.
getAllPSDEActions
()
as
deaction
>
<#
if
deaction
.
isEnableBackend
()
&&
deaction
.
getActionType
()==
'USERCUSTOM'
>
/**
*
自定义行为
[${
deaction
.
getCodeName
()}]
用户扩展
*
@
param
et
*
@
return
*/
@
Override
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
return
super
.${
srfmethodname
(
deaction
.
getCodeName
())}(
et
);
}
</#
if
>
</#
list
>
</#
if
>
}
}
</#
if
>
</#
if
>
...
...
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/extensions/service/%DE%ExService.java.ftl
0 → 100644
浏览文件 @
4f27faa7
<#
ibiztemplate
>
TARGET
=
PSDATAENTITY
</#
ibiztemplate
>
<#
comment
>
判断当前实体是否包含自定义行为
</#
comment
>
<#
assign
hasServiceEx
=
false
>
<#
if
item
.
getAllPSDEActions
()??>
<#
list
item
.
getAllPSDEActions
()
as
deaction
>
<#
if
deaction
.
isEnableBackend
()
&&
deaction
.
getActionType
()==
'USERCUSTOM'
>
<#
assign
hasServiceEx
=
true
>
<#
break
>
<#
elseif
deaction
.
isEnableBackend
()
&&
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??
&&
(
deaction
.
getTestActionMode
()
==
1
||
deaction
.
getTestActionMode
()
==
3
)>
<#
assign
hasServiceEx
=
true
>
<#
break
>
</#
if
>
</#
list
>
</#
if
>
<#
if
hasServiceEx
&&
(
de
.
getStorageMode
()==
1
||
de
.
getStorageMode
()==
2
||
de
.
getStorageMode
()==
4
||
de
.
getStorageMode
()==
0
)
>
package
${
pub
.
getPKGCodeName
()}.
core
.
extensions
.
service
;
import
${
pub
.
getPKGCodeName
()}.
core
.${
item
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
service
.
impl
.${
item
.
codeName
}
ServiceImpl
;
import
lombok
.
extern
.
slf4j
.
Slf4j
;
import
${
pub
.
getPKGCodeName
()}.
core
.${
item
.
getPSSystemModule
().
getCodeName
()?
lower_case
}.
domain
.${
item
.
codeName
};
import
org
.
springframework
.
stereotype
.
Service
;
import
org
.
springframework
.
transaction
.
annotation
.
Transactional
;
import
org
.
springframework
.
context
.
annotation
.
Primary
;
import
java
.
util
.*;
/**
*
实体
[${
item
.
getLogicName
()}]
自定义服务对象
*/
@
Slf4j
@
Primary
@
Service
(
"${item.codeName}ExService"
)
public
class
${
item
.
codeName
}
ExService
extends
${
item
.
codeName
}
ServiceImpl
{
<#
assign
keyfield
=
de
.
getKeyPSDEField
()>
<#
comment
>
SQL
存储:解决
mybatis
继承
service
批操作报错
</#
comment
>
<#
if
de
.
getStorageMode
()==
1
>
@
Override
protected
Class
currentModelClass
()
{
return
com
.
baomidou
.
mybatisplus
.
core
.
toolkit
.
ReflectionKit
.
getSuperClassGenericType
(
this
.
getClass
().
getSuperclass
(),
1
);
}
</#
if
>
<#
comment
>
输出实体行为
</#
comment
>
<#
if
item
.
getAllPSDEActions
()??>
<#
list
item
.
getAllPSDEActions
()
as
deaction
>
<#
if
deaction
.
isEnableBackend
()>
<#
if
deaction
.
getActionType
()==
'USERCUSTOM'
>
/**
*
自定义行为
[${
deaction
.
getCodeName
()}]
用户扩展
*
@
param
et
*
@
return
*/
@
Override
@
Transactional
public
${
item
.
getCodeName
()}
${
srfmethodname
(
deaction
.
getCodeName
())}(${
item
.
getCodeName
()}
et
)
{
return
super
.${
srfmethodname
(
deaction
.
getCodeName
())}(
et
);
}
</#
if
>
<#
comment
>
输出测试行为
</#
comment
>
<@
outputTestActionDetail
deaction
/>
</#
if
>
</#
list
>
</#
if
>
}
</#
if
>
<#
comment
>
输出测试行为
</#
comment
>
<#
macro
outputTestActionDetail
deaction
>
<#
if
deaction
.
isEnableBackend
()
&&
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??>
<#
if
deaction
.
getTestActionMode
()
==
1
||
deaction
.
getTestActionMode
()
==
3
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
@
Override
public
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
)
{
return
super
.
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(
et
);
}
<#
elseif
deaction
.
getActionType
()==
'DELOGIC'
>
@
Override
public
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
)
{
return
super
.
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(
et
);
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
'get'
>
@
Override
public
boolean
testGet
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
return
super
.
testGet
(
key
);
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"createbatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"updatebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"removebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"savebatch"
>
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"create"
>
@
Override
public
boolean
testCreate
(${
item
.
getCodeName
()}
et
)
{
return
super
.
testCreate
(
et
);
}
@
Override
public
boolean
testCreateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
return
super
.
testCreateBatch
(
list
);
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"update"
>
@
Override
public
boolean
testUpdate
(${
item
.
getCodeName
()}
et
)
{
return
super
.
testUpdate
(
et
);
}
@
Override
public
boolean
testUpdateBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
return
super
.
testUpdateBatch
(
list
);
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"save"
>
@
Override
public
boolean
testSave
(${
item
.
getCodeName
()}
et
)
{
return
super
.
testSave
(
et
);
}
@
Override
public
boolean
testSaveOrUpdate
(${
item
.
getCodeName
()}
et
)
{
return
super
.
testSaveOrUpdate
(
et
);
}
@
Override
public
boolean
testSaveBatch
(
Collection
<${
item
.
getCodeName
()}>
list
)
{
return
super
.
testSaveBatch
(
list
);
}
@
Override
public
boolean
testSaveBatch
(
List
<${
item
.
getCodeName
()}>
list
)
{
return
super
.
testSaveBatch
(
list
);
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"remove"
>
@
Override
public
boolean
testRemove
(${
srfjavatype
(
keyfield
.
stdDataType
)}
key
)
{
return
super
.
testRemove
(
key
);
}
@
Override
public
boolean
testRemoveBatch
(
Collection
<${
srfjavatype
(
keyfield
.
stdDataType
)}>
idList
)
{
return
super
.
testRemoveBatch
(
idList
);
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"getdraft"
>
@
Override
public
boolean
testGetDraft
(${
item
.
getCodeName
()}
et
)
{
return
super
.
testGetDraft
(
et
);
}
<#
elseif
deaction
.
getCodeName
()?
lower_case
==
"checkkey"
>
@
Override
public
boolean
testCheckKey
(${
item
.
getCodeName
()}
et
)
{
return
super
.
testCheckKey
(
et
);
}
<#
else
>
@
Override
public
boolean
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(${
item
.
getCodeName
()}
et
)
{
return
super
.
test
${
srfmethodname
(
deaction
.
getCodeName
())?
cap_first
}(
et
);
}
</#
if
>
</#
if
>
</#
if
>
</#
macro
>
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/util/config/MybatisConfiguration.java.ftl
浏览文件 @
4f27faa7
...
@@ -9,6 +9,7 @@ import ${pub.getPKGCodeName()}.util.helper.UniqueNameGenerator;
...
@@ -9,6 +9,7 @@ import ${pub.getPKGCodeName()}.util.helper.UniqueNameGenerator;
import
com
.
baomidou
.
mybatisplus
.
core
.
injector
.
ISqlInjector
;
import
com
.
baomidou
.
mybatisplus
.
core
.
injector
.
ISqlInjector
;
<#--
import
com
.
baomidou
.
mybatisplus
.
extension
.
injector
.
LogicSqlInjector
;-->
<#--
import
com
.
baomidou
.
mybatisplus
.
extension
.
injector
.
LogicSqlInjector
;-->
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
PaginationInterceptor
;
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
PaginationInterceptor
;
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
pagination
.
optimize
.
JsqlParserCountOptimize
;
import
org
.
apache
.
ibatis
.
mapping
.
DatabaseIdProvider
;
import
org
.
apache
.
ibatis
.
mapping
.
DatabaseIdProvider
;
import
org
.
apache
.
ibatis
.
mapping
.
VendorDatabaseIdProvider
;
import
org
.
apache
.
ibatis
.
mapping
.
VendorDatabaseIdProvider
;
import
org
.
springframework
.
context
.
annotation
.
Bean
;
import
org
.
springframework
.
context
.
annotation
.
Bean
;
...
@@ -46,7 +47,14 @@ public class MybatisConfiguration {
...
@@ -46,7 +47,14 @@ public class MybatisConfiguration {
*/
*/
@
Bean
@
Bean
public
PaginationInterceptor
paginationInterceptor
()
{
public
PaginationInterceptor
paginationInterceptor
()
{
return
new
PaginationInterceptor
();
PaginationInterceptor
paginationInterceptor
=
new
PaginationInterceptor
();
//
设置请求的页面大于最大页后操作,
true
调回到首页,
false
继续请求
默认
false
//
paginationInterceptor
.
setOverflow
(
false
);
//
设置最大单页限制数量,默认
500
条,
-
1
不受限制
paginationInterceptor
.
setLimit
(-
1
);
//
开启
count
的
join
优化
,
只针对部分
left
join
paginationInterceptor
.
setCountSqlParser
(
new
JsqlParserCountOptimize
(
true
));
return
paginationInterceptor
;
}
}
<#--/**-->
<#--/**-->
...
...
SLN/%PUBPRJ%-provider/%PUBPRJ%-provider-%SYSAPI_PKGPATH%/src/main/docker/%PUBPRJ%-provider-%SYSAPI_PKGPATH%.yaml.ftl
浏览文件 @
4f27faa7
...
@@ -27,9 +27,9 @@ TARGET=PSSYSSERVICEAPI
...
@@ -27,9 +27,9 @@ TARGET=PSSYSSERVICEAPI
<#assign redisHost = depSysApiPlatform.getUserParam("spring.redis.host","")>
<#assign redisHost = depSysApiPlatform.getUserParam("spring.redis.host","")>
</#if>
</#if>
<#if depSysApi.getUserParam("spring.redis.port","")?? && depSysApi.getUserParam("spring.redis.port","")!="">
<#if depSysApi.getUserParam("spring.redis.port","")?? && depSysApi.getUserParam("spring.redis.port","")!="">
<#assign redisPort = depSysApi.getUserParam("")>
<#assign redisPort = depSysApi.getUserParam("
spring.redis.port
")>
<#elseif depSysApiPlatform.getUserParam("spring.redis.port","")?? && depSysApiPlatform.getUserParam("spring.redis.port","")!="">
<#elseif depSysApiPlatform.getUserParam("spring.redis.port","")?? && depSysApiPlatform.getUserParam("spring.redis.port","")!="">
<#assign redisPort = depSysApiPlatform.getUserParam("")>
<#assign redisPort = depSysApiPlatform.getUserParam("
spring.redis.port
")>
</#if>
</#if>
<#if depSysApi.getUserParam("spring.redis.database","")?? && depSysApi.getUserParam("spring.redis.database","")!="">
<#if depSysApi.getUserParam("spring.redis.database","")?? && depSysApi.getUserParam("spring.redis.database","")!="">
<#assign redisDataBase = depSysApi.getUserParam("spring.redis.database","")>
<#assign redisDataBase = depSysApi.getUserParam("spring.redis.database","")>
...
...
SLN/%PUBPRJ%-provider/%PUBPRJ%-provider-%SYSAPI_PKGPATH%/src/main/java/%SYS_PKGPATH%/%SYSAPI_PKGPATH%/rest/%ITEM%Resource.java.ftl
浏览文件 @
4f27faa7
...
@@ -56,6 +56,7 @@ import ${pubPkgCodeName}.${itemSysApiCodeNameLC}.mapping.*;
...
@@ -56,6 +56,7 @@ import ${pubPkgCodeName}.${itemSysApiCodeNameLC}.mapping.*;
import
${
pubPkgCodeName
}.
core
.${
deModelCodeNameLC
}.
domain
.${
deCodeName
};
import
${
pubPkgCodeName
}.
core
.${
deModelCodeNameLC
}.
domain
.${
deCodeName
};
import
${
pubPkgCodeName
}.
core
.${
deModelCodeNameLC
}.
service
.
I
${
deCodeName
}
Service
;
import
${
pubPkgCodeName
}.
core
.${
deModelCodeNameLC
}.
service
.
I
${
deCodeName
}
Service
;
import
${
pubPkgCodeName
}.
core
.${
deModelCodeNameLC
}.
filter
.${
deCodeName
}
SearchContext
;
import
${
pubPkgCodeName
}.
core
.${
deModelCodeNameLC
}.
filter
.${
deCodeName
}
SearchContext
;
import
${
pubPkgCodeName
}.
util
.
annotation
.
VersionCheck
;
<#
if
item
.
getPSDEServiceAPIRSs
()??>
<#
if
item
.
getPSDEServiceAPIRSs
()??>
<#
list
item
.
getPSDEServiceAPIRSs
()
as
apider
>
<#
list
item
.
getPSDEServiceAPIRSs
()
as
apider
>
<#
assign
deapide
=
apider
.
getMinorPSDEServiceAPI
().
getPSDataEntity
()>
<#
assign
deapide
=
apider
.
getMinorPSDEServiceAPI
().
getPSDataEntity
()>
...
@@ -140,6 +141,8 @@ public class ${itemCodeName}Resource {
...
@@ -140,6 +141,8 @@ public class ${itemCodeName}Resource {
<#
assign
deaction
=
apiMethod
.
getPSDEAction
()>
<#
assign
deaction
=
apiMethod
.
getPSDEAction
()>
<#
assign
deactionName
=
deaction
.
getName
()>
<#
assign
deactionName
=
deaction
.
getName
()>
<#
assign
deactionCodeName
=
deaction
.
getCodeName
()>
<#
assign
deactionCodeName
=
deaction
.
getCodeName
()>
<#
comment
>
输出主接口测试行为
</#
comment
>
<@
outputTestActionDetail
deaction
/>
<#
if
deaction
.
codeName
?
lower_case
==
'create'
>
<#
if
deaction
.
codeName
?
lower_case
==
'create'
>
<@
SecurityAnnotation
deaction
/>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"新建${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"新建${deLogicName}"
)
@
ApiOperation
(
value
=
"新建${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"新建${deLogicName}"
)
...
@@ -161,6 +164,7 @@ public class ${itemCodeName}Resource {
...
@@ -161,6 +164,7 @@ public class ${itemCodeName}Resource {
}
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'update'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'update'
>
<@
VersionCheckAnnotation
/>
<@
SecurityAnnotation
deaction
/>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"更新${deLogicName}"
)
@
ApiOperation
(
value
=
"更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"更新${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}"
)
...
@@ -249,18 +253,17 @@ public class ${itemCodeName}Resource {
...
@@ -249,18 +253,17 @@ public class ${itemCodeName}Resource {
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/${deactionCodeName?lower_case}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/${deactionCodeName?lower_case}"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<${
itemCodeName
}
DTO
>
${
deactionCodeName
?
uncap_first
}(${
id_etParams
})
{
public
ResponseEntity
<${
itemCodeName
}
DTO
>
${
deactionCodeName
?
uncap_first
}(${
id_etParams
})
{
${
deCodeName
}
${
deCodeNameLC
}
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
${
deCodeName
}
domain
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
${
deCodeNameLC
}
.
set
${
dePKCodeName
}(${
itemCodeNameLC
+
keyCNLC
});
domain
.
set
${
dePKCodeName
}(${
itemCodeNameLC
+
keyCNLC
});
${
deCodeNameLC
}
=
${
deCodeNameLC
}
Service
.${
srfmethodname
(
deactionCodeName
)}(${
deCodeNameLC
}
);
domain
=
${
deCodeNameLC
}
Service
.${
srfmethodname
(
deactionCodeName
)}(
domain
);
${
itemCodeNameLC
}
dto
=
${
itemCodeNameLC
}
Mapping
.
toDto
(
${
deCodeNameLC
}
);
${
itemCodeNameLC
}
dto
=
${
itemCodeNameLC
}
Mapping
.
toDto
(
domain
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
itemCodeNameLC
}
dto
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
itemCodeNameLC
}
dto
);
}
}
</#
if
>
</#
if
>
<#
elseif
apiMethod
.
getActionType
()==
'FETCH'
>
<#
elseif
apiMethod
.
getActionType
()==
'FETCH'
>
<#
assign
deds
=
apiMethod
.
getPSDEDataSet
()>
<#
assign
deds
=
apiMethod
.
getPSDEDataSet
()>
@
PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','${sys.codeName}-${de.codeName}-search${deds.codeName}-all')"
)
<@
DataQuerySecurityAnnotation
deds
/>
<#--<@
SecurityAnnotation
deds
/>-->
@
ApiOperation
(
value
=
"获取${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"获取${deds.getLogicName()}"
)
@
ApiOperation
(
value
=
"获取${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"获取${deds.getLogicName()}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
}
,
value
=
"${fullPath}/fetch<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
}
,
value
=
"${fullPath}/fetch<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
public
ResponseEntity
<
List
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
fetch
<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>(${
deCodeName
}
SearchContext
context
)
{
public
ResponseEntity
<
List
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
fetch
<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>(${
deCodeName
}
SearchContext
context
)
{
...
@@ -283,8 +286,7 @@ public class ${itemCodeName}Resource {
...
@@ -283,8 +286,7 @@ public class ${itemCodeName}Resource {
</#
if
>
</#
if
>
}
}
@
PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','${sys.codeName}-${de.codeName}-search${deds.codeName}-all')"
)
<@
DataQuerySecurityAnnotation
deds
/>
<#--<@
SecurityAnnotation
deds
/>-->
@
ApiOperation
(
value
=
"查询${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"查询${deds.getLogicName()}"
)
@
ApiOperation
(
value
=
"查询${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"查询${deds.getLogicName()}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/search<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/search<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
public
ResponseEntity
<
Page
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
search
<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>(@
RequestBody
${
deCodeName
}
SearchContext
context
)
{
public
ResponseEntity
<
Page
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
search
<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>(@
RequestBody
${
deCodeName
}
SearchContext
context
)
{
...
@@ -389,6 +391,8 @@ public class ${itemCodeName}Resource {
...
@@ -389,6 +391,8 @@ public class ${itemCodeName}Resource {
<#
assign
deaction
=
apiMethod
.
getPSDEAction
()>
<#
assign
deaction
=
apiMethod
.
getPSDEAction
()>
<#
assign
deactionName
=
deaction
.
getName
()>
<#
assign
deactionName
=
deaction
.
getName
()>
<#
assign
deactionCodeName
=
deaction
.
getCodeName
()>
<#
assign
deactionCodeName
=
deaction
.
getCodeName
()>
<#
comment
>
输出从接口测试行为
</#
comment
>
<@
outputTestActionDetail2
deaction
/>
<#
if
deaction
.
codeName
?
lower_case
==
'create'
>
<#
if
deaction
.
codeName
?
lower_case
==
'create'
>
<@
SecurityAnnotation
deaction
/>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}建立${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}建立${deLogicName}"
)
@
ApiOperation
(
value
=
"${byTagParams}建立${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}建立${deLogicName}"
)
...
@@ -415,6 +419,7 @@ public class ${itemCodeName}Resource {
...
@@ -415,6 +419,7 @@ public class ${itemCodeName}Resource {
}
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'update'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'update'
>
<@
VersionCheckAnnotation
/>
<@
SecurityAnnotation
deaction
/>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}更新${deLogicName}"
)
@
ApiOperation
(
value
=
"${byTagParams}更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}更新${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}"
)
...
@@ -565,8 +570,7 @@ public class ${itemCodeName}Resource {
...
@@ -565,8 +570,7 @@ public class ${itemCodeName}Resource {
</#
if
>
</#
if
>
<#
elseif
apiMethod
.
getActionType
()==
'FETCH'
>
<#
elseif
apiMethod
.
getActionType
()==
'FETCH'
>
<#
assign
deds
=
apiMethod
.
getPSDEDataSet
()>
<#
assign
deds
=
apiMethod
.
getPSDEDataSet
()>
@
PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','${sys.codeName}-${de.codeName}-search${deds.codeName}-all')"
)
<@
DataQuerySecurityAnnotation
deds
/>
<#--<@
SecurityAnnotation
deds
/>-->
@
ApiOperation
(
value
=
"${byTagParams}获取${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"${byTagParams}获取${deds.getLogicName()}"
)
@
ApiOperation
(
value
=
"${byTagParams}获取${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"${byTagParams}获取${deds.getLogicName()}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
}
,
value
=
"${fullPath}/fetch<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
}
,
value
=
"${fullPath}/fetch<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
public
ResponseEntity
<
List
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
fetch
${
itemCodeName
}<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>${
byParams
}(<#
if
parentParams
!="">${parentParams},</#if>${deCodeName}SearchContext context) {
public
ResponseEntity
<
List
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
fetch
${
itemCodeName
}<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>${
byParams
}(<#
if
parentParams
!="">${parentParams},</#if>${deCodeName}SearchContext context) {
...
@@ -589,8 +593,7 @@ public class ${itemCodeName}Resource {
...
@@ -589,8 +593,7 @@ public class ${itemCodeName}Resource {
</#
if
>
</#
if
>
}
}
@
PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','${sys.codeName}-${de.codeName}-search${deds.codeName}-all')"
)
<@
DataQuerySecurityAnnotation
deds
/>
<#--<@
SecurityAnnotation
deds
/>-->
@
ApiOperation
(
value
=
"${byTagParams}查询${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"${byTagParams}查询${deds.getLogicName()}"
)
@
ApiOperation
(
value
=
"${byTagParams}查询${deds.getLogicName()}"
,
tags
=
{
"${deLogicName}"
}
,
notes
=
"${byTagParams}查询${deds.getLogicName()}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/search<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/search<#if (deds.getName()=='DEFAULT')>${deds.getCodeName()?lower_case}<#else>${deds.getCodeName()?lower_case}</#if>"
)
public
ResponseEntity
<
Page
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
search
${
itemCodeName
}<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>${
byParams
}(<#
if
parentParams
!="">${parentParams}, @RequestBody </#if>${deCodeName}SearchContext context) {
public
ResponseEntity
<
Page
<<#
if
deds
.
isEnableGroup
()>
HashMap
<#
else
>${
itemCodeName
}
DTO
</#
if
>>>
search
${
itemCodeName
}<#
if
(
deds
.
getName
()==
'DEFAULT'
)>${
deds
.
getCodeName
()}<#
else
>${
deds
.
getCodeName
()}</#
if
>${
byParams
}(<#
if
parentParams
!="">${parentParams}, @RequestBody </#if>${deCodeName}SearchContext context) {
...
@@ -616,6 +619,17 @@ public class ${itemCodeName}Resource {
...
@@ -616,6 +619,17 @@ public class ${itemCodeName}Resource {
</#
if
>
</#
if
>
</#
if
>
</#
if
>
<#
comment
>
数据查询
Security
权限校验
</#
comment
>
<#
macro
DataQuerySecurityAnnotation
dataset
>
<#
if
de
.
getStorageMode
()==
1
||
de
.
getStorageMode
()==
2
>
<#
if
hasDEPrefield
==
false
>
@
PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','${sys.codeName}-${de.codeName}-search${dataset.codeName}-all')"
)
<#
else
>
@
PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','${sys.codeName}-${de.codeName}-search${dataset.codeName}-all') and hasPermission(#context,'${sys.codeName}-${de.codeName}-Get')"
)
</#
if
>
</#
if
>
</#
macro
>
<#
comment
>
单条数据
Security
权限校验
</#
comment
>
<#
comment
>
单条数据
Security
权限校验
</#
comment
>
<#
macro
SecurityAnnotation
deaction
>
<#
macro
SecurityAnnotation
deaction
>
<#
if
de
.
getStorageMode
()==
1
||
de
.
getStorageMode
()==
2
>
<#
if
de
.
getStorageMode
()==
1
||
de
.
getStorageMode
()==
2
>
...
@@ -652,6 +666,267 @@ public class ${itemCodeName}Resource {
...
@@ -652,6 +666,267 @@ public class ${itemCodeName}Resource {
</#
if
>
</#
if
>
</#
macro
>
</#
macro
>
<#
comment
>
数据库版本检查注解
</#
comment
>
<#
macro
VersionCheckAnnotation
>
<#
if
item
.
getPSDEServiceAPIFields
()??>
<#
list
item
.
getPSDEServiceAPIFields
()
as
apifield
>
<#
if
apifield
.
getPSDEField
??
&&
apifield
.
getPSDEField
()??>
<#
assign
defield
=
apifield
.
getPSDEField
()>
<#
if
defield
.
getPredefinedType
??
&&
defield
.
getPredefinedType
()??>
<#
if
defield
.
getPredefinedType
()==
'UPDATEDATE'
>
<#
assign
updatedateField
=
srfcaseformat
(
defield
.
codeName
,
'l_u2lC'
)>
@
VersionCheck
(
entity
=
"${deCodeNameLC}"
,
versionfield
=
"${updatedateField}"
)
<#
break
>
</#
if
>
</#
if
>
</#
if
>
</#
list
>
</#
if
>
</#
macro
>
<#
comment
>
输出主接口测试行为
</#
comment
>
<#
macro
outputTestActionDetail
deaction
>
<#
if
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??
&&
(
deaction
.
getTestActionMode
()
==
3
)
>
<#
assign
deactionName
=
deaction
.
getName
()>
<#
assign
deactionCodeName
=
deaction
.
getCodeName
()>
<#
if
deaction
.
codeName
?
lower_case
==
'create'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"新建${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"新建${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
testCreate
(${
etParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testCreate
(${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
)));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"批量新建${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"批量新建${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/batch/test"
)
public
ResponseEntity
<
Boolean
>
testCreateBatch
(${
etParamsList
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testCreateBatch
(${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dtos
)));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'update'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"更新${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
testUpdate
(${
id_etParams
})
{
${
deCodeName
}
domain
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
domain
.
set
${
dePKCodeName
}(${
itemCodeNameLC
+
keyCNLC
});
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testUpdate
(
domain
));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"批量更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"批量更新${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/batch/test"
)
public
ResponseEntity
<
Boolean
>
testUpdateBatch
(${
etParamsList
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testUpdateBatch
(${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dtos
)));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'save'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"保存${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"保存${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/${deactionCodeName?lower_case}/test"
)
public
ResponseEntity
<
Boolean
>
testSave
(${
etParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testSave
(${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
)));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"批量保存${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"批量保存${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/savebatch/test"
)
public
ResponseEntity
<
Boolean
>
testSaveBatch
(${
etParamsList
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testSaveBatch
(${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dtos
)));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'remove'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"删除${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"删除${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
DELETE
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
testRemove
(${
idParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testRemove
(${
itemCodeNameLC
+
keyCNLC
}));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"批量删除${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"批量删除${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
DELETE
,
value
=
"${fullPath}/batch/test"
)
public
ResponseEntity
<
Boolean
>
testRemoveBatch
(@
RequestBody
List
<${
srfjavatype
(
de
.
getKeyPSDEField
().
getStdDataType
())}>
ids
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testRemoveBatch
(
ids
));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'get'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"获取${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"获取${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/test"
)
public
ResponseEntity
<
Boolean
>
testGet
(${
idParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testGet
(${
itemCodeNameLC
+
keyCNLC
}));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'checkkey'
>
@
ApiOperation
(
value
=
"检查${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"检查${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/${deactionCodeName?lower_case}/test"
)
public
ResponseEntity
<
Boolean
>
testCheckKey
(${
etParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testCheckKey
(${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
)));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'getdraft'
><#
comment
>
前端支持临时模式,后台不做处理
</#
comment
>
@
ApiOperation
(
value
=
"获取${deLogicName}草稿"
,
tags
=
{
"${deLogicName}"
},
notes
=
"获取${deLogicName}草稿"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/${deactionCodeName?lower_case}/test"
)
public
ResponseEntity
<
Boolean
>
testGetDraft
()
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testGetDraft
(
new
${
deCodeName
}()));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'createbatch'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'updatebatch'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'removebatch'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'savebatch'
>
<#
elseif
deaction
.
getUserTag
()??
&&
deaction
.
getActionType
()??
&&
deaction
.
getUserTag
()
==
'REGIST'
&&
deaction
.
getActionType
()
==
'USERCREATE'
>
<#
else
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${deaction.getLogicName()}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${deaction.getLogicName()}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/${deactionCodeName?lower_case}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
test
${
deactionCodeName
?
cap_first
}(${
id_etParams
})
{
${
deCodeName
}
domain
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
test
${
srfmethodname
(
deactionCodeName
)?
cap_first
}(
domain
));
}
</#
if
>
</#
if
>
</#
macro
>
<#
comment
>
输出关系接口测试行为
</#
comment
>
<#
macro
outputTestActionDetail2
deaction
>
<#
if
deaction
.
getTestActionMode
??
&&
deaction
.
getTestActionMode
()??
&&
(
deaction
.
getTestActionMode
()
==
3
)
>
<#
assign
deactionName
=
deaction
.
getName
()>
<#
assign
deactionCodeName
=
deaction
.
getCodeName
()>
<#
if
deaction
.
codeName
?
lower_case
==
'create'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}建立${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}建立${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
testCreate
${
byParams
}(${
etParams
})
{
${
deCodeName
}
domain
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
${
parentSetParams
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testCreate
(
domain
));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}批量建立${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}批量建立${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/batch/test"
)
public
ResponseEntity
<
Boolean
>
testCreateBatch
${
byParams
}(${
etParamsList
})
{
List
<${
deCodeName
}>
domainlist
=${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dtos
);
for
(${
deCodeName
}
domain
:
domainlist
){
${
parentSetParams
}
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testCreateBatch
(
domainlist
));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'update'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}更新${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
testUpdate
${
byParams
}(${
id_etParams
})
{
${
deCodeName
}
domain
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
${
parentSetParams
}
domain
.
set
${
dePKCodeName
}(${
itemCodeNameLC
+
keyCNLC
});
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testUpdate
(
domain
));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}批量更新${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}批量更新${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"${fullPath}/batch/test"
)
public
ResponseEntity
<
Boolean
>
testUpdateBatch
${
byParams
}(${
etParamsList
})
{
List
<${
deCodeName
}>
domainlist
=${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dtos
);
for
(${
deCodeName
}
domain
:
domainlist
){
${
parentSetParams
}
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testUpdateBatch
(
domainlist
));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'remove'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}删除${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}删除${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
DELETE
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
testRemove
${
byParams
}(${
idParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testRemove
(${
itemCodeNameLC
+
keyCNLC
}));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}批量删除${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}批量删除${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
DELETE
,
value
=
"${fullPath}/batch/test"
)
public
ResponseEntity
<
Boolean
>
testRemoveBatch
${
byParams
}(@
RequestBody
List
<${
srfjavatype
(
de
.
getKeyPSDEField
().
getStdDataType
())}>
ids
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testRemoveBatch
(
ids
));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'save'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}保存${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}保存${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/${deactionCodeName?lower_case}/test"
)
public
ResponseEntity
<
Boolean
>
testSave
${
byParams
}(${
etParams
})
{
${
deCodeName
}
domain
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
${
parentSetParams
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testSave
(
domain
));
}
<@
SecurityBatchAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}批量保存${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}批量保存${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"${fullPath}/savebatch/test"
)
public
ResponseEntity
<
Boolean
>
testSaveBatch
${
byParams
}(${
etParamsList
})
{
List
<${
deCodeName
}>
domainlist
=${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dtos
);
for
(${
deCodeName
}
domain
:
domainlist
){
${
parentSetParams
}
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testSaveBatch
(
domainlist
));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'get'
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}获取${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}获取${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/test"
)
public
ResponseEntity
<
Boolean
>
testGet
${
byParams
}(${
idParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testGet
(${
itemCodeNameLC
+
keyCNLC
}));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'checkkey'
>
@
ApiOperation
(
value
=
"${byTagParams}检查${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}检查${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/${deactionCodeName?lower_case}/test"
)
public
ResponseEntity
<
Boolean
>
testCheckKey
${
byParams
}(${
etParams
})
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
testCheckKey
(${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
)));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'getdraft'
>
@
ApiOperation
(
value
=
"${byTagParams}获取${deLogicName}草稿"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}获取${deLogicName}草稿"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/${deactionCodeName?lower_case}/test"
)
public
ResponseEntity
<
Boolean
>
testGetDraft
${
byParams
}(${
parentParams
})
{
${
deCodeName
}
domain
=
new
${
deCodeName
}();
${
parentSetParams
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
itemCodeNameLC
}
Mapping
.
toDto
(${
deCodeNameLC
}
Service
.
testGetDraft
(
domain
)));
}
<#
elseif
deaction
.
codeName
?
lower_case
==
'createbatch'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'updatebatch'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'removebatch'
>
<#
elseif
deaction
.
codeName
?
lower_case
==
'savebatch'
>
<#
elseif
deaction
.
getUserTag
()??
&&
deaction
.
getActionType
()??
&&
deaction
.
getUserTag
()
==
'REGIST'
&&
deaction
.
getActionType
()
==
'USERCREATE'
>
<#
else
>
<@
SecurityAnnotation
deaction
/>
@
ApiOperation
(
value
=
"${byTagParams}${deLogicName}"
,
tags
=
{
"${deLogicName}"
},
notes
=
"${byTagParams}${deLogicName}"
)
@
RequestMapping
(
method
=
RequestMethod
.${
reqMtd
},
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}/${deactionCodeName?lower_case}/test"
)
<#
if
de
.
getStorageMode
()==
4
><#
else
>
@
Transactional
</#
if
>
public
ResponseEntity
<
Boolean
>
test
${
deactionCodeName
?
cap_first
}${
byParams
}(${
id_etParams
})
{
${
deCodeName
}
domain
=
${
itemCodeNameLC
}
Mapping
.
toDomain
(${
itemCodeNameLC
}
dto
);
${
parentSetParams
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(${
deCodeNameLC
}
Service
.
test
${
srfmethodname
(
deactionCodeName
)?
cap_first
}(
domain
));
}
</#
if
>
</#
if
>
</#
macro
>
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/annotation/VersionCheck.java.ftl
0 → 100644
浏览文件 @
4f27faa7
<#
ibiztemplate
>
TARGET
=
PSSYSTEM
</#
ibiztemplate
>
package
${
pub
.
getPKGCodeName
()}.
util
.
annotation
;
import
java
.
lang
.
annotation
.
ElementType
;
import
java
.
lang
.
annotation
.
Retention
;
import
java
.
lang
.
annotation
.
RetentionPolicy
;
import
java
.
lang
.
annotation
.
Target
;
@
Retention
(
RetentionPolicy
.
RUNTIME
)
@
Target
({
ElementType
.
METHOD
})
public
@
interface
VersionCheck
{
String
entity
();
String
versionfield
();
}
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/aspect/DEFieldDefaultValueAspect.java.ftl
浏览文件 @
4f27faa7
...
@@ -26,7 +26,7 @@ import java.util.Map;
...
@@ -26,7 +26,7 @@ import java.util.Map;
*
实体属性默认值切面,只有新建(
Create
)时才会填充默认值
*
实体属性默认值切面,只有新建(
Create
)时才会填充默认值
*/
*/
@
Aspect
@
Aspect
@
Order
(
0
)
@
Order
(
5
0
)
@
Component
@
Component
public
class
DEFieldDefaultValueAspect
public
class
DEFieldDefaultValueAspect
{
{
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/aspect/VersionCheckAspect.java.ftl
0 → 100644
浏览文件 @
4f27faa7
<#
ibiztemplate
>
TARGET
=
PSSYSTEM
</#
ibiztemplate
>
package
${
pub
.
getPKGCodeName
()}.
util
.
aspect
;
import
lombok
.
SneakyThrows
;
import
${
pub
.
getPKGCodeName
()}.
util
.
annotation
.
VersionCheck
;
import
${
pub
.
getPKGCodeName
()}.
util
.
domain
.
EntityBase
;
import
${
pub
.
getPKGCodeName
()}.
util
.
errors
.
BadRequestAlertException
;
import
${
pub
.
getPKGCodeName
()}.
util
.
helper
.
RuleUtils
;
import
org
.
aspectj
.
lang
.
JoinPoint
;
import
org
.
aspectj
.
lang
.
annotation
.
Aspect
;
import
org
.
aspectj
.
lang
.
annotation
.
Before
;
import
org
.
springframework
.
core
.
annotation
.
Order
;
import
org
.
springframework
.
expression
.
EvaluationContext
;
import
org
.
springframework
.
expression
.
Expression
;
import
org
.
springframework
.
expression
.
ExpressionParser
;
import
org
.
springframework
.
expression
.
spel
.
standard
.
SpelExpressionParser
;
import
org
.
springframework
.
expression
.
spel
.
support
.
StandardEvaluationContext
;
import
org
.
springframework
.
stereotype
.
Component
;
import
org
.
springframework
.
util
.
ObjectUtils
;
import
org
.
springframework
.
util
.
StringUtils
;
import
java
.
lang
.
reflect
.
Field
;
/**
*
数据库版本检查
*/
@
Aspect
@
Order
(
50
)
@
Component
public
class
VersionCheckAspect
{
private
final
ExpressionParser
parser
=
new
SpelExpressionParser
();
@
SneakyThrows
@
Before
(
"execution(* ${pub.getPKGCodeName()}.*.rest.*.update(..)) && @annotation(versionCheck)"
)
public
void
BeforeUpdate
(
JoinPoint
point
,
VersionCheck
versionCheck
){
Object
[]
args
=
point
.
getArgs
();
Object
id
=
args
[
0
];
Object
dto
=
args
[
1
];
if
(
ObjectUtils
.
isEmpty
(
id
)
||
ObjectUtils
.
isEmpty
(
dto
))
return
;
String
versionField
=
versionCheck
.
versionfield
();
if
(
StringUtils
.
isEmpty
(
versionField
))
return
;
versionCheck
(
versionCheck
,
point
.
getTarget
(),
dto
,
id
);
}
@
SneakyThrows
@
Before
(
"execution(* ${pub.getPKGCodeName()}.*.rest.*.updateBy*(..)) && @annotation(versionCheck)"
)
public
void
BeforeUpdateBy
(
JoinPoint
point
,
VersionCheck
versionCheck
){
Object
[]
args
=
point
.
getArgs
();
Object
id
=
args
[
1
];
Object
dto
=
args
[
2
];
if
(
ObjectUtils
.
isEmpty
(
id
)
||
ObjectUtils
.
isEmpty
(
dto
))
return
;
String
versionField
=
versionCheck
.
versionfield
();
if
(
StringUtils
.
isEmpty
(
versionField
))
return
;
versionCheck
(
versionCheck
,
point
.
getTarget
(),
dto
,
id
);
}
private
void
versionCheck
(
VersionCheck
versionCheck
,
Object
resource
,
Object
dto
,
Object
id
){
EvaluationContext
context
=
new
StandardEvaluationContext
();
context
.
setVariable
(
"dto"
,
dto
);
Expression
newExp
=
parser
.
parseExpression
(
String
.
format
(
"#dto.%s"
,
versionCheck
.
versionfield
()));
Object
newVersion
=
newExp
.
getValue
(
context
);
if
(
ObjectUtils
.
isEmpty
(
newVersion
))
return
;
//
进行版本检查
Object
oldVersion
=
getDBVersion
(
versionCheck
,
getService
(
resource
,
versionCheck
.
entity
()),
id
);
if
(
!ObjectUtils.isEmpty(oldVersion)){
if
(
RuleUtils
.
gt
(
newVersion
,
oldVersion
))
throw
new
BadRequestAlertException
(
"数据已变更,可能后台数据已被修改,请重新加载数据"
,
"VersionCheckAspect"
,
"versionCheck"
);
}
}
/**
*
获取实体服务对象
*
@
param
resource
*
@
param
entity
*
@
return
*/
@
SneakyThrows
private
Object
getService
(
Object
resource
,
String
entity
){
Object
service
=
null
;
Field
[]
fields
=
resource
.
getClass
().
getDeclaredFields
();
for
(
Field
field
:
fields
){
if
(
field
.
getModifiers
()==
1
&&
field
.
getName
().
equalsIgnoreCase
(
String
.
format
(
"%sService"
,
entity
))){
service
=
field
.
get
(
resource
);
break
;
}
}
return
service
;
}
/**
*
获取数据库版本
*
@
param
versionCheck
*
@
param
service
*
@
param
id
*
@
return
*/
@
SneakyThrows
private
Object
getDBVersion
(
VersionCheck
versionCheck
,
Object
service
,
Object
id
){
Object
dbVersion
=
null
;
String
versionField
=
versionCheck
.
versionfield
();
if
(
!ObjectUtils.isEmpty(service)){
EvaluationContext
oldContext
=
new
StandardEvaluationContext
();
oldContext
.
setVariable
(
"service"
,
service
);
oldContext
.
setVariable
(
"id"
,
id
);
Expression
oldExp
=
parser
.
parseExpression
(
"#service.get(#id)"
);
EntityBase
oldEntity
=
oldExp
.
getValue
(
oldContext
,
EntityBase
.
class
);
return
oldEntity
.
get
(
versionField
);
}
return
dbVersion
;
}
}
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/cache/cache/LayeringCache.java.ftl
浏览文件 @
4f27faa7
...
@@ -97,9 +97,11 @@ public class LayeringCache extends AbstractValueAdaptingCache {
...
@@ -97,9 +97,11 @@ public class LayeringCache extends AbstractValueAdaptingCache {
@
Override
@
Override
public
void
put
(
Object
key
,
Object
value
)
{
public
void
put
(
Object
key
,
Object
value
)
{
if
(
value
!=null) {
caffeineCache
.
put
(
key
,
value
);
caffeineCache
.
put
(
key
,
value
);
redisCache
.
put
(
key
,
value
);
redisCache
.
put
(
key
,
value
);
}
}
}
@
Override
@
Override
public
ValueWrapper
putIfAbsent
(
Object
key
,
Object
value
)
{
public
ValueWrapper
putIfAbsent
(
Object
key
,
Object
value
)
{
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/helper/DEFieldCacheMap.java.ftl
浏览文件 @
4f27faa7
...
@@ -95,7 +95,7 @@ public class DEFieldCacheMap {
...
@@ -95,7 +95,7 @@ public class DEFieldCacheMap {
if
(
cacheDEField
.
containsKey
(
className
))
if
(
cacheDEField
.
containsKey
(
className
))
return
cacheDEField
.
get
(
className
);
return
cacheDEField
.
get
(
className
);
else
{
else
{
DEFieldCacheMap
.
getFieldMap
(
cla
zz
);
DEFieldCacheMap
.
getFieldMap
(
cla
ssName
);
return
cacheDEField
.
get
(
className
);
return
cacheDEField
.
get
(
className
);
}
}
}
}
...
@@ -112,7 +112,7 @@ public class DEFieldCacheMap {
...
@@ -112,7 +112,7 @@ public class DEFieldCacheMap {
if
(
cacheDEKeyField
.
containsKey
(
className
))
if
(
cacheDEKeyField
.
containsKey
(
className
))
return
cacheDEKeyField
.
get
(
className
);
return
cacheDEKeyField
.
get
(
className
);
else
{
else
{
DEFieldCacheMap
.
getFieldMap
(
cla
zz
);
DEFieldCacheMap
.
getFieldMap
(
cla
ssName
);
return
cacheDEKeyField
.
get
(
className
);
return
cacheDEKeyField
.
get
(
className
);
}
}
}
}
...
@@ -130,7 +130,7 @@ public class DEFieldCacheMap {
...
@@ -130,7 +130,7 @@ public class DEFieldCacheMap {
if
(
cacheList
.
containsKey
(
className
))
if
(
cacheList
.
containsKey
(
className
))
return
cacheList
.
get
(
className
);
return
cacheList
.
get
(
className
);
else
{
else
{
DEFieldCacheMap
.
getFieldMap
(
cla
zz
);
DEFieldCacheMap
.
getFieldMap
(
cla
ssName
);
return
cacheList
.
get
(
className
);
return
cacheList
.
get
(
className
);
}
}
}
}
...
@@ -158,7 +158,7 @@ public class DEFieldCacheMap {
...
@@ -158,7 +158,7 @@ public class DEFieldCacheMap {
if
(
cacheKey
.
containsKey
(
className
))
if
(
cacheKey
.
containsKey
(
className
))
return
cacheKey
.
get
(
className
);
return
cacheKey
.
get
(
className
);
else
{
else
{
DEFieldCacheMap
.
getFieldMap
(
cla
zz
);
DEFieldCacheMap
.
getFieldMap
(
cla
ssName
);
return
cacheKey
.
get
(
className
);
return
cacheKey
.
get
(
className
);
}
}
}
}
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/rest/AppController.java.ftl
浏览文件 @
4f27faa7
...
@@ -58,6 +58,10 @@ public class AppController {
...
@@ -58,6 +58,10 @@ public class AppController {
appData
.
put
(
"unires"
,
uniRes
);
appData
.
put
(
"unires"
,
uniRes
);
appData
.
put
(
"appmenu"
,
appMenu
);
appData
.
put
(
"appmenu"
,
appMenu
);
appData
.
put
(
"enablepermissionvalid"
,
enablePermissionValid
);
appData
.
put
(
"enablepermissionvalid"
,
enablePermissionValid
);
if
(
curUser
.
getSuperuser
()==
1
)
appData
.
put
(
"enablepermissionvalid"
,
false
);
else
appData
.
put
(
"enablepermissionvalid"
,
enablePermissionValid
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
appData
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
appData
);
}
}
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/security/AuthPermissionEvaluator.java.ftl
浏览文件 @
4f27faa7
...
@@ -3,9 +3,12 @@ TARGET=PSSYSTEM
...
@@ -3,9 +3,12 @@ TARGET=PSSYSTEM
</#
ibiztemplate
>
</#
ibiztemplate
>
package
${
pub
.
getPKGCodeName
()}.
util
.
security
;
package
${
pub
.
getPKGCodeName
()}.
util
.
security
;
import
com
.
baomidou
.
mybatisplus
.
core
.
conditions
.
query
.
QueryWrapper
;
import
lombok
.
SneakyThrows
;
import
${
pub
.
getPKGCodeName
()}.
util
.
annotation
.
DEField
;
import
${
pub
.
getPKGCodeName
()}.
util
.
annotation
.
DEField
;
import
${
pub
.
getPKGCodeName
()}.
util
.
domain
.
EntityBase
;
import
${
pub
.
getPKGCodeName
()}.
util
.
domain
.
EntityBase
;
import
${
pub
.
getPKGCodeName
()}.
util
.
enums
.
DEPredefinedFieldType
;
import
${
pub
.
getPKGCodeName
()}.
util
.
enums
.
DEPredefinedFieldType
;
import
${
pub
.
getPKGCodeName
()}.
util
.
filter
.
QueryWrapperContext
;
import
${
pub
.
getPKGCodeName
()}.
util
.
helper
.
DEFieldCacheMap
;
import
${
pub
.
getPKGCodeName
()}.
util
.
helper
.
DEFieldCacheMap
;
import
org
.
springframework
.
beans
.
factory
.
annotation
.
Value
;
import
org
.
springframework
.
beans
.
factory
.
annotation
.
Value
;
import
org
.
springframework
.
security
.
access
.
PermissionEvaluator
;
import
org
.
springframework
.
security
.
access
.
PermissionEvaluator
;
...
@@ -14,7 +17,10 @@ import org.springframework.security.core.GrantedAuthority;
...
@@ -14,7 +17,10 @@ import org.springframework.security.core.GrantedAuthority;
import
org
.
springframework
.
stereotype
.
Component
;
import
org
.
springframework
.
stereotype
.
Component
;
import
org
.
springframework
.
util
.
ObjectUtils
;
import
org
.
springframework
.
util
.
ObjectUtils
;
import
java
.
io
.
Serializable
;
import
java
.
io
.
Serializable
;
import
java
.
lang
.
reflect
.
ParameterizedType
;
import
java
.
lang
.
reflect
.
Type
;
import
java
.
util
.*;
import
java
.
util
.*;
import
java
.
util
.
function
.
Consumer
;
/**
/**
*
spring
security
权限管理类
*
spring
security
权限管理类
...
@@ -26,44 +32,144 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
...
@@ -26,44 +32,144 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
@
Value
(
"${r'${ibiz.enablePermissionValid:false}'}"
)
@
Value
(
"${r'${ibiz.enablePermissionValid:false}'}"
)
boolean
enablePermissionValid
;
//
是否开启权限校验
boolean
enablePermissionValid
;
//
是否开启权限校验
/**
/**
*
实体行为
鉴权
*
服务接口
鉴权
*
@
param
authentication
*
@
param
authentication
用户
*
@
param
entity
*
@
param
entity
实体
*
@
param
action
*
@
param
action
操作
*
@
return
*
@
return
*/
*/
@
Override
@
Override
@
SneakyThrows
public
boolean
hasPermission
(
Authentication
authentication
,
Object
entity
,
Object
action
)
{
public
boolean
hasPermission
(
Authentication
authentication
,
Object
entity
,
Object
action
)
{
if
(
!enablePermissionValid)
//
未开启权限校验、超级管理员则不进行权限检查
return
true
;
if
(
AuthenticationUser
.
getAuthenticationUser
().
getSuperuser
()==
1
||
!enablePermissionValid)
Object
principal
=
authentication
.
getPrincipal
();
if
(
ObjectUtils
.
isEmpty
(
principal
))
return
false
;
AuthenticationUser
authenticationUser
=
(
AuthenticationUser
)
authentication
.
getPrincipal
();
if
(
authenticationUser
.
getSuperuser
()==
1
)
return
true
;
return
true
;
String
strAction
=
String
.
valueOf
(
action
);
String
strAction
=
String
.
valueOf
(
action
);
Set
<
String
>
userAuthorities
=
getAuthorities
(
authentication
,
strAction
);
Set
<
String
>
userAuthorities
=
getAuthorities
(
authentication
,
strAction
);
if
(
userAuthorities
.
size
()==
0
)
if
(
userAuthorities
.
size
()==
0
)
return
false
;
return
false
;
//
拥有全部数据访问权限时,则跳过权限检查
if
(
isAllData
(
strAction
,
userAuthorities
)){
if
(
isAllData
(
strAction
,
userAuthorities
)){
return
true
;
return
true
;
}
}
if
(
entity
instanceof
ArrayList
){
if
(
entity
instanceof
ArrayList
){
List
<
EntityBase
>
entities
=
(
List
<
EntityBase
>)
entity
;
List
<
EntityBase
>
entities
=
(
List
<
EntityBase
>)
entity
;
for
(
EntityBase
entityBase
:
entities
){
for
(
EntityBase
entityBase
:
entities
){
boolean
result
=
actionValid
(
entityBase
,
strAction
,
userAuthorities
);
boolean
result
=
actionValid
(
entityBase
,
strAction
,
userAuthorities
,
authenticationUser
);
if
(
!result){
if
(
!result){
return
false
;
return
false
;
}
}
}
}
}
}
else
if
(
entity
instanceof
QueryWrapperContext
){
QueryWrapperContext
queryWrapperContext
=
(
QueryWrapperContext
)
entity
;
setPermissionCondToSearchContext
(
getEntity
(
queryWrapperContext
),
queryWrapperContext
,
userAuthorities
,
authenticationUser
);
}
else
{
else
{
EntityBase
entityBase
=
(
EntityBase
)
entity
;
EntityBase
entityBase
=
(
EntityBase
)
entity
;
return
actionValid
(
entityBase
,
strAction
,
userAuthorities
);
return
actionValid
(
entityBase
,
strAction
,
userAuthorities
,
authenticationUser
);
}
}
return
true
;
return
true
;
}
}
/**
*
获取实体信息
*
@
param
qc
*
@
return
*/
@
SneakyThrows
private
EntityBase
getEntity
(
QueryWrapperContext
qc
){
EntityBase
entity
=
null
;
Type
type
=
qc
.
getClass
().
getGenericSuperclass
();
if
(
type
instanceof
ParameterizedType
){
ParameterizedType
parameterizedType
=
(
ParameterizedType
)
qc
.
getClass
().
getGenericSuperclass
();
Type
[]
typeArr
=
parameterizedType
.
getActualTypeArguments
();
if
(
typeArr
.
length
>
0
){
Class
<
EntityBase
>
entityClass
=
(
Class
)
typeArr
[
0
];
return
entityClass
.
newInstance
();
}
}
return
entity
;
}
/**
*
在
searchContext
中拼接权限条件
*
@
param
entity
实体
*
@
param
qc
查询上下文
*
@
param
userAuthorities
用户权限
*
@
param
authenticationUser
当前用户
*/
@
SneakyThrows
private
void
setPermissionCondToSearchContext
(
EntityBase
entity
,
QueryWrapperContext
qc
,
Set
<
String
>
userAuthorities
,
AuthenticationUser
authenticationUser
){
if
(
entity
==
null
)
return
;
Map
<
String
,
String
>
permissionField
=
getPermissionField
(
entity
);//
获取组织、部门预置属性
String
orgField
=
permissionField
.
get
(
"orgfield"
);
String
orgDeptField
=
permissionField
.
get
(
"orgsecfield"
);
String
createManField
=
permissionField
.
get
(
"createmanfield"
);
Map
<
String
,
Set
<
String
>>
userInfo
=
authenticationUser
.
getOrgInfo
();
Set
<
String
>
orgParent
=
userInfo
.
get
(
"parentorg"
);
Set
<
String
>
orgChild
=
userInfo
.
get
(
"suborg"
);
Set
<
String
>
orgDeptParent
=
userInfo
.
get
(
"parentdept"
);
Set
<
String
>
orgDeptChild
=
userInfo
.
get
(
"subdept"
);
Set
<
String
>
userOrg
=
new
HashSet
<>();
Set
<
String
>
userOrgDept
=
new
HashSet
<>();
Set
<
String
>
userCreateMan
=
new
HashSet
<>();
for
(
String
authority
:
userAuthorities
){
if
(
authority
.
endsWith
(
"curorg"
)){
//
本单位
userOrg
.
add
(
authenticationUser
.
getOrgid
());
}
else
if
(
authority
.
endsWith
(
"porg"
)){//
上级单位
userOrg
.
addAll
(
orgParent
);
}
else
if
(
authority
.
endsWith
(
"sorg"
)){//
下级单位
userOrg
.
addAll
(
orgChild
);
}
else
if
(
authority
.
endsWith
(
"curorgdept"
)){//
本部门
userOrgDept
.
add
(
authenticationUser
.
getMdeptid
());
}
else
if
(
authority
.
endsWith
(
"porgdept"
)){//
上级部门
userOrgDept
.
addAll
(
orgDeptParent
);
}
else
if
(
authority
.
endsWith
(
"sorgdept"
)){//
下级部门
userOrgDept
.
addAll
(
orgDeptChild
);
}
else
if
(
authority
.
endsWith
(
"createman"
)){
userCreateMan
.
add
(
authority
);
}
}
if
(
userOrg
.
size
()==
0
&&
userOrgDept
.
size
()==
0
&&
userCreateMan
.
size
()==
0
){
qc
.
getSelectCond
().
apply
(
"1<>1"
);
}
else
{
Consumer
<
QueryWrapper
>
consumer
=
qw
->
{
if
(
userOrg
.
size
()>
0
){
Consumer
<
QueryWrapper
>
org
=
orgQw
->
{
orgQw
.
in
(
orgField
,
userOrg
);
};
qw
.
or
(
org
);
}
if
(
userOrgDept
.
size
()>
0
){
Consumer
<
QueryWrapper
>
dept
=
deptQw
->
{
deptQw
.
in
(
orgDeptField
,
userOrgDept
);
};
qw
.
or
(
dept
);
}
if
(
userCreateMan
.
size
()>
0
){
Consumer
<
QueryWrapper
>
createMan
=
createManQw
->
{
createManQw
.
eq
(
createManField
,
authenticationUser
.
getUserid
());
};
qw
.
or
(
createMan
);
}
};
qc
.
getSelectCond
().
and
(
consumer
);
}
}
@
Override
@
Override
public
boolean
hasPermission
(
Authentication
authentication
,
Serializable
id
,
String
action
,
Object
params
)
{
public
boolean
hasPermission
(
Authentication
authentication
,
Serializable
id
,
String
action
,
Object
params
)
{
...
@@ -109,13 +215,12 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
...
@@ -109,13 +215,12 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
*
@
param
userAuthorities
*
@
param
userAuthorities
*
@
return
*
@
return
*/
*/
private
boolean
actionValid
(
EntityBase
entity
,
String
action
,
Set
<
String
>
userAuthorities
){
private
boolean
actionValid
(
EntityBase
entity
,
String
action
,
Set
<
String
>
userAuthorities
,
AuthenticationUser
authenticationUser
){
Map
<
String
,
String
>
permissionField
=
getPermissionField
(
entity
);//
获取组织、部门预置属性
Map
<
String
,
String
>
permissionField
=
getPermissionField
(
entity
);//
获取组织、部门预置属性
String
orgField
=
permissionField
.
get
(
"orgfield"
);
String
orgField
=
permissionField
.
get
(
"orgfield"
);
String
orgDeptField
=
permissionField
.
get
(
"orgsecfield"
);
String
orgDeptField
=
permissionField
.
get
(
"orgsecfield"
);
String
createManField
=
permissionField
.
get
(
"createmanfield"
);
String
createManField
=
permissionField
.
get
(
"createmanfield"
);
AuthenticationUser
authenticationUser
=
AuthenticationUser
.
getAuthenticationUser
();
Map
<
String
,
Set
<
String
>>
userInfo
=
authenticationUser
.
getOrgInfo
();
Map
<
String
,
Set
<
String
>>
userInfo
=
authenticationUser
.
getOrgInfo
();
Set
<
String
>
orgParent
=
userInfo
.
get
(
"parentorg"
);
Set
<
String
>
orgParent
=
userInfo
.
get
(
"parentorg"
);
Set
<
String
>
orgChild
=
userInfo
.
get
(
"suborg"
);
Set
<
String
>
orgChild
=
userInfo
.
get
(
"suborg"
);
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录