Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
d1293723
提交
d1293723
编写于
2月 22, 2021
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
实体数据同步逻辑优化(remove)
上级
71269cc9
变更
2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
45 行增加
和
6 行删除
+45
-6
RocketMQListenerProcessor.java.ftl
...PATH%/core/util/config/RocketMQListenerProcessor.java.ftl
+4
-0
RocketMQAspect.java.ftl
...in/java/%SYS_PKGPATH%/util/aspect/RocketMQAspect.java.ftl
+41
-6
未找到文件。
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/util/config/RocketMQListenerProcessor.java.ftl
浏览文件 @
d1293723
...
@@ -90,8 +90,12 @@ public class RocketMQListenerProcessor implements MessageListenerOrderly {
...
@@ -90,8 +90,12 @@ public class RocketMQListenerProcessor implements MessageListenerOrderly {
<#assign inputAction=srfmethodname(dataSync.getInTestPSDEAction().codeName)>
<#assign inputAction=srfmethodname(dataSync.getInTestPSDEAction().codeName)>
if ("${dataSyncCodeName}".equalsIgnoreCase(tags)) {
if ("${dataSyncCodeName}".equalsIgnoreCase(tags)) {
${pub.getPKGCodeName()}.core.${dataEntity.getPSSystemModule().getCodeName()?lower_case}.domain.${entityName} domain = JSON.parseObject(new String(body),${pub.getPKGCodeName()}.core.${dataEntity.getPSSystemModule().getCodeName()?lower_case}.domain.${entityName}.class);
${pub.getPKGCodeName()}.core.${dataEntity.getPSSystemModule().getCodeName()?lower_case}.domain.${entityName} domain = JSON.parseObject(new String(body),${pub.getPKGCodeName()}.core.${dataEntity.getPSSystemModule().getCodeName()?lower_case}.domain.${entityName}.class);
<#if inputAction.getCodeName()?lower_case == '
get
' || inputAction.getCodeName()?lower_case == '
remove
'>
${entityName}Service.${inputAction}(domain.get${srfcaseformat(keyfield.codeName,'
l_u2lC
')?cap_first}());
<#else>
${entityName}Service.${inputAction}(domain);
${entityName}Service.${inputAction}(domain);
}
}
</#if>
<#else>
<#else>
log.info("接收到[{}]消息,但未配置实体输入过滤行为,消息将被忽略。"+new String(msg.getBody()));
log.info("接收到[{}]消息,但未配置实体输入过滤行为,消息将被忽略。"+new String(msg.getBody()));
</#if>
</#if>
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/aspect/RocketMQAspect.java.ftl
浏览文件 @
d1293723
...
@@ -33,6 +33,9 @@ package ${pub.getPKGCodeName()}.util.aspect;
...
@@ -33,6 +33,9 @@ package ${pub.getPKGCodeName()}.util.aspect;
import
lombok
.
extern
.
slf4j
.
Slf4j
;
import
lombok
.
extern
.
slf4j
.
Slf4j
;
import
${
pub
.
getPKGCodeName
()}.
util
.
domain
.
EntityBase
;
import
${
pub
.
getPKGCodeName
()}.
util
.
domain
.
EntityBase
;
import
${
pub
.
getPKGCodeName
()}.
util
.
errors
.
BadRequestAlertException
;
import
${
pub
.
getPKGCodeName
()}.
util
.
helper
.
DEFieldCacheMap
;
import
java
.
lang
.
reflect
.
Method
;
import
com
.
alibaba
.
fastjson
.
JSON
;
import
com
.
alibaba
.
fastjson
.
JSON
;
import
org
.
apache
.
rocketmq
.
client
.
producer
.
DefaultMQProducer
;
import
org
.
apache
.
rocketmq
.
client
.
producer
.
DefaultMQProducer
;
import
org
.
apache
.
rocketmq
.
client
.
producer
.
SendResult
;
import
org
.
apache
.
rocketmq
.
client
.
producer
.
SendResult
;
...
@@ -117,19 +120,51 @@ public class RocketMQAspect
...
@@ -117,19 +120,51 @@ public class RocketMQAspect
* @return
* @return
*/
*/
private Object getEntity(JoinPoint point) {
private Object getEntity(JoinPoint point) {
Object entity=null;
String action=point.getSignature().getName();
String action=point.getSignature().getName();
Object [] args = point.getArgs();
Object [] args = point.getArgs();
if(ObjectUtils.isEmpty(args) || args.length==0 || StringUtils.isEmpty(action)) {
if(ObjectUtils.isEmpty(args) || args.length==0 || StringUtils.isEmpty(action)) {
return
entity
;
return
null
;
}
}
Object arg=args[0];
Object arg=args[0];
if(arg instanceof EntityBase || arg instanceof List) {
if(arg instanceof EntityBase || arg instanceof List) {
return arg;
return arg;
}
}
else {
else {
return null;
Object service = point.getTarget();
EntityBase entity = getEntity(service.getClass());
String id = DEFieldCacheMap.getDEKeyField(entity.getClass());
if(StringUtils.isEmpty(id)) {
log.debug("无法获取实体主键属性[{}]",entity.getClass().getSimpleName());
return null;
}
entity.set(id, arg);
return entity;
}
}
/**
* 获取实体
*
* @param service
* @return
*/
private EntityBase getEntity(Class service) {
Method[] methods = service.getDeclaredMethods();
for (Method method : methods) {
for (Class cls : method.getParameterTypes()) {
try {
Object arg = cls.newInstance();
if (arg instanceof EntityBase) {
return (EntityBase) arg;
}
} catch (Exception e) {
}
}
}
if(!ObjectUtils.isEmpty(service.getSuperclass()) && !service.getSuperclass().getName().equals(Object.class.getName())) {
return getEntity(service.getSuperclass());
}
}
throw new BadRequestAlertException("获取实体信息失败", "RocketMQAspect", "getEntity");
}
}
/**
/**
...
@@ -167,19 +202,19 @@ public class RocketMQAspect
...
@@ -167,19 +202,19 @@ public class RocketMQAspect
<#assign isUpdate=updateArray?seq_contains(type)>
<#assign isUpdate=updateArray?seq_contains(type)>
<#assign isDelete=deleteArray?seq_contains(type)>
<#assign isDelete=deleteArray?seq_contains(type)>
<#if isCreate>
<#if isCreate>
<#assign result="execution(* "+pub.getPKGCodeName()+".core.*.service.
*"+dataEntity.codeName+"*
.create*(..))">
<#assign result="execution(* "+pub.getPKGCodeName()+".core.*.service.
I"+dataEntity.codeName+"Service
.create*(..))">
</#if>
</#if>
<#if isUpdate>
<#if isUpdate>
<#if result!="">
<#if result!="">
<#assign result=result+"||">
<#assign result=result+"||">
</#if>
</#if>
<#assign result=result+"execution(* "+pub.getPKGCodeName()+".core.*.service.
*"+dataEntity.codeName+"*
.update*(..))">
<#assign result=result+"execution(* "+pub.getPKGCodeName()+".core.*.service.
I"+dataEntity.codeName+"Service
.update*(..))">
</#if>
</#if>
<#if isDelete>
<#if isDelete>
<#if result!="">
<#if result!="">
<#assign result=result+"||">
<#assign result=result+"||">
</#if>
</#if>
<#assign result=result+"execution(* "+pub.getPKGCodeName()+".core.*.service.
*"+dataEntity.codeName+"*
.remove*(..))">
<#assign result=result+"execution(* "+pub.getPKGCodeName()+".core.*.service.
I"+dataEntity.codeName+"Service
.remove*(..))">
</#if>
</#if>
</#if>
</#if>
<#return "("+result+")">
<#return "("+result+")">
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录