public void saveChangeVolue(Object before, Object after,String log) {
StringBuffer alterContent=new StringBuffer();
//before和after都不为空时 --属性变化
try {
if (before != null && after != null) {
//获取class字节码
Class<?> classBefor = ();
Class<?> classAfter = ();
//获取所有属性
Field[] fsBefor = ();
Field[] fsAfter = ();
//获取类名
String typeName = getClassName(().getName());
for (Field bField : fsBefor) {
//设置对象中成员 属性private为可读
(true);
for (Field aField : fsAfter) {
(true);
Id id = ();
//临时解决。后期再改。。
if(((),"serialVersionUID")){
continue;
}
PropertyDescriptor bpd = new PropertyDescriptor((), classBefor);
if (((), ()) && id == null) {
// 获得属性值
Method bmethod = ();
//构建一个属性描述器 把对应属性 propertyName 的 get 和 set 方法保存到属性描述器中
PropertyDescriptor apd = new PropertyDescriptor((), classAfter);
//从属性描述器中获取 get 方法
Method amethod = ();
// 获得属性类型
if (().toString().equals("class ")
&& ().toString().equals("class ")) {
// 比较对象前后的属性值时候不相同
if (!(((String) (before)),
((String) (after)))) {
DataChangeRecord dto = new DataChangeRecord();
// 判断转换前后值都为null或空时,不需要记录变更数据
if(((String) (before))||((String) (after))){
//记录到需要保存的表中,如记录表
()//字段名
//修改的字段
if (((()))) {
("编辑"+(())+','+(String) (before)+"为"+(String) (after));
}
(());
//(operateStatus);
(());
(());
("1");
(dto);
}
}
}else if(().toString().equals("class ")){
if (!(((before)),
((after)))) {
// 判断转换前后值都为null或空时,不需要记录变更数据
if((before)!=null||(after)!=null){
/ /实体
if((before)!=null){
(((BigDecimal)(before)).toPlainString());
("编辑"+(())+','+((BigDecimal)(before)).toPlainString());
}
if ((before)!=null && (after)!=null) {
("为"+((BigDecimal)(after)).toPlainString());
}
//保存数据到数据库
//TODO
}
}
} else {
if (!(((before)),
((after)))) {
// 判断转换前后值都为null或空时,不需要记录变更数据
if((before)!=null||(after)!=null){
DataChangeRecord dto = new DataChangeRecord();
if((before)!=null){
(((before)));
//修改的字段
("编辑"+(())+','+((before)));
}
if ((before)!=null && (after)!=null) {
("为"+((after)));
}
//保存数据到数据库
//TODO
}
}
}
}
}
}
//before为null,after不为null --新增
} else if (after != null && before == null) {
Class<?> classAfter = ();
Field[] fsAfter = ();
String typeName = getClassName(().getName());
for (Field aField : fsAfter) {
(true);
Id id = ();
PropertyDescriptor apd = new PropertyDescriptor((), classAfter);
Method amethod = ();
if (().toString().equals("class ") && id == null) {
// 判断转换前后值都为null或空时,不需要记录变更数据
if(((String) (after))){
DataChangeRecord dto = new DataChangeRecord();
// 是否是字典属性,是:保存字典对应的名称
((String) (after));
(typeName);
(());
//(operateStatus);
(());
(());
("2");
(dto);
}
}else if(().toString().equals("class ") && id == null){
// 判断转换前后值都为null或空时,不需要记录变更数据
if((after)!=null){
//保存数据到数据库
//TODO
}
} else if (id == null) {
// 判断转换前后值都为null或空时,不需要记录变更数据
if((((after)))){
//保存数据到数据库
//TODO
}
}
}
//before不为null,after为null --删除
} else if (after == null && before != null) {
Class<?> classBefore = ();
Field[] fsBefore = ();
String typeName = getClassName(().getName());
for (Field bField : fsBefore) {
(true);
Id id = ();
PropertyDescriptor bpd = new PropertyDescriptor((), classBefore);
Method bmethod = ();
if (().toString().equals("class ") && id == null) {
if(((String) (before))){
//保存数据到数据库
//TODO
}
}else if(().toString().equals("class ") && id == null){
// 判断转换前后值都为null或空时,不需要记录变更数据
if((before)!=null){
//保存数据到数据库
//TODO
}
} else if (id == null) {
// 判断转换前后值都为null或空时,不需要记录变更数据
if((((before)))){
//保存数据到数据库
//TODO
}
}
}
}
} catch (Exception e) {
();
}
/**
* 插入数据库操作
*/
if(()>0){
Field afterField=null;
Field beforeField=null;
try{
afterField = ().getDeclaredField("objectid");
(true);
beforeField=().getDeclaredField("objectid");
(true);
if(((after).toString(), (before).toString())){
insertBehavior(behaviorDto,userInfo);
}
} catch (Exception e) {
();
}
}
}