package com.ard.sample.annotation.util; import com.ard.sample.annotation.model.dto.AnnotationDTO; import com.ard.sample.annotation.model.dto.AnnotationDirectoryDTO; import com.ard.sample.annotation.model.dto.AnnotationPointsDTO; import com.ard.sample.annotation.model.entity.AnnotationDirectoryEntity; import com.ard.sample.annotation.model.entity.AnnotationEntity; import org.springframework.beans.BeanUtils; import java.util.List; import java.util.stream.Collectors; public class ConvertUtil { // 目录DTO → 目录Entity public static AnnotationDirectoryEntity directoryDtoToEntity(AnnotationDirectoryDTO dto) { AnnotationDirectoryEntity entity = new AnnotationDirectoryEntity(); BeanUtils.copyProperties(dto, entity); return entity; } // 目录Entity → 目录DTO public static AnnotationDirectoryDTO directoryEntityToDto(AnnotationDirectoryEntity entity) { AnnotationDirectoryDTO dto = new AnnotationDirectoryDTO(); BeanUtils.copyProperties(entity, dto); return dto; } // 标记DTO → 标记Entity(含坐标序列化) public static AnnotationEntity annotationDtoToEntity(AnnotationDTO dto) throws Exception { AnnotationEntity entity = new AnnotationEntity(); BeanUtils.copyProperties(dto, entity); // 序列化坐标数据 entity.setCoordinateInfo(JsonSerializeUtil.serialize(dto.getCoordinateInfo())); return entity; } // 标记Entity → 标记DTO(含坐标反序列化) public static AnnotationDTO annotationEntityToDto(AnnotationEntity entity) throws Exception { AnnotationDTO dto = new AnnotationDTO(); BeanUtils.copyProperties(entity, dto); // 反序列化坐标数据 List points = JsonSerializeUtil.deserialize(entity.getCoordinateInfo()); dto.setCoordinateInfo(points); return dto; } // 标记Entity列表 → 标记DTO列表 public static List annotationEntityListToDtoList(List entityList) { return entityList.stream().map(entity -> { try { return annotationEntityToDto(entity); } catch (Exception e) { throw new RuntimeException("标记Entity转DTO失败", e); } }).collect(Collectors.toList()); } }