105 lines
3.2 KiB
Java
105 lines
3.2 KiB
Java
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());
|
|
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());
|
|
}
|
|
}
|
|
|
|
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());
|
|
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;
|
|
}
|
|
|
|
}
|