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}
+
+