a-tuoheng-airline/src/main/java/com/ruoyi/airline/controller/convert/AirlineAreaControllerConver...

113 lines
3.6 KiB
Java
Raw Normal View History

2026-02-25 15:16:28 +08:00
package com.ruoyi.airline.controller.convert;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.airline.api.domain.AirlineAreaVO;
import com.ruoyi.airline.service.dto.AirlineAreaDTO;
import com.ruoyi.common.core.utils.BaseConvert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 空域Controller转换类
* 用于API VO和Service DTO之间的转换
*
* @author ruoyi
* @date 2026-02-25
*/
public class AirlineAreaControllerConvert extends BaseConvert<AirlineAreaDTO, AirlineAreaVO>
{
private static final Logger log = LoggerFactory.getLogger(AirlineAreaControllerConvert.class);
private static final ObjectMapper objectMapper = new ObjectMapper();
private static final AirlineAreaControllerConvert INSTANCE = new AirlineAreaControllerConvert();
private AirlineAreaControllerConvert() {
super(AirlineAreaDTO.class, AirlineAreaVO.class);
}
public static AirlineAreaVO from(AirlineAreaDTO dto)
{
return INSTANCE.innerFrom(dto);
}
public static AirlineAreaDTO to(AirlineAreaVO vo)
{
return INSTANCE.innerTo(vo);
}
public static List<AirlineAreaVO> fromList(List<AirlineAreaDTO> dtoList)
{
return INSTANCE.innerFromList(dtoList);
}
public static List<AirlineAreaDTO> toList(List<AirlineAreaVO> voList)
{
return INSTANCE.innerToList(voList);
}
@Override
protected AirlineAreaVO innerFrom(AirlineAreaDTO dto) {
if (dto == null) {
return null;
}
AirlineAreaVO vo = new AirlineAreaVO();
vo.setId(dto.getId());
vo.setName(dto.getName());
vo.setAreaType(dto.getAreaType());
vo.setStatus(dto.getStatus());
2026-02-26 16:00:41 +08:00
vo.setShape(dto.getShape());
2026-02-26 15:29:13 +08:00
vo.setAreaArea(dto.getAreaArea());
vo.setAreaPerimeter(dto.getAreaPerimeter());
vo.setRadius(dto.getRadius());
2026-02-25 15:16:28 +08:00
vo.setRemark(dto.getRemark());
// 将字符串转换为 List<PointInfo>
if (dto.getPoints() != null && !dto.getPoints().isEmpty()) {
try {
List<AirlineAreaVO.PointInfo> pointsList = objectMapper.readValue(
dto.getPoints(),
objectMapper.getTypeFactory().constructCollectionType(List.class, AirlineAreaVO.PointInfo.class)
);
vo.setPoints(pointsList);
} catch (JsonProcessingException e) {
log.error("转换坐标点信息失败: {}", e.getMessage());
}
}
2026-02-25 15:16:28 +08:00
return vo;
}
@Override
protected AirlineAreaDTO innerTo(AirlineAreaVO vo) {
if (vo == null) {
return null;
}
AirlineAreaDTO dto = new AirlineAreaDTO();
dto.setId(vo.getId());
dto.setName(vo.getName());
dto.setAreaType(vo.getAreaType());
dto.setStatus(vo.getStatus());
2026-02-26 16:00:41 +08:00
dto.setShape(vo.getShape());
2026-02-26 15:29:13 +08:00
dto.setAreaArea(vo.getAreaArea());
dto.setAreaPerimeter(vo.getAreaPerimeter());
dto.setRadius(vo.getRadius());
2026-02-25 15:16:28 +08:00
dto.setRemark(vo.getRemark());
// 将 List<PointInfo> 转换为字符串
if (vo.getPoints() != null && !vo.getPoints().isEmpty()) {
try {
String pointsJson = objectMapper.writeValueAsString(vo.getPoints());
dto.setPoints(pointsJson);
} catch (JsonProcessingException e) {
log.error("转换坐标点信息失败: {}", e.getMessage());
}
}
return dto;
}
}