提交 bbc13563 编写于 作者: zhouweidong's avatar zhouweidong

自定义行为service扩展

上级 34c74684
<#ibiztemplate>
TARGET=PSDATAENTITY
</#ibiztemplate>
<#comment>判断当前实体是否包含自定义行为</#comment>
<#assign hasServiceEx=false>
<#if item.getAllPSDEActions()??>
<#list item.getAllPSDEActions() as deaction>
<#if deaction.getActionType()=='USERCUSTOM'>
<#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.extension.service;
import ${pub.getPKGCodeName()}.core.${item.getPSSystemModule().getCodeName()?lower_case}.service.impl.${item.codeName}ServiceImpl;
/**
* 实体[${item.getLogicName()}] 自定义服务对象
*/
@Slf4j
@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 de.getAllPSDEActions()??>
<#list de.getAllPSDEActions() as deAction>
<#comment>实体行为附加逻辑</#comment>
<#if deaction.getActionType()=='USERCUSTOM' && deAction.getPSDEActionLogics()??>
<#list deAction.getPSDEActionLogics() as deActionLogic>
<#assign deLogic=deActionLogic.getPSDELogic()>
<@importDELogic deLogic />
</#list>
</#if>
</#list>
</#if>
<#comment>输出实体行为</#comment>
<#if item.getAllPSDEActions()??>
<#list item.getAllPSDEActions() as deaction>
<#if deaction.getActionType()=='USERCUSTOM'>
@Override
@Transactional
public ${item.getCodeName()} ${srfmethodname(deaction.getCodeName())}(${item.getCodeName()} et) {
<#comment>附加数据逻辑-操作前</#comment>
<@addBoforeLogic deaction/>
<#comment>附加数据逻辑-操作后</#comment>
<@addAfterLogic deaction/>
//自定义代码
return et;
}
</#if>
</#list>
</#if>
}
</#if>
<#comment>附加逻辑-操作前</#comment>
<#macro addBoforeLogic deaction>
<#if deaction.getPSDEActionLogics()??>
<#list deaction.getPSDEActionLogics() as actionlogic>
<#if actionlogic.getAttachMode()=='BEFORE' && actionlogic.isValid()==true>
<#if actionlogic.isInternalLogic()>
${actionlogic.getPSDELogic().getCodeName()?lower_case}Logic.execute(et);
</#if>
</#if>
</#list>
</#if>
</#macro>
<#comment>附加逻辑-操作后</#comment>
<#macro addAfterLogic deaction>
<#if deaction.getPSDEActionLogics()??>
<#list deaction.getPSDEActionLogics() as actionlogic>
<#if actionlogic.getAttachMode()=='AFTER' && actionlogic.isValid()==true>
<#if actionlogic.isInternalLogic()>
${actionlogic.getPSDELogic().getCodeName()?lower_case}Logic.execute(et);
</#if>
</#if>
</#list>
</#if>
</#macro>
<#macro importDELogic deLogic>
<#if !P.exists('DELOGIC',deLogic.getCodeName())>
@Autowired
@Lazy
private ${pub.getPKGCodeName()}.core.${de.getPSSystemModule().getCodeName()?lower_case}.service.logic.I${de.getCodeName()}${deLogic.codeName}Logic ${deLogic.getCodeName()?lower_case}Logic;
</#if>
</#macro>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册