---修复修改时子表没有保存成功
This commit is contained in:
@ -1,5 +1,4 @@
|
|||||||
package com.pictc.utils;
|
package com.pictc.utils;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
@ -671,10 +670,18 @@ public class DataLogTools {
|
|||||||
ids.add(idValue);
|
ids.add(idValue);
|
||||||
DataChangeLog datalog = createLog(join.getTargetClass(),type,parent);
|
DataChangeLog datalog = createLog(join.getTargetClass(),type,parent);
|
||||||
Object old = findById(join.getTargetClass(),idValue);
|
Object old = findById(join.getTargetClass(),idValue);
|
||||||
mapper.updateById(joinTable.toEntity(item));
|
|
||||||
saveAttrs(joinTable,item);
|
saveAttrs(joinTable,item);
|
||||||
|
if(old==null) {
|
||||||
|
datalog.setOperationType(OperationType.INSERT);
|
||||||
|
mapper.insert(joinTable.toEntity(item));
|
||||||
|
buildFields(datalog,joinTable,item,null);
|
||||||
|
continue;
|
||||||
|
}else {
|
||||||
|
datalog.setOperationType(OperationType.UPDATE);
|
||||||
|
mapper.updateById(joinTable.toEntity(item));
|
||||||
buildFields(datalog,joinTable,item,old);
|
buildFields(datalog,joinTable,item,old);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//删除旧数据
|
//删除旧数据
|
||||||
if(oldList!=null) {
|
if(oldList!=null) {
|
||||||
log.info("关联属性【{}】=>{}",join.getField().getName(),JSON.toJSONString(oldList));
|
log.info("关联属性【{}】=>{}",join.getField().getName(),JSON.toJSONString(oldList));
|
||||||
@ -721,10 +728,17 @@ public class DataLogTools {
|
|||||||
buildFields(datalog,joinTable,val,null);
|
buildFields(datalog,joinTable,val,null);
|
||||||
}else {
|
}else {
|
||||||
Object old = mapper.selectById(idValue);
|
Object old = mapper.selectById(idValue);
|
||||||
mapper.updateById(joinTable.toEntity(val));
|
|
||||||
saveAttrs(joinTable,val,true);
|
saveAttrs(joinTable,val,true);
|
||||||
|
if(old==null) {
|
||||||
|
datalog.setOperationType(OperationType.INSERT);
|
||||||
|
mapper.insert(joinTable.toEntity(val));
|
||||||
|
buildFields(datalog,joinTable,val,null);
|
||||||
|
}else {
|
||||||
|
datalog.setOperationType(OperationType.UPDATE);
|
||||||
|
mapper.updateById(joinTable.toEntity(val));
|
||||||
buildFields(datalog,joinTable,val,old);
|
buildFields(datalog,joinTable,val,old);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if(type==OperationType.UPDATE || type==OperationType.DELETE){
|
} else if(type==OperationType.UPDATE || type==OperationType.DELETE){
|
||||||
//进行修改或者删除时,级联对象为空时,需要删除旧数据
|
//进行修改或者删除时,级联对象为空时,需要删除旧数据
|
||||||
Object old = getJoinObj(joinTable, join, mapper, parentInfo, entity);
|
Object old = getJoinObj(joinTable, join, mapper, parentInfo, entity);
|
||||||
|
|||||||
Reference in New Issue
Block a user