---修改数据日志修改记录逻辑
This commit is contained in:
@ -27,6 +27,8 @@ import java.util.Map.Entry;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
import java.util.stream.Collector;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -723,6 +725,27 @@ public class DataLogTools {
|
|||||||
return null;
|
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: 保存数据日志
|
* @Description: 保存数据日志
|
||||||
@ -734,20 +757,29 @@ public class DataLogTools {
|
|||||||
initTable(tableName);
|
initTable(tableName);
|
||||||
String sql = parseSql(SQL_INSERT, tableName);
|
String sql = parseSql(SQL_INSERT, tableName);
|
||||||
List<List<JdbcParam>> batchParams = CollectionUtils.newArrayList();
|
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();
|
List<JdbcParam> params = CollectionUtils.newArrayList();
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getId()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getId()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getFlowId()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getFlowId()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getPid()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getPid()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getEntityClassName()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getEntityClassName()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class, log.getBusName()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class, item.getBusName()));
|
||||||
params.add(JdbcParam.of(Types.BIGINT,long.class, log.getEntityId()));
|
params.add(JdbcParam.of(Types.BIGINT,long.class, item.getEntityId()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,JSON.toJSONString(log.getFieldChanges())));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class,JSON.toJSONString(item.getFieldChanges())));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,log.getOperationType().name()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class,item.getOperationType().name()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,long.class,log.getOperatorId()));
|
params.add(JdbcParam.of(Types.VARCHAR,long.class,item.getOperatorId()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,log.getOperatorName()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class,item.getOperatorName()));
|
||||||
params.add(JdbcParam.of(Types.TIMESTAMP,Timestamp.class,log.getOperationTime()));
|
params.add(JdbcParam.of(Types.TIMESTAMP,Timestamp.class,item.getOperationTime()));
|
||||||
params.add(JdbcParam.of(Types.VARCHAR,String.class,log.getOperationIp()));
|
params.add(JdbcParam.of(Types.VARCHAR,String.class,item.getOperationIp()));
|
||||||
batchParams.add(params);
|
batchParams.add(params);
|
||||||
}
|
}
|
||||||
executeBatch(sql, batchParams);
|
executeBatch(sql, batchParams);
|
||||||
|
|||||||
@ -7,7 +7,7 @@ spring:
|
|||||||
main:
|
main:
|
||||||
allow-bean-definition-overriding: true
|
allow-bean-definition-overriding: true
|
||||||
profiles:
|
profiles:
|
||||||
active: remote
|
active: dev
|
||||||
cloud:
|
cloud:
|
||||||
nacos: #nacos监控
|
nacos: #nacos监控
|
||||||
config:
|
config:
|
||||||
|
|||||||
Reference in New Issue
Block a user