This commit is contained in:
孙小云 2026-01-17 10:29:06 +08:00
parent 99fdf1c00d
commit d9f88c8b3e
16 changed files with 633 additions and 3 deletions

18
pom.xml
View File

@ -17,6 +17,12 @@
<dependencies>
<!-- Tuoheng Airline API -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>tuoheng-api-airline</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
@ -71,6 +77,18 @@
<artifactId>ruoyi-common-swagger</artifactId>
</dependency>
<!-- Flyway Database Migration -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<!-- Flyway MySQL Support -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-mysql</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -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<AirlineTempDTO> dtoList = airlineTempService.selectAirlineTempList(dto);
// Service DTO API Domain
List<AirlineTempVO> list = AirlineTempControllerConvert.toApiDomainList(dtoList);
return getDataTable(list);
}
/**
* 获取航线临时表详细信息内部调用
*/
@InnerAuth
@GetMapping(value = "/{id}")
public R<AirlineTempVO> 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);
}
}

View File

@ -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<AirlineTempVO> toApiDomainList(List<AirlineTempDTO> dtoList)
{
if (dtoList == null)
{
return null;
}
return dtoList.stream().map(AirlineTempControllerConvert::toVO).collect(Collectors.toList());
}
}

View File

@ -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<AirlineTemp> selectAirlineTempList(AirlineTemp airlineTemp);
/**
* 根据ID查询航线临时表
*
* @param id 主键ID
* @return 航线临时表
*/
AirlineTemp selectAirlineTempById(String id);
}

View File

@ -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<AirlineTemp> toModelList(List<AirlineTempEntity> entityList)
{
if (entityList == null)
{
return null;
}
return entityList.stream().map(AirlineTempDomainConvert::toModel).collect(Collectors.toList());
}
}

View File

@ -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<AirlineTemp> selectAirlineTempList(AirlineTemp airlineTempModel)
{
AirlineTempEntity entity = AirlineTempDomainConvert.toEntity(airlineTempModel);
List<AirlineTempEntity> entityList = airlineTempMapper.selectAirlineTempList(entity);
return AirlineTempDomainConvert.toModelList(entityList);
}
@Override
public AirlineTemp selectAirlineTempById(String id)
{
AirlineTempEntity entity = airlineTempMapper.selectAirlineTempById(id);
return AirlineTempDomainConvert.toModel(entity);
}
}

View File

@ -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;
}
}

View File

@ -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<AirlineTempEntity> selectAirlineTempList(AirlineTempEntity airlineTempEntity);
/**
* 根据ID查询航线临时表
*
* @param id 主键ID
* @return 航线临时表
*/
public AirlineTempEntity selectAirlineTempById(String id);
}

View File

@ -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 + '\'' +
'}';
}
}

View File

@ -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<AirlineTempDTO> selectAirlineTempList(AirlineTempDTO airlineTempDTO);
/**
* 根据ID查询航线临时表
*
* @param id 主键ID
* @return 航线临时表
*/
AirlineTempDTO selectAirlineTempById(String id);
}

View File

@ -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<AirlineTempDTO> toDTOList(List<AirlineTemp> modelList)
{
if (modelList == null)
{
return null;
}
return modelList.stream().map(AirlineTempServiceConvert::toDTO).collect(Collectors.toList());
}
}

View File

@ -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;
}
}

View File

@ -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<AirlineTempDTO> selectAirlineTempList(AirlineTempDTO airlineTempDTO)
{
AirlineTemp model = AirlineTempServiceConvert.toModel(airlineTempDTO);
List<AirlineTemp> 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);
}
}

View File

@ -1,6 +1,6 @@
# Tomcat
server:
port: 9201
port: 9202
# Spring
spring:
@ -10,6 +10,10 @@ spring:
profiles:
# 环境配置
active: prod
flyway:
table: flyway_airline_schema_history # 自定义历史表名
baseline-on-migrate: true # 在nocos中也有配置
baseline-version: 0 # 在nocos中也有配置
cloud:
nacos:
discovery:

View File

@ -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='航线临时表';

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.airline.mapper.AirlineTempMapper">
<resultMap type="com.ruoyi.airline.mapper.entity.AirlineTempEntity" id="AirlineTempResult">
<result property="id" column="id" />
</resultMap>
<sql id="selectAirlineTempVo">
select id from tuoheng_airline_temp
</sql>
<select id="selectAirlineTempList" parameterType="com.ruoyi.airline.mapper.entity.AirlineTempEntity" resultMap="AirlineTempResult">
<include refid="selectAirlineTempVo"/>
<where>
<if test="id != null and id != ''"> and id = #{id}</if>
</where>
</select>
<select id="selectAirlineTempById" parameterType="String" resultMap="AirlineTempResult">
<include refid="selectAirlineTempVo"/>
where id = #{id}
</select>
</mapper>