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