diff --git a/pom.xml b/pom.xml index 9246a87..b695359 100644 --- a/pom.xml +++ b/pom.xml @@ -71,6 +71,24 @@ ruoyi-common-swagger + + + com.ruoyi + tuoheng-api-task + + + + + org.flywaydb + flyway-core + + + + + org.flywaydb + flyway-mysql + + diff --git a/src/main/java/com/ruoyi/task/controller/TaskTempController.java b/src/main/java/com/ruoyi/task/controller/TaskTempController.java new file mode 100644 index 0000000..0071d6b --- /dev/null +++ b/src/main/java/com/ruoyi/task/controller/TaskTempController.java @@ -0,0 +1,70 @@ +package com.ruoyi.task.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.task.api.domain.TaskTempVO; +import com.ruoyi.task.controller.convert.TaskTempControllerConvert; +import com.ruoyi.task.service.api.ITaskTempService; +import com.ruoyi.task.service.dto.TaskTempDTO; +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("/task/temp") +public class TaskTempController extends BaseController +{ + @Autowired + private ITaskTempService taskTempService; + + /** + * 查询任务临时表列表 + */ + @GetMapping("/list") + public TableDataInfo list(TaskTempVO taskTemp) + { + startPage(); + // API Domain → Service DTO + TaskTempDTO dto = TaskTempControllerConvert.toDTO(taskTemp); + List dtoList = taskTempService.selectTaskTempList(dto); + // Service DTO → API Domain + List list = TaskTempControllerConvert.toApiDomainList(dtoList); + return getDataTable(list); + } + + /** + * 获取任务临时表详细信息(内部调用) + */ + @InnerAuth + @GetMapping(value = "/{id}") + public R getTaskById(@PathVariable("id") String id) + { + TaskTempDTO dto = taskTempService.selectTaskTempById(id); + TaskTempVO taskTemp = TaskTempControllerConvert.toVO(dto); + return R.ok(taskTemp); + } + + /** + * 获取任务临时表详细信息(外部调用) + */ + @GetMapping(value = "/info/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + TaskTempDTO dto = taskTempService.selectTaskTempById(id); + TaskTempVO taskTemp = TaskTempControllerConvert.toVO(dto); + return success(taskTemp); + } +} diff --git a/src/main/java/com/ruoyi/task/controller/convert/TaskTempControllerConvert.java b/src/main/java/com/ruoyi/task/controller/convert/TaskTempControllerConvert.java new file mode 100644 index 0000000..064f08f --- /dev/null +++ b/src/main/java/com/ruoyi/task/controller/convert/TaskTempControllerConvert.java @@ -0,0 +1,58 @@ +package com.ruoyi.task.controller.convert; + +import com.ruoyi.task.api.domain.TaskTempVO; +import com.ruoyi.task.service.dto.TaskTempDTO; +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 TaskTempControllerConvert +{ + /** + * DTO 转 API Domain + */ + public static TaskTempVO toVO(TaskTempDTO dto) + { + if (dto == null) + { + return null; + } + TaskTempVO apiDomain = new TaskTempVO(); + BeanUtils.copyProperties(dto, apiDomain); + return apiDomain; + } + + /** + * API Domain 转 DTO + */ + public static TaskTempDTO toDTO(TaskTempVO apiDomain) + { + if (apiDomain == null) + { + return null; + } + TaskTempDTO dto = new TaskTempDTO(); + 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(TaskTempControllerConvert::toVO).collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/ruoyi/task/domain/api/ITaskTempDomain.java b/src/main/java/com/ruoyi/task/domain/api/ITaskTempDomain.java new file mode 100644 index 0000000..e665d2d --- /dev/null +++ b/src/main/java/com/ruoyi/task/domain/api/ITaskTempDomain.java @@ -0,0 +1,29 @@ +package com.ruoyi.task.domain.api; + +import com.ruoyi.task.domain.model.TaskTemp; +import java.util.List; + +/** + * 任务临时表Domain接口 + * + * @author ruoyi + * @date 2026-01-17 + */ +public interface ITaskTempDomain +{ + /** + * 查询任务临时表列表 + * + * @param taskTemp 任务临时表 + * @return 任务临时表集合 + */ + List selectTaskTempList(TaskTemp taskTemp); + + /** + * 根据ID查询任务临时表 + * + * @param id 主键ID + * @return 任务临时表 + */ + TaskTemp selectTaskTempById(String id); +} diff --git a/src/main/java/com/ruoyi/task/domain/convert/TaskTempDomainConvert.java b/src/main/java/com/ruoyi/task/domain/convert/TaskTempDomainConvert.java new file mode 100644 index 0000000..62cc607 --- /dev/null +++ b/src/main/java/com/ruoyi/task/domain/convert/TaskTempDomainConvert.java @@ -0,0 +1,58 @@ +package com.ruoyi.task.domain.convert; + +import com.ruoyi.task.domain.model.TaskTemp; +import com.ruoyi.task.mapper.entity.TaskTempEntity; +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 TaskTempDomainConvert +{ + /** + * Entity 转 Model + */ + public static TaskTemp toModel(TaskTempEntity entity) + { + if (entity == null) + { + return null; + } + TaskTemp model = new TaskTemp(); + BeanUtils.copyProperties(entity, model); + return model; + } + + /** + * Model 转 Entity + */ + public static TaskTempEntity toEntity(TaskTemp model) + { + if (model == null) + { + return null; + } + TaskTempEntity entity = new TaskTempEntity(); + 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(TaskTempDomainConvert::toModel).collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/ruoyi/task/domain/impl/TaskTempDomainImpl.java b/src/main/java/com/ruoyi/task/domain/impl/TaskTempDomainImpl.java new file mode 100644 index 0000000..058c2ee --- /dev/null +++ b/src/main/java/com/ruoyi/task/domain/impl/TaskTempDomainImpl.java @@ -0,0 +1,39 @@ +package com.ruoyi.task.domain.impl; + +import com.ruoyi.task.domain.api.ITaskTempDomain; +import com.ruoyi.task.domain.convert.TaskTempDomainConvert; +import com.ruoyi.task.domain.model.TaskTemp; +import com.ruoyi.task.mapper.TaskTempMapper; +import com.ruoyi.task.mapper.entity.TaskTempEntity; +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 TaskTempDomainImpl implements ITaskTempDomain +{ + @Autowired + private TaskTempMapper taskTempMapper; + + @Override + public List selectTaskTempList(TaskTemp taskTempModel) + { + TaskTempEntity entity = TaskTempDomainConvert.toEntity(taskTempModel); + List entityList = taskTempMapper.selectTaskTempList(entity); + return TaskTempDomainConvert.toModelList(entityList); + } + + @Override + public TaskTemp selectTaskTempById(String id) + { + TaskTempEntity entity = taskTempMapper.selectTaskTempById(id); + return TaskTempDomainConvert.toModel(entity); + } +} diff --git a/src/main/java/com/ruoyi/task/domain/model/TaskTemp.java b/src/main/java/com/ruoyi/task/domain/model/TaskTemp.java new file mode 100644 index 0000000..9ccda93 --- /dev/null +++ b/src/main/java/com/ruoyi/task/domain/model/TaskTemp.java @@ -0,0 +1,55 @@ +package com.ruoyi.task.domain.model; + +import java.io.Serializable; +import java.util.Date; + +/** + * 任务临时表领域模型 + * Domain 层对外暴露的对象 + * + * @author ruoyi + * @date 2026-01-17 + */ +public class TaskTemp 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; + } +} diff --git a/src/main/java/com/ruoyi/task/mapper/TaskTempMapper.java b/src/main/java/com/ruoyi/task/mapper/TaskTempMapper.java new file mode 100644 index 0000000..efa9bc9 --- /dev/null +++ b/src/main/java/com/ruoyi/task/mapper/TaskTempMapper.java @@ -0,0 +1,29 @@ +package com.ruoyi.task.mapper; + +import com.ruoyi.task.mapper.entity.TaskTempEntity; +import java.util.List; + +/** + * 任务临时表Mapper接口 + * + * @author ruoyi + * @date 2026-01-17 + */ +public interface TaskTempMapper +{ + /** + * 查询任务临时表列表 + * + * @param taskTempEntity 任务临时表 + * @return 任务临时表集合 + */ + public List selectTaskTempList(TaskTempEntity taskTempEntity); + + /** + * 根据ID查询任务临时表 + * + * @param id 主键ID + * @return 任务临时表 + */ + public TaskTempEntity selectTaskTempById(String id); +} diff --git a/src/main/java/com/ruoyi/task/mapper/entity/TaskTempEntity.java b/src/main/java/com/ruoyi/task/mapper/entity/TaskTempEntity.java new file mode 100644 index 0000000..b4ba51b --- /dev/null +++ b/src/main/java/com/ruoyi/task/mapper/entity/TaskTempEntity.java @@ -0,0 +1,36 @@ +package com.ruoyi.task.mapper.entity; + +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 任务临时表实体对象 tuoheng_task_temp + * Mapper 层实体,对应数据库表 + * + * @author ruoyi + * @date 2026-01-17 + */ +public class TaskTempEntity 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 "TaskTempEntity{" + + "id='" + id + '\'' + + '}'; + } +} diff --git a/src/main/java/com/ruoyi/task/service/api/ITaskTempService.java b/src/main/java/com/ruoyi/task/service/api/ITaskTempService.java new file mode 100644 index 0000000..e57e570 --- /dev/null +++ b/src/main/java/com/ruoyi/task/service/api/ITaskTempService.java @@ -0,0 +1,29 @@ +package com.ruoyi.task.service.api; + +import com.ruoyi.task.service.dto.TaskTempDTO; +import java.util.List; + +/** + * 任务临时表Service接口 + * + * @author ruoyi + * @date 2026-01-17 + */ +public interface ITaskTempService +{ + /** + * 查询任务临时表列表 + * + * @param taskTempDTO 任务临时表 + * @return 任务临时表集合 + */ + List selectTaskTempList(TaskTempDTO taskTempDTO); + + /** + * 根据ID查询任务临时表 + * + * @param id 主键ID + * @return 任务临时表 + */ + TaskTempDTO selectTaskTempById(String id); +} diff --git a/src/main/java/com/ruoyi/task/service/convert/TaskTempServiceConvert.java b/src/main/java/com/ruoyi/task/service/convert/TaskTempServiceConvert.java new file mode 100644 index 0000000..2835ed5 --- /dev/null +++ b/src/main/java/com/ruoyi/task/service/convert/TaskTempServiceConvert.java @@ -0,0 +1,58 @@ +package com.ruoyi.task.service.convert; + +import com.ruoyi.task.domain.model.TaskTemp; +import com.ruoyi.task.service.dto.TaskTempDTO; +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 TaskTempServiceConvert +{ + /** + * Model 转 DTO + */ + public static TaskTempDTO toDTO(TaskTemp model) + { + if (model == null) + { + return null; + } + TaskTempDTO dto = new TaskTempDTO(); + BeanUtils.copyProperties(model, dto); + return dto; + } + + /** + * DTO 转 Model + */ + public static TaskTemp toModel(TaskTempDTO dto) + { + if (dto == null) + { + return null; + } + TaskTemp model = new TaskTemp(); + 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(TaskTempServiceConvert::toDTO).collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/ruoyi/task/service/dto/TaskTempDTO.java b/src/main/java/com/ruoyi/task/service/dto/TaskTempDTO.java new file mode 100644 index 0000000..f572f58 --- /dev/null +++ b/src/main/java/com/ruoyi/task/service/dto/TaskTempDTO.java @@ -0,0 +1,55 @@ +package com.ruoyi.task.service.dto; + +import java.io.Serializable; +import java.util.Date; + +/** + * 任务临时表服务层DTO + * Service 层对外暴露的对象 + * + * @author ruoyi + * @date 2026-01-17 + */ +public class TaskTempDTO 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; + } +} diff --git a/src/main/java/com/ruoyi/task/service/impl/TaskTempServiceImpl.java b/src/main/java/com/ruoyi/task/service/impl/TaskTempServiceImpl.java new file mode 100644 index 0000000..86adf3e --- /dev/null +++ b/src/main/java/com/ruoyi/task/service/impl/TaskTempServiceImpl.java @@ -0,0 +1,51 @@ +package com.ruoyi.task.service.impl; + +import com.ruoyi.task.domain.api.ITaskTempDomain; +import com.ruoyi.task.domain.model.TaskTemp; +import com.ruoyi.task.service.api.ITaskTempService; +import com.ruoyi.task.service.convert.TaskTempServiceConvert; +import com.ruoyi.task.service.dto.TaskTempDTO; +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 TaskTempServiceImpl implements ITaskTempService +{ + @Autowired + private ITaskTempDomain taskTempDomain; + + /** + * 查询任务临时表列表 + * + * @param taskTempDTO 任务临时表 + * @return 任务临时表集合 + */ + @Override + public List selectTaskTempList(TaskTempDTO taskTempDTO) + { + TaskTemp model = TaskTempServiceConvert.toModel(taskTempDTO); + List modelList = taskTempDomain.selectTaskTempList(model); + return TaskTempServiceConvert.toDTOList(modelList); + } + + /** + * 根据ID查询任务临时表 + * + * @param id 主键ID + * @return 任务临时表 + */ + @Override + public TaskTempDTO selectTaskTempById(String id) + { + TaskTemp model = taskTempDomain.selectTaskTempById(id); + return TaskTempServiceConvert.toDTO(model); + } +} diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml index 9ffcab6..adc1ddb 100644 --- a/src/main/resources/bootstrap.yml +++ b/src/main/resources/bootstrap.yml @@ -1,15 +1,19 @@ # Tomcat server: - port: 9201 + port: 9206 # Spring -spring: +spring: application: # 应用名称 name: tuoheng-task profiles: # 环境配置 active: prod + flyway: + table: flyway_task_schema_history # 自定义历史表名 + baseline-on-migrate: true # 在nocos中也有配置 + baseline-version: 0 # 在nocos中也有配置 cloud: nacos: discovery: diff --git a/src/main/resources/db/migration/V1__Create_task_temp_table.sql b/src/main/resources/db/migration/V1__Create_task_temp_table.sql new file mode 100644 index 0000000..9f6c642 --- /dev/null +++ b/src/main/resources/db/migration/V1__Create_task_temp_table.sql @@ -0,0 +1,14 @@ +-- ============================================================ +-- Flyway Migration Script +-- ============================================================ +-- Version: V1 +-- Description: Create tuoheng_task_temp table +-- Author: ruoyi +-- Date: 2026-01-17 +-- ============================================================ + +-- 创建任务临时表 +CREATE TABLE IF NOT EXISTS tuoheng_task_temp ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务临时表'; diff --git a/src/main/resources/mapper/task/TaskTempMapper.xml b/src/main/resources/mapper/task/TaskTempMapper.xml new file mode 100644 index 0000000..758524f --- /dev/null +++ b/src/main/resources/mapper/task/TaskTempMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + select id from tuoheng_task_temp + + + + + + +