XDM,可以把这三个循环封装一下吗?
if (rowBefore == null && rowAfter != null) {
jsonArrayAfter = JSON.parseArray(rowAfter);
for (Object obj : jsonArrayAfter) {
for (Map.Entry<String, Object> stringObjectEntry : ((JSONObject) obj).entrySet()) {
DifferenceOfFieldsVO fieldsVO = new DifferenceOfFieldsVO();
fieldsVO.setTableName(tableName);
fieldsVO.setId(id);
fieldsVO.setFieldName(stringObjectEntry.getKey());
fieldsVO.setFieldAfter(String.valueOf(stringObjectEntry.getValue()));
list.add(fieldsVO);
}
}
} else if (rowBefore != null && rowAfter == null) {//delete
jsonArrayBefore = JSON.parseArray(rowBefore);
for (Object obj : jsonArrayBefore) {
for (Map.Entry<String, Object> stringObjectEntry : ((JSONObject) obj).entrySet()) {
DifferenceOfFieldsVO fieldsVO = new DifferenceOfFieldsVO();
fieldsVO.setTableName(tableName);
fieldsVO.setId(id);
fieldsVO.setFieldName(stringObjectEntry.getKey());
fieldsVO.setFieldBefore(String.valueOf(stringObjectEntry.getValue()));
list.add(fieldsVO);
}
}
} else if (rowBefore != null && rowAfter != null) {//update
jsonArrayBefore = JSON.parseArray(rowBefore);
for (int i = 0; i < jsonArrayBefore.size(); i++) {
JSONObject beforeObject = (JSONObject)jsonArrayBefore.get(i);
JSONObject afterObject = (JSONObject)jsonArrayBefore.get(i);
for (Map.Entry<String, Object> beforeEntry : beforeObject.entrySet()) {
DifferenceOfFieldsVO fieldsVO = new DifferenceOfFieldsVO();
fieldsVO.setTableName(tableName);
fieldsVO.setId(id);
fieldsVO.setFieldName(beforeEntry.getKey());
fieldsVO.setFieldBefore(String.valueOf(beforeEntry.getValue()));
fieldsVO.setFieldAfter(String.valueOf( afterObject.get(beforeEntry.getKey())));
list.add(fieldsVO);
}
}
}