在项目中用户希望能够看到各个阶段进行了什么操作,通过下面的方法可以实现这一要求
部分代码没有添加,可以自己实现,下面是功能的主体部分。
entity是要修改的字符串的名字,a是修改前的值,b是修改后的值,
public static final String generateLog(String entity, Object a, Object b) {
if (a == null || a.toString() == null || a.toString().trim().equals("")) {
if (b == null || b.toString() == null || b.toString().trim().equals("")) {
return ""; // null -> null
} else {
return "添加[" + entity + "]:" + format(b) + "\n"; // null -> b
}
} else /* a != null */ {
if (b == null || b.toString() == null || b.toString().trim().equals("")) {
return "删除[" + entity + "]:" + format(a) + "\n"; // a -> null
} else if (format(a).equals(format(b))) {
return ""; // not change
} else {
return "修改[" + entity + "]:" + format(a) + " to " + format(b) + "\n"; // a -> b
}
}
}
private static final String format(Object o) {
if (o instanceof java.lang.String) {
return o.toString();
} else if (o instanceof java.util.Date) {
return DateUtils.parse((java.util.Date) o, "yyyy-MM-dd HH:mm:ss");
} else {
return o.toString();
}
}