From e096b52c7b43470810c8f29031348bb8163a67f1 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Thu, 15 May 2025 23:02:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E7=94=9F=E5=91=BD?= =?UTF-8?q?=E5=91=A8=E6=9C=9F=E7=89=88=E6=9C=AC2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/WorkReport/2025-05-14hky.md | 15 +++++- pom.xml | 8 +++- ...cationOrchestrationServiceApplication.java | 5 ++ .../config/WebMvcConfiguration.java | 47 +++++++++++++++++++ .../constant/MessageConstant.java | 6 +++ .../controller/DatasetController.java | 24 +++++----- .../handler/GlobalExceptionHandler.java | 34 ++++++++++++++ .../mapper/DatasetMapper.java | 7 ++- .../pojo/DatasetDTO.java | 14 ++++-- .../pojo/DatasetEntity.java | 9 ++-- .../pojo/DatasetPageQueryDTO.java | 16 ++++++- .../pojo/DatasetVO.java | 12 ++++- .../pojo/PageResult.java | 11 +++-- .../service/DatasetService.java | 5 +- .../service/Impl/DatasetServiceImpl.java | 35 ++++++++------ src/main/resources/mapper/DatasetMapper.xml | 16 ++++--- 16 files changed, 207 insertions(+), 57 deletions(-) create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java diff --git a/doc/WorkReport/2025-05-14hky.md b/doc/WorkReport/2025-05-14hky.md index c46cf0f..ceaeb07 100644 --- a/doc/WorkReport/2025-05-14hky.md +++ b/doc/WorkReport/2025-05-14hky.md @@ -10,4 +10,17 @@ 测试方法不知道怎么写 ### 📅 明日计划 -写完删除代码,进行测试 \ No newline at end of file +写完删除代码,进行测试 + +## 2025年5月15日 +### ✅ 今日完成 +完成删除数据集增加数据集,部分测试 + +### 🚧 进行中 +测试(或添加具体异常处理) + +### ⚠️ 问题/障碍 +暂无 + +### 📅 明日计划 +测试完毕,开下一个模块 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9a9afc6..7dfc8d1 100644 --- a/pom.xml +++ b/pom.xml @@ -57,8 +57,14 @@ pagehelper-spring-boot-starter 1.4.7 + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.3.0 + - KingbaseES V8/V9 数据库 JDBC 驱动 + com.kingbase8 kingbase8 diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java index 47290d7..1e18dc6 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java @@ -1,15 +1,20 @@ package com.bipt.intelligentapplicationorchestrationservice; +import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.transaction.annotation.EnableTransactionManagement; @MapperScan("com.bipt.intelligentapplicationorchestrationservice.mapper")//指定扫描Mapper接口的包 @SpringBootApplication +@EnableTransactionManagement +@Slf4j public class IntelligentApplicationOrchestrationServiceApplication { public static void main(String[] args) { SpringApplication.run(IntelligentApplicationOrchestrationServiceApplication.class, args); + log.info("server started"); } } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java new file mode 100644 index 0000000..8efb176 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java @@ -0,0 +1,47 @@ +package com.bipt.intelligentapplicationorchestrationservice.config; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.servers.Server; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; + +import java.util.ArrayList; +import java.util.List; + +/** + * 配置类,注册web层相关组件 + */ +@Configuration +@Slf4j +public class WebMvcConfiguration{ + + /** + * 配置OpenAPI信息 + */ + @Bean + public OpenAPI customOpenAPI() { + // 设置服务器信息(可选) + List servers = new ArrayList<>(); + servers.add(new Server().url("/").description("本地服务器")); + + return new OpenAPI() + .info(new Info() + .title("智能应用服务管理") + .version("2.0") + .description("智能应用服务管理接口文档")) + .servers(servers); + } + +// /** +// * 设置静态资源映射(Springdoc不需要特殊配置,保留可能的其他资源映射) +// */ +// @Override +// protected void addResourceHandlers(ResourceHandlerRegistry registry) { +// // 保留其他静态资源映射(如果有) +// // registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); +// } +} \ No newline at end of file diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java new file mode 100644 index 0000000..0985939 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java @@ -0,0 +1,6 @@ +package com.bipt.intelligentapplicationorchestrationservice.constant; + +public class MessageConstant { + public static final String UNKNOWN_ERROR = "未知错误"; + public static final String ALREADY_EXISTS = "数据集已存在"; +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java index 7f64e72..be81792 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java @@ -2,7 +2,6 @@ package com.bipt.intelligentapplicationorchestrationservice.controller; import com.bipt.intelligentapplicationorchestrationservice.pojo.*; import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService; -import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -28,6 +27,11 @@ public class DatasetController { return OptResult.success(); } + /** + * 分页查询 + * @param dataSetPageQueryDTO + * @return + */ @GetMapping("/page") public OptResult page(DatasetPageQueryDTO dataSetPageQueryDTO) { log.info("数据集分页查询:{}", dataSetPageQueryDTO); @@ -38,32 +42,28 @@ public class DatasetController { /** * 修改数据集 - * @param datasetEntity + * @param datasetDTO * @return */ @PutMapping - public OptResult update(@RequestBody DatasetEntity datasetEntity){ - log.info("修改数据集",datasetEntity); - datasetService.update(datasetEntity); + public OptResult update(@RequestBody DatasetDTO datasetDTO){ + log.info("修改数据集",datasetDTO); + datasetService.update(datasetDTO); return OptResult.success(); } + + /** * 批量删除数据集 * @param datasetIds 数据集ID列表 * @return 操作结果 */ @DeleteMapping - public OptResult deleteBatch(@RequestBody List datasetIds) { + public OptResult deleteBatch(@RequestBody List datasetIds) { log.info("批量删除数据集,ID列表:{}", datasetIds); datasetService.deleteBatch(datasetIds); return OptResult.success("批量删除成功"); } - - - - - - } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java new file mode 100644 index 0000000..910eaf4 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java @@ -0,0 +1,34 @@ +package com.bipt.intelligentapplicationorchestrationservice.handler; + +import com.bipt.intelligentapplicationorchestrationservice.constant.MessageConstant; +import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.sql.SQLIntegrityConstraintViolationException; + +/** + * 全局异常处理器,处理项目中抛出的业务异常 + */ +@RestControllerAdvice +@Slf4j +public class GlobalExceptionHandler { + /* + * 捕获SQL异常 + * */ + @ExceptionHandler + public OptResult exceptionHandler(SQLIntegrityConstraintViolationException ex){ + String message = ex.getMessage(); + if(message.contains("Duplicate entry")) { + String[] split = message.split(" "); + String username = split[2]; + String msg = username + MessageConstant.ALREADY_EXISTS; + return OptResult.error(msg); + }else { + return OptResult.error(MessageConstant.UNKNOWN_ERROR); + + } + } + +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java index 3e83f61..d1869f2 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java @@ -7,7 +7,6 @@ import com.github.pagehelper.Page; import org.apache.ibatis.annotations.*; import java.util.List; -import java.util.Map; @Mapper public interface DatasetMapper { @@ -19,7 +18,7 @@ public interface DatasetMapper { Page pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO); @Select("select * from dataset where dataset_id=#{datasetId}") - DatasetEntity getById(Integer datasetId); - @Delete("delete from dataset where dataset_id = #{datasetId}") - void deleteBatch(List datasetIds); + DatasetEntity getById(Long datasetId); + + void deleteBatch(@Param("datasetIds") List datasetIds); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java index ee86df6..fe7a3a9 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java @@ -1,6 +1,9 @@ package com.bipt.intelligentapplicationorchestrationservice.pojo; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.Map; @@ -9,9 +12,14 @@ import java.util.Map; * @author hky */ @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class DatasetDTO implements Serializable { - private Integer datasetId; + private Long datasetId; private String datasetName; - private Integer datasetType; - private Map args; + private int datasetType; + private String dsPath; +// private Map args; + private String args; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java index 7409971..6b065b9 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java @@ -17,12 +17,13 @@ import java.util.Map; @NoArgsConstructor @AllArgsConstructor public class DatasetEntity implements Serializable { - private Integer datasetId; + private Long datasetId; private String datasetName; - private Integer datasetType; - private Integer datasetStatus; + private int datasetType; + private int datasetStatus; private String dsPath; - private Map args; +// private Map args; + private String args; private LocalDateTime createTime; private LocalDateTime updateTime; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java index b047610..8971274 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java @@ -1,6 +1,9 @@ package com.bipt.intelligentapplicationorchestrationservice.pojo; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.io.Serializable; import java.time.LocalDateTime; @@ -10,9 +13,18 @@ import java.util.Map; * @author hky */ @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class DatasetPageQueryDTO implements Serializable{ private int page; private int pageSize; - private Integer datasetType; - private Integer datasetStatus; + private String datasetName; + private int datasetType; + private int datasetStatus; + private String dsPath; + private String args; + private LocalDateTime createTime; + private LocalDateTime updateTime; + } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java index 4ebebc5..17b9194 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java @@ -1,5 +1,10 @@ package com.bipt.intelligentapplicationorchestrationservice.pojo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + import java.io.Serializable; import java.time.LocalDateTime; import java.util.Map; @@ -7,12 +12,17 @@ import java.util.Map; /** * @author hky */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class DatasetVO implements Serializable { private String datasetName; private Integer datasetType; private Integer datasetStatus; private String dsPath; - private Map args; +// private Map args; + private String args; private LocalDateTime createTime; private LocalDateTime updateTime; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java index 3b6c15b..a979d9a 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java @@ -4,16 +4,17 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; import java.util.List; /** * 分页 - * @param */ @Data -@NoArgsConstructor @AllArgsConstructor -public class PageResult { - private Long total; - private List rows; +@NoArgsConstructor +public class PageResult implements Serializable { + private long total; + private List records; + } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java index f3e844e..8e99918 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java @@ -1,7 +1,6 @@ package com.bipt.intelligentapplicationorchestrationservice.service; import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO; -import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity; import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetPageQueryDTO; import com.bipt.intelligentapplicationorchestrationservice.pojo.PageResult; @@ -13,9 +12,9 @@ import java.util.List; public interface DatasetService { void save(DatasetDTO datasetDTO); - void update(DatasetEntity datasetEntity); + void update(DatasetDTO datasetDTO); PageResult pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO); - void deleteBatch(List datasetIds); + void deleteBatch(List datasetIds); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java index 3e97b91..dafc65e 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java @@ -12,8 +12,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.util.Collections; import java.util.List; -import java.util.Map; @Service @Slf4j @@ -26,20 +26,22 @@ public class DatasetServiceImpl implements DatasetService { * @param datasetDTO */ @Override + @Transactional public void save(DatasetDTO datasetDTO) { //判断数据集类型,如果是本地上传则保存,若用调用数据仓库进入下一步 if (datasetDTO.getDatasetType()==0){ //TODO 保存到分布式文件系统 }else { - Map args = datasetDTO.getArgs(); - Integer datasetType = datasetDTO.getDatasetType(); +// Map args = datasetDTO.getArgs(); + String args = datasetDTO.getArgs(); + int datasetType = datasetDTO.getDatasetType(); //TODO 根据筛选条件调用数据仓库中的数据 //TODO 调用数据仓库保存到分布式文件系统 } DatasetEntity datasetEntity = new DatasetEntity(); - BeanUtils.copyProperties(datasetEntity,datasetDTO); + BeanUtils.copyProperties(datasetDTO,datasetEntity); datasetEntity.setDatasetStatus(1); datasetEntity.setCreateTime(LocalDateTime.now()); datasetEntity.setUpdateTime(LocalDateTime.now()); @@ -50,12 +52,14 @@ public class DatasetServiceImpl implements DatasetService { /** * 修改数据集 * - * @param datasetEntity + * @param datasetDTO */ @Override @Transactional - public void update(DatasetEntity datasetEntity) { - if (datasetEntity.getDatasetType()==0){ + public void update(DatasetDTO datasetDTO) { + /*DatasetEntity datasetEntity = new DatasetEntity(); + BeanUtils.copyProperties(datasetDTO,datasetEntity);*/ + if (datasetDTO.getDatasetType()==0){ //TODO 覆盖保存到分布式文件系统中 }else { @@ -63,9 +67,12 @@ public class DatasetServiceImpl implements DatasetService { //TODO - datasetEntity.setUpdateTime(LocalDateTime.now()); - datasetMapper.updata(datasetEntity); + } + DatasetEntity datasetEntity = new DatasetEntity(); + BeanUtils.copyProperties(datasetDTO,datasetEntity); + datasetEntity.setUpdateTime(LocalDateTime.now()); + datasetMapper.updata(datasetEntity); } /** @@ -75,9 +82,7 @@ public class DatasetServiceImpl implements DatasetService { */ @Override public PageResult pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO) { - int pageNum = dataSetPageQueryDTO.getPage(); - int pageSize = dataSetPageQueryDTO.getPageSize(); - PageHelper.startPage(pageNum, pageSize); + PageHelper.startPage(dataSetPageQueryDTO.getPage(), dataSetPageQueryDTO.getPageSize()); Page page = datasetMapper.pageQuery(dataSetPageQueryDTO); return new PageResult(page.getTotal(), page.getResult()); } @@ -88,16 +93,16 @@ public class DatasetServiceImpl implements DatasetService { */ @Override @Transactional - public void deleteBatch(List datasetIds) { - for (Integer datasetId : datasetIds) { + public void deleteBatch(List datasetIds) { + for (Long datasetId : datasetIds) { DatasetEntity datasetEntity = datasetMapper.getById(datasetId); if (datasetEntity == null) { throw new IllegalArgumentException("数据集不存在,ID:" + datasetId); } + } //TODO 在分布式文件系统中删除 - datasetMapper.deleteBatch(datasetIds); } diff --git a/src/main/resources/mapper/DatasetMapper.xml b/src/main/resources/mapper/DatasetMapper.xml index 41d1f85..9a0e67f 100644 --- a/src/main/resources/mapper/DatasetMapper.xml +++ b/src/main/resources/mapper/DatasetMapper.xml @@ -25,15 +25,19 @@ args=#{args}, - - create_time=#{createTime}, - - + update_time=#{updateTime} where dataset_id = #{datasetId} + + DELETE FROM dataset + WHERE dataset_id IN + + #{id} + +