in bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/interceptor/AuditingInterceptor.java [63:91]
public Object intercept(Invocation invocation) throws Throwable {
MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0];
SqlCommandType sqlCommandType = mappedStatement.getSqlCommandType();
// Get Entity Object
Object parameter = invocation.getArgs()[1];
log.debug("sqlCommandType {}", sqlCommandType);
if (SqlCommandType.INSERT == sqlCommandType || SqlCommandType.UPDATE == sqlCommandType) {
Collection<Object> objects;
if (parameter instanceof MapperMethod.ParamMap) {
MapperMethod.ParamMap<Object> paramMap = ((MapperMethod.ParamMap<Object>) parameter);
if (!paramMap.containsKey("param1") && paramMap.containsKey("arg0")) {
objects = ((Collection<Object>) paramMap.get("arg0"));
} else if (paramMap.get("param1") instanceof Collection) {
objects = ((Collection<Object>) paramMap.get("param1"));
} else {
objects = Collections.singletonList(paramMap.get("param1"));
}
} else {
objects = Collections.singletonList(parameter);
}
for (Object o : objects) {
setAuditFields(o, sqlCommandType);
}
}
return invocation.proceed();
}