---修改数据日志修改记录逻辑
This commit is contained in:
@ -27,6 +27,8 @@ import java.util.Map.Entry;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collector;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -723,6 +725,27 @@ public class DataLogTools {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: 判断是否有子表数据日志
|
||||
* @param item
|
||||
* @param pidMap
|
||||
* @return boolean 返回类型
|
||||
*/
|
||||
private static boolean hasChild(DataChangeLog item,Map<String, List<DataChangeLog>> pidMap) {
|
||||
if(!pidMap.containsKey(item.getId())) {
|
||||
return false;
|
||||
}
|
||||
boolean flag = false;
|
||||
List<DataChangeLog> childs = pidMap.get(item.getId());
|
||||
for (DataChangeLog child : childs) {
|
||||
if(child.hasFieldChanges() || hasChild(child,pidMap)) {
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 保存数据日志
|
||||
@ -734,20 +757,29 @@ public class DataLogTools {
|
||||
initTable(tableName);
|
||||
String sql = parseSql(SQL_INSERT, tableName);
|
||||
List<List<JdbcParam>> batchParams = CollectionUtils.newArrayList();
|
||||
for (DataChangeLog log : logs) {
|
||||
Map<String, List<DataChangeLog>> pidMap = logs.stream().collect(Collectors.groupingBy(DataChangeLog::getPid));
|
||||
|
||||
|
||||
|
||||
for (DataChangeLog item : logs) {
|
||||
//没有改变的属性,且没有子表修改时跳过
|
||||
if(!item.hasFieldChanges() && !hasChild(item, pidMap)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
List<JdbcParam> params = CollectionUtils.newArrayList();
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getFlowId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getPid()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getEntityClassName()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getBusName()));
|
||||
params.add(JdbcParam.of(Types.BIGINT,long.class, log.getEntityId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,JSON.toJSONString(log.getFieldChanges())));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,log.getOperationType().name()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,long.class,log.getOperatorId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,log.getOperatorName()));
|
||||
params.add(JdbcParam.of(Types.TIMESTAMP,Timestamp.class,log.getOperationTime()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,log.getOperationIp()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getFlowId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getPid()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getEntityClassName()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getBusName()));
|
||||
params.add(JdbcParam.of(Types.BIGINT,long.class, item.getEntityId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,JSON.toJSONString(item.getFieldChanges())));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,item.getOperationType().name()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,long.class,item.getOperatorId()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,item.getOperatorName()));
|
||||
params.add(JdbcParam.of(Types.TIMESTAMP,Timestamp.class,item.getOperationTime()));
|
||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,item.getOperationIp()));
|
||||
batchParams.add(params);
|
||||
}
|
||||
executeBatch(sql, batchParams);
|
||||
|
||||
@ -7,7 +7,7 @@ spring:
|
||||
main:
|
||||
allow-bean-definition-overriding: true
|
||||
profiles:
|
||||
active: remote
|
||||
active: dev
|
||||
cloud:
|
||||
nacos: #nacos监控
|
||||
config:
|
||||
|
||||
Reference in New Issue
Block a user