diff --git a/pom.xml b/pom.xml
index 90ef577..77f0a36 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,13 @@
-
+
+
+
+ com.ruoyi
+ tuoheng-api-airline
+
+
com.alibaba.cloud
@@ -71,6 +77,18 @@
ruoyi-common-swagger
+
+
+ org.flywaydb
+ flyway-core
+
+
+
+
+ org.flywaydb
+ flyway-mysql
+
+
diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineTempController.java b/src/main/java/com/ruoyi/airline/controller/AirlineTempController.java
new file mode 100644
index 0000000..b7df736
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/controller/AirlineTempController.java
@@ -0,0 +1,70 @@
+package com.ruoyi.airline.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.security.annotation.InnerAuth;
+import com.ruoyi.airline.api.domain.AirlineTempVO;
+import com.ruoyi.airline.controller.convert.AirlineTempControllerConvert;
+import com.ruoyi.airline.service.api.IAirlineTempService;
+import com.ruoyi.airline.service.dto.AirlineTempDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 航线临时表Controller
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+@RestController
+@RequestMapping("/airline/temp")
+public class AirlineTempController extends BaseController
+{
+ @Autowired
+ private IAirlineTempService airlineTempService;
+
+ /**
+ * 查询航线临时表列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(AirlineTempVO airlineTemp)
+ {
+ startPage();
+ // API Domain → Service DTO
+ AirlineTempDTO dto = AirlineTempControllerConvert.toDTO(airlineTemp);
+ List dtoList = airlineTempService.selectAirlineTempList(dto);
+ // Service DTO → API Domain
+ List list = AirlineTempControllerConvert.toApiDomainList(dtoList);
+ return getDataTable(list);
+ }
+
+ /**
+ * 获取航线临时表详细信息(内部调用)
+ */
+ @InnerAuth
+ @GetMapping(value = "/{id}")
+ public R getAirlineById(@PathVariable("id") String id)
+ {
+ AirlineTempDTO dto = airlineTempService.selectAirlineTempById(id);
+ AirlineTempVO airlineTemp = AirlineTempControllerConvert.toVO(dto);
+ return R.ok(airlineTemp);
+ }
+
+ /**
+ * 获取航线临时表详细信息(外部调用)
+ */
+ @GetMapping(value = "/info/{id}")
+ public AjaxResult getInfo(@PathVariable("id") String id)
+ {
+ AirlineTempDTO dto = airlineTempService.selectAirlineTempById(id);
+ AirlineTempVO airlineTemp = AirlineTempControllerConvert.toVO(dto);
+ return success(airlineTemp);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineTempControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineTempControllerConvert.java
new file mode 100644
index 0000000..3ceace3
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineTempControllerConvert.java
@@ -0,0 +1,58 @@
+package com.ruoyi.airline.controller.convert;
+
+import com.ruoyi.airline.api.domain.AirlineTempVO;
+import com.ruoyi.airline.service.dto.AirlineTempDTO;
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 航线临时表Controller层转换器
+ * API Domain ↔ Service DTO
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class AirlineTempControllerConvert
+{
+ /**
+ * DTO 转 API Domain
+ */
+ public static AirlineTempVO toVO(AirlineTempDTO dto)
+ {
+ if (dto == null)
+ {
+ return null;
+ }
+ AirlineTempVO apiDomain = new AirlineTempVO();
+ BeanUtils.copyProperties(dto, apiDomain);
+ return apiDomain;
+ }
+
+ /**
+ * API Domain 转 DTO
+ */
+ public static AirlineTempDTO toDTO(AirlineTempVO apiDomain)
+ {
+ if (apiDomain == null)
+ {
+ return null;
+ }
+ AirlineTempDTO dto = new AirlineTempDTO();
+ BeanUtils.copyProperties(apiDomain, dto);
+ return dto;
+ }
+
+ /**
+ * DTO List 转 API Domain List
+ */
+ public static List toApiDomainList(List dtoList)
+ {
+ if (dtoList == null)
+ {
+ return null;
+ }
+ return dtoList.stream().map(AirlineTempControllerConvert::toVO).collect(Collectors.toList());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/domain/api/IAirlineTempDomain.java b/src/main/java/com/ruoyi/airline/domain/api/IAirlineTempDomain.java
new file mode 100644
index 0000000..e9f5589
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/domain/api/IAirlineTempDomain.java
@@ -0,0 +1,29 @@
+package com.ruoyi.airline.domain.api;
+
+import com.ruoyi.airline.domain.model.AirlineTemp;
+import java.util.List;
+
+/**
+ * 航线临时表Domain接口
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public interface IAirlineTempDomain
+{
+ /**
+ * 查询航线临时表列表
+ *
+ * @param airlineTemp 航线临时表
+ * @return 航线临时表集合
+ */
+ List selectAirlineTempList(AirlineTemp airlineTemp);
+
+ /**
+ * 根据ID查询航线临时表
+ *
+ * @param id 主键ID
+ * @return 航线临时表
+ */
+ AirlineTemp selectAirlineTempById(String id);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/domain/convert/AirlineTempDomainConvert.java b/src/main/java/com/ruoyi/airline/domain/convert/AirlineTempDomainConvert.java
new file mode 100644
index 0000000..1fb93ad
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/domain/convert/AirlineTempDomainConvert.java
@@ -0,0 +1,58 @@
+package com.ruoyi.airline.domain.convert;
+
+import com.ruoyi.airline.domain.model.AirlineTemp;
+import com.ruoyi.airline.mapper.entity.AirlineTempEntity;
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 航线临时表Domain层转换器
+ * Domain Model ↔ Mapper Entity
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class AirlineTempDomainConvert
+{
+ /**
+ * Entity 转 Model
+ */
+ public static AirlineTemp toModel(AirlineTempEntity entity)
+ {
+ if (entity == null)
+ {
+ return null;
+ }
+ AirlineTemp model = new AirlineTemp();
+ BeanUtils.copyProperties(entity, model);
+ return model;
+ }
+
+ /**
+ * Model 转 Entity
+ */
+ public static AirlineTempEntity toEntity(AirlineTemp model)
+ {
+ if (model == null)
+ {
+ return null;
+ }
+ AirlineTempEntity entity = new AirlineTempEntity();
+ BeanUtils.copyProperties(model, entity);
+ return entity;
+ }
+
+ /**
+ * Entity List 转 Model List
+ */
+ public static List toModelList(List entityList)
+ {
+ if (entityList == null)
+ {
+ return null;
+ }
+ return entityList.stream().map(AirlineTempDomainConvert::toModel).collect(Collectors.toList());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/domain/impl/AirlineTempDomainImpl.java b/src/main/java/com/ruoyi/airline/domain/impl/AirlineTempDomainImpl.java
new file mode 100644
index 0000000..173b39f
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/domain/impl/AirlineTempDomainImpl.java
@@ -0,0 +1,39 @@
+package com.ruoyi.airline.domain.impl;
+
+import com.ruoyi.airline.domain.api.IAirlineTempDomain;
+import com.ruoyi.airline.domain.convert.AirlineTempDomainConvert;
+import com.ruoyi.airline.domain.model.AirlineTemp;
+import com.ruoyi.airline.mapper.AirlineTempMapper;
+import com.ruoyi.airline.mapper.entity.AirlineTempEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 航线临时表Domain实现
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+@Component
+public class AirlineTempDomainImpl implements IAirlineTempDomain
+{
+ @Autowired
+ private AirlineTempMapper airlineTempMapper;
+
+ @Override
+ public List selectAirlineTempList(AirlineTemp airlineTempModel)
+ {
+ AirlineTempEntity entity = AirlineTempDomainConvert.toEntity(airlineTempModel);
+ List entityList = airlineTempMapper.selectAirlineTempList(entity);
+ return AirlineTempDomainConvert.toModelList(entityList);
+ }
+
+ @Override
+ public AirlineTemp selectAirlineTempById(String id)
+ {
+ AirlineTempEntity entity = airlineTempMapper.selectAirlineTempById(id);
+ return AirlineTempDomainConvert.toModel(entity);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/domain/model/AirlineTemp.java b/src/main/java/com/ruoyi/airline/domain/model/AirlineTemp.java
new file mode 100644
index 0000000..15f6c62
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/domain/model/AirlineTemp.java
@@ -0,0 +1,55 @@
+package com.ruoyi.airline.domain.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 航线临时表领域模型
+ * Domain 层对外暴露的对象
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class AirlineTemp implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private String id;
+
+ /** 创建时间 */
+ private Date createTime;
+
+ /** 更新时间 */
+ private Date updateTime;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public Date getCreateTime()
+ {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime)
+ {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime()
+ {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime)
+ {
+ this.updateTime = updateTime;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/mapper/AirlineTempMapper.java b/src/main/java/com/ruoyi/airline/mapper/AirlineTempMapper.java
new file mode 100644
index 0000000..0dfc40a
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/mapper/AirlineTempMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.airline.mapper;
+
+import com.ruoyi.airline.mapper.entity.AirlineTempEntity;
+import java.util.List;
+
+/**
+ * 航线临时表Mapper接口
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public interface AirlineTempMapper
+{
+ /**
+ * 查询航线临时表列表
+ *
+ * @param airlineTempEntity 航线临时表
+ * @return 航线临时表集合
+ */
+ public List selectAirlineTempList(AirlineTempEntity airlineTempEntity);
+
+ /**
+ * 根据ID查询航线临时表
+ *
+ * @param id 主键ID
+ * @return 航线临时表
+ */
+ public AirlineTempEntity selectAirlineTempById(String id);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/mapper/entity/AirlineTempEntity.java b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineTempEntity.java
new file mode 100644
index 0000000..eed3d52
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/mapper/entity/AirlineTempEntity.java
@@ -0,0 +1,36 @@
+package com.ruoyi.airline.mapper.entity;
+
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 航线临时表实体对象 tuoheng_airline_temp
+ * Mapper 层实体,对应数据库表
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class AirlineTempEntity extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private String id;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "AirlineTempEntity{" +
+ "id='" + id + '\'' +
+ '}';
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineTempService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineTempService.java
new file mode 100644
index 0000000..3553eac
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineTempService.java
@@ -0,0 +1,29 @@
+package com.ruoyi.airline.service.api;
+
+import com.ruoyi.airline.service.dto.AirlineTempDTO;
+import java.util.List;
+
+/**
+ * 航线临时表Service接口
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public interface IAirlineTempService
+{
+ /**
+ * 查询航线临时表列表
+ *
+ * @param airlineTempDTO 航线临时表
+ * @return 航线临时表集合
+ */
+ List selectAirlineTempList(AirlineTempDTO airlineTempDTO);
+
+ /**
+ * 根据ID查询航线临时表
+ *
+ * @param id 主键ID
+ * @return 航线临时表
+ */
+ AirlineTempDTO selectAirlineTempById(String id);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/service/convert/AirlineTempServiceConvert.java b/src/main/java/com/ruoyi/airline/service/convert/AirlineTempServiceConvert.java
new file mode 100644
index 0000000..5f1a75f
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/service/convert/AirlineTempServiceConvert.java
@@ -0,0 +1,58 @@
+package com.ruoyi.airline.service.convert;
+
+import com.ruoyi.airline.domain.model.AirlineTemp;
+import com.ruoyi.airline.service.dto.AirlineTempDTO;
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 航线临时表Service层转换器
+ * Service DTO ↔ Domain Model
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class AirlineTempServiceConvert
+{
+ /**
+ * Model 转 DTO
+ */
+ public static AirlineTempDTO toDTO(AirlineTemp model)
+ {
+ if (model == null)
+ {
+ return null;
+ }
+ AirlineTempDTO dto = new AirlineTempDTO();
+ BeanUtils.copyProperties(model, dto);
+ return dto;
+ }
+
+ /**
+ * DTO 转 Model
+ */
+ public static AirlineTemp toModel(AirlineTempDTO dto)
+ {
+ if (dto == null)
+ {
+ return null;
+ }
+ AirlineTemp model = new AirlineTemp();
+ BeanUtils.copyProperties(dto, model);
+ return model;
+ }
+
+ /**
+ * Model List 转 DTO List
+ */
+ public static List toDTOList(List modelList)
+ {
+ if (modelList == null)
+ {
+ return null;
+ }
+ return modelList.stream().map(AirlineTempServiceConvert::toDTO).collect(Collectors.toList());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/service/dto/AirlineTempDTO.java b/src/main/java/com/ruoyi/airline/service/dto/AirlineTempDTO.java
new file mode 100644
index 0000000..8efd2b9
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/service/dto/AirlineTempDTO.java
@@ -0,0 +1,55 @@
+package com.ruoyi.airline.service.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 航线临时表服务层DTO
+ * Service 层对外暴露的对象
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class AirlineTempDTO implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private String id;
+
+ /** 创建时间 */
+ private Date createTime;
+
+ /** 更新时间 */
+ private Date updateTime;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public Date getCreateTime()
+ {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime)
+ {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime()
+ {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime)
+ {
+ this.updateTime = updateTime;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineTempServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineTempServiceImpl.java
new file mode 100644
index 0000000..f0e6344
--- /dev/null
+++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineTempServiceImpl.java
@@ -0,0 +1,51 @@
+package com.ruoyi.airline.service.impl;
+
+import com.ruoyi.airline.domain.api.IAirlineTempDomain;
+import com.ruoyi.airline.domain.model.AirlineTemp;
+import com.ruoyi.airline.service.api.IAirlineTempService;
+import com.ruoyi.airline.service.convert.AirlineTempServiceConvert;
+import com.ruoyi.airline.service.dto.AirlineTempDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 航线临时表Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+@Service
+public class AirlineTempServiceImpl implements IAirlineTempService
+{
+ @Autowired
+ private IAirlineTempDomain airlineTempDomain;
+
+ /**
+ * 查询航线临时表列表
+ *
+ * @param airlineTempDTO 航线临时表
+ * @return 航线临时表集合
+ */
+ @Override
+ public List selectAirlineTempList(AirlineTempDTO airlineTempDTO)
+ {
+ AirlineTemp model = AirlineTempServiceConvert.toModel(airlineTempDTO);
+ List modelList = airlineTempDomain.selectAirlineTempList(model);
+ return AirlineTempServiceConvert.toDTOList(modelList);
+ }
+
+ /**
+ * 根据ID查询航线临时表
+ *
+ * @param id 主键ID
+ * @return 航线临时表
+ */
+ @Override
+ public AirlineTempDTO selectAirlineTempById(String id)
+ {
+ AirlineTemp model = airlineTempDomain.selectAirlineTempById(id);
+ return AirlineTempServiceConvert.toDTO(model);
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml
index 7f203da..d6a5fd4 100644
--- a/src/main/resources/bootstrap.yml
+++ b/src/main/resources/bootstrap.yml
@@ -1,15 +1,19 @@
# Tomcat
server:
- port: 9201
+ port: 9202
# Spring
-spring:
+spring:
application:
# 应用名称
name: tuoheng-airline
profiles:
# 环境配置
active: prod
+ flyway:
+ table: flyway_airline_schema_history # 自定义历史表名
+ baseline-on-migrate: true # 在nocos中也有配置
+ baseline-version: 0 # 在nocos中也有配置
cloud:
nacos:
discovery:
diff --git a/src/main/resources/db/migration/V1__Create_airline_temp_table.sql b/src/main/resources/db/migration/V1__Create_airline_temp_table.sql
new file mode 100644
index 0000000..94b8ed9
--- /dev/null
+++ b/src/main/resources/db/migration/V1__Create_airline_temp_table.sql
@@ -0,0 +1,14 @@
+-- ============================================================
+-- Flyway Migration Script
+-- ============================================================
+-- Version: V1
+-- Description: Create tuoheng_airline_temp table
+-- Author: ruoyi
+-- Date: 2026-01-17
+-- ============================================================
+
+-- 创建航线临时表
+CREATE TABLE IF NOT EXISTS tuoheng_airline_temp (
+ id VARCHAR(64) NOT NULL COMMENT '主键ID',
+ PRIMARY KEY (id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='航线临时表';
\ No newline at end of file
diff --git a/src/main/resources/mapper/airline/AirlineTempMapper.xml b/src/main/resources/mapper/airline/AirlineTempMapper.xml
new file mode 100644
index 0000000..b8e5cbe
--- /dev/null
+++ b/src/main/resources/mapper/airline/AirlineTempMapper.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+ select id from tuoheng_airline_temp
+
+
+
+
+
+
+
\ No newline at end of file