--修改数据日志接口返回类型

This commit is contained in:
2025-10-22 10:42:00 +08:00
parent 0519a62d09
commit c2e9f0a983
8 changed files with 101 additions and 150 deletions

View File

@ -19,8 +19,11 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
@ -60,6 +63,7 @@ import com.xjrsoft.common.utils.SecureUtil;
import com.xjrsoft.module.datalog.entity.DataChangeLog;
import com.xjrsoft.module.datalog.entity.json.FieldChange;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
import com.xjrsoft.module.datalog.vo.OperationType;
import com.xjrsoft.module.organization.dto.UserDto;
@ -791,7 +795,7 @@ public class DataLogTools {
* @param dataId
* @return List<DataChangeLog> 返回类型
*/
public static <T>List<DataChangeLog> findLogsByEntityId(Class<?> clazz,@NonNull Long dataId) {
public static <T>List<DataChangeLogVo> findLogsByEntityId(Class<?> clazz,@NonNull Long dataId) {
LogTableInfo tabInfo = getAnnotation(clazz);
String tableName = parseLogTableName(tabInfo);
return findLogsByEntityId(tableName, dataId);
@ -804,7 +808,7 @@ public class DataLogTools {
* @param dataId 数据id
* @return List<DataChangeLog> 返回类型
*/
public static <T>List<DataChangeLog> findLogsByEntityId(String tableName,@NonNull Long dataId) {
public static <T>List<DataChangeLogVo> findLogsByEntityId(String tableName,@NonNull Long dataId) {
if(initTable(tableName)) {
return null;
}
@ -836,7 +840,7 @@ public class DataLogTools {
}
result.add(log);
}
return result;
return toVo(result);
} catch (SQLException e) {
throw context.createException(e);
} finally {
@ -844,6 +848,32 @@ public class DataLogTools {
}
}
private static List<DataChangeLogVo> toVo(List<DataChangeLog> list){
List<DataChangeLogVo> result = CollectionUtils.newArrayList();
if(CollectionUtils.isNotEmpty(list)) {
Map<String, List<DataChangeLog>> flowGroup = list.stream().collect(Collectors.groupingBy(DataChangeLog::getFlowId));
for (Entry<String, List<DataChangeLog>> entry : flowGroup.entrySet()) {
Map<String, List<DataChangeLog>> pidMap = entry.getValue().stream().collect(Collectors.groupingBy(DataChangeLog::getPid));
DataChangeLog root = pidMap.get("#").get(0);
DataChangeLogVo vo = new DataChangeLogVo();
result.add(vo);
}
}
return result;
}
private static DataChangeLogVo toVo(DataChangeLog obj){
DataChangeLogVo vo = new DataChangeLogVo();
vo.setId(obj.getId());
vo.setPid(obj.getPid());
vo.setTableName(obj.getBusName());
vo.setOperationType(obj.getOperationType());
return vo;
}
private static String parseLogTableName(LogTableInfo tableInfo) {
String name = tableInfo.getTableName();
return "datalog_"+name;

View File

@ -4,7 +4,7 @@ import java.util.List;
import javax.validation.Valid;
import com.xjrsoft.module.datalog.entity.DataChangeLog;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
public interface DatalogService {
@ -18,7 +18,7 @@ public interface DatalogService {
public <T>T deleteById(Class<T> klazz,long id);
public <T>List<DataChangeLog> findLogsByEntityId(Class<T> klazz,long id);
public <T>List<DataChangeLogVo> findLogsByEntityId(Class<T> klazz,long id);
public <T>boolean deleteByIds(Class<T> class1, @Valid List<Long> ids);

View File

@ -9,8 +9,8 @@ import org.springframework.transaction.annotation.Transactional;
import com.google.api.client.util.Lists;
import com.pictc.utils.DataLogTools;
import com.xjrsoft.module.datalog.entity.DataChangeLog;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
@Service
public class DatalogServiceImpl implements DatalogService{
@ -58,7 +58,7 @@ public class DatalogServiceImpl implements DatalogService{
@Transactional(readOnly = true)
@Override
public <T> List<DataChangeLog> findLogsByEntityId(Class<T> klazz, long dataId) {
public <T> List<DataChangeLogVo> findLogsByEntityId(Class<T> klazz, long dataId) {
return DataLogTools.findLogsByEntityId(klazz, dataId);
}