diff --git a/pom.xml b/pom.xml
index 8ce166e..9003ee4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
srt-cloud-gateway
srt-data-development
srt-cloud-data-governance
- srt-cloud-data-service
+ srt-cloud-data-server
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java
index e5c7840..ef9b703 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java
@@ -9,10 +9,7 @@ import net.srt.framework.common.utils.Result;
import net.srt.query.DatastandrdQuery;
import net.srt.service.DatastandardService;
import net.srt.vo.DatastandardVo;
-import net.srt.vo.MetamodelPropertyVO;
-import net.srt.vo.StandardManagementVo;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectRecordController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectRecordController.java
new file mode 100644
index 0000000..5ba843d
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectRecordController.java
@@ -0,0 +1,45 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataCollectRecordConvert;
+import net.srt.entity.MetadataCollectRecordEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.query.MetadataCollectRecordQuery;
+import net.srt.service.MetadataCollectRecordService;
+import net.srt.vo.MetadataCollectRecordVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@RestController
+@RequestMapping("metadata-collect-record")
+@Tag(name = "数据治理-元数据采集任务记录")
+@AllArgsConstructor
+public class MetadataCollectRecordController {
+ private final MetadataCollectRecordService metadataCollectRecordService;
+
+ @GetMapping("page")
+ @Operation(summary = "分页")
+ public Result> page(@Valid MetadataCollectRecordQuery query){
+ PageResult page = metadataCollectRecordService.page(query);
+ return Result.ok(page);
+ }
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable Long id){
+ MetadataCollectRecordEntity entity = metadataCollectRecordService.getById(id);
+ return Result.ok(MetadataCollectRecordConvert.INSTANCE.convert(entity));
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ public Result delete(@RequestBody List idList) {
+ metadataCollectRecordService.delete(idList);
+ return Result.ok();
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataPropertyController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataPropertyController.java
new file mode 100644
index 0000000..2e6c6ed
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataPropertyController.java
@@ -0,0 +1,51 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataPropertyConvert;
+import net.srt.entity.MetadataPropertyEntity;
+import net.srt.framework.common.utils.Result;
+import net.srt.service.MetadataPropertyService;
+import net.srt.vo.MetadataPropertyVo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@RestController
+@RequestMapping("metadata-property")
+@Tag(name = "数据治理-元数据属性值")
+@AllArgsConstructor
+public class MetadataPropertyController {
+ private final MetadataPropertyService metadataPropertyService;
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id) {
+ MetadataPropertyEntity entity = metadataPropertyService.getById(id);
+ return Result.ok(MetadataPropertyConvert.INSTANCE.convert(entity));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ public Result save(@RequestBody MetadataPropertyVo vo){
+ metadataPropertyService.save(vo);
+ return Result.ok();
+ }
+
+ @PutMapping
+ @Operation(summary = "修改")
+ public Result update(@RequestBody @Valid MetadataPropertyVo vo){
+ metadataPropertyService.update(vo);
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ public Result delete(@RequestBody List idList){
+ metadataPropertyService.delete(idList);
+ return Result.ok();
+ }
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataStandarRelController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataStandarRelController.java
new file mode 100644
index 0000000..af70399
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataStandarRelController.java
@@ -0,0 +1,47 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataStandardRelConvert;
+import net.srt.entity.MetadataStandardRelEntity;
+import net.srt.framework.common.utils.Result;
+import net.srt.service.MetadataStandardRelService;
+import net.srt.vo.MetadataStandardRelVO;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("standard-rel")
+@Tag(name = "数据治理-元数据标准关联表")
+@AllArgsConstructor
+public class MetadataStandarRelController {
+ private final MetadataStandardRelService metadataStandardRelService;
+
+ @GetMapping("/{metadataId}/{metadata-rel}")
+ @Operation(summary = "根据metadataId获取标准字段")
+ public Result getMetadataRel(@PathVariable("metadataId") Long metadataId){
+ MetadataStandardRelVO standardRelVO = metadataStandardRelService.getMetadataRel(metadataId);
+ return Result.ok(standardRelVO);
+ }
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id) {
+ MetadataStandardRelEntity entity = metadataStandardRelService.getById(id);
+ return Result.ok(MetadataStandardRelConvert.INSTANCE.convert(entity));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ public Result save(@RequestBody MetadataStandardRelVO vo){
+ metadataStandardRelService.save(vo);
+ return Result.ok();
+ }
+
+ @DeleteMapping("/{metadataId}/{standardId}")
+ @Operation(summary = "删除")
+ public Result delete(@PathVariable Long metadataId,@PathVariable Long standardId){
+ metadataStandardRelService.delete(metadataId,standardId);
+ return Result.ok();
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetamodelController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetamodelController.java
index 7786527..15798bd 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetamodelController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetamodelController.java
@@ -2,7 +2,6 @@ package net.srt.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.tags.Tags;
import lombok.AllArgsConstructor;
import net.srt.convert.MetamodelConvert;
import net.srt.entity.MetamodelEntity;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java
index 2e0fec1..5a1fd05 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java
@@ -1,6 +1,5 @@
package net.srt.controller;
-import cn.hutool.db.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskColumnController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskColumnController.java
index 906952e..24a339f 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskColumnController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskColumnController.java
@@ -1,6 +1,5 @@
package net.srt.controller;
-import cn.hutool.db.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java
index 495e40a..0bb51ed 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java
@@ -2,7 +2,6 @@ package net.srt.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.tags.Tags;
import lombok.AllArgsConstructor;
import net.srt.convert.QualityTaskConvert;
import net.srt.entity.QualityTaskEntity;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
index b18e791..20ae5b2 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
@@ -2,9 +2,6 @@ package net.srt.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
-import net.srt.entity.DatastandardEntity;
-import net.srt.entity.StandardEntity;
-import net.srt.framework.common.utils.BeanUtil;
import net.srt.framework.common.utils.Result;
import net.srt.framework.common.utils.TreeNodeVo;
import net.srt.service.StandardService;
@@ -12,8 +9,6 @@ import net.srt.vo.StandardManagementVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import javax.validation.Valid;
-import java.util.ArrayList;
import java.util.List;
/**
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java
index 1f168b5..43fc2eb 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java
@@ -2,7 +2,6 @@ package net.srt.convert;
import net.srt.entity.DatastandardEntity;
import net.srt.vo.DatastandardVo;
-import net.srt.vo.StandardManagementVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataCollectRecordConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataCollectRecordConvert.java
new file mode 100644
index 0000000..61bb263
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataCollectRecordConvert.java
@@ -0,0 +1,23 @@
+package net.srt.convert;
+
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataCollectRecordDto;
+import net.srt.entity.MetadataCollectRecordEntity;
+import net.srt.vo.MetadataCollectRecordVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+@Mapper
+public interface MetadataCollectRecordConvert {
+ MetadataCollectRecordConvert INSTANCE = Mappers.getMapper(MetadataCollectRecordConvert.class);
+
+ MetadataCollectRecordEntity convert(MetadataCollectRecordVO vo);
+
+ MetadataCollectRecordEntity convert(DataGovernanceMetadataCollectRecordDto dto);
+
+ MetadataCollectRecordVO convert(MetadataCollectRecordEntity entity);
+
+ List convertList(List list);
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataConvert.java
index 86c6cc9..45edd01 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataConvert.java
@@ -1,22 +1,27 @@
package net.srt.convert;
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataDto;
import net.srt.entity.MetadataEntity;
-import net.srt.vo.MetadataVo;
+import net.srt.vo.MetadataVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
-/**
- * @BelongsProject: srt_cloud
- * @BelongsPackage: net.srt.convert
- * @Author: jpz
- * @CreateTime: 2023/12/24 15:42
- */
+import java.util.List;
+
@Mapper
public interface MetadataConvert {
-
MetadataConvert INSTANCE = Mappers.getMapper(MetadataConvert.class);
- MetadataVo convert(MetadataEntity entity);
+ MetadataEntity convert(MetadataVO vo);
+
+ MetadataEntity convert(DataGovernanceMetadataDto dto);
+
+ MetadataVO convert(MetadataEntity entity);
+
+ DataGovernanceMetadataDto convertDto(MetadataEntity entity);
+
+ List convertList(List list);
+
+ List convertDtoList(List list);
- MetadataEntity convert(MetadataVo vo);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataPropertyConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataPropertyConvert.java
new file mode 100644
index 0000000..ec4581e
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataPropertyConvert.java
@@ -0,0 +1,25 @@
+package net.srt.convert;
+
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataPropertyDto;
+import net.srt.entity.MetadataPropertyEntity;
+import net.srt.vo.MetadataPropertyVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+@Mapper
+public interface MetadataPropertyConvert {
+ MetadataPropertyConvert INSTANCE = Mappers.getMapper(MetadataPropertyConvert.class);
+
+ MetadataPropertyEntity convert(MetadataPropertyVo vo);
+
+ MetadataPropertyEntity convert(DataGovernanceMetadataPropertyDto dto);
+
+ MetadataPropertyVo convert(MetadataPropertyEntity entity);
+
+ DataGovernanceMetadataPropertyDto convertDto(MetadataPropertyEntity entity);
+
+ List convertList(List list);
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataStandardRelConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataStandardRelConvert.java
new file mode 100644
index 0000000..e24a843
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataStandardRelConvert.java
@@ -0,0 +1,20 @@
+package net.srt.convert;
+
+import net.srt.entity.MetadataStandardRelEntity;
+import net.srt.vo.MetadataStandardRelVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+@Mapper
+public interface MetadataStandardRelConvert {
+ MetadataStandardRelConvert INSTANCE = Mappers.getMapper(MetadataStandardRelConvert.class);
+
+ MetadataStandardRelEntity convert(MetadataStandardRelVO vo);
+
+ MetadataStandardRelVO convert(MetadataStandardRelEntity entity);
+
+ List convertList(List list);
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetamodelConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetamodelConvert.java
index 87e1f5f..711a48e 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetamodelConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetamodelConvert.java
@@ -4,7 +4,6 @@ import net.srt.entity.MetamodelEntity;
import net.srt.vo.MetamodelVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
-import org.springframework.stereotype.Component;
import java.util.List;
@Mapper
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskColumnConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskColumnConvert.java
index a42fde4..5829068 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskColumnConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskColumnConvert.java
@@ -1,8 +1,6 @@
package net.srt.convert;
-import net.srt.entity.QualityQueryEntity;
import net.srt.entity.QualityTaskColumnEntity;
-import net.srt.vo.QualityRuleVo;
import net.srt.vo.QualityTaskColumnVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskConvert.java
index 9bc23c4..d4ff546 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskConvert.java
@@ -1,13 +1,10 @@
package net.srt.convert;
-import net.srt.controller.QualityTaskController;
import net.srt.entity.QualityTaskEntity;
import net.srt.vo.QualityTaskVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
-import org.springframework.stereotype.Component;
-import javax.swing.*;
import java.util.List;
/**
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataCollectRecordDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataCollectRecordDao.java
new file mode 100644
index 0000000..f675986
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataCollectRecordDao.java
@@ -0,0 +1,9 @@
+package net.srt.dao;
+
+import net.srt.entity.MetadataCollectRecordEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MetadataCollectRecordDao extends BaseDao {
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataPropertyDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataPropertyDao.java
index 5253481..62b6525 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataPropertyDao.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataPropertyDao.java
@@ -8,13 +8,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
-/**
- * @BelongsProject: srt_cloud
- * @BelongsPackage: net.srt.dao
- * @Author: jpz
- * @CreateTime: 2023/12/24 15:49
- */
@Mapper
public interface MetadataPropertyDao extends BaseDao {
- List listPropertyById(@Param("id") Long id, Long metamodelId);
+ List listPropertyById(@Param("id") Long id, @Param("metamodelId") Long metamodelId);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataStandardRelDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataStandardRelDao.java
new file mode 100644
index 0000000..38dbd4a
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataStandardRelDao.java
@@ -0,0 +1,9 @@
+package net.srt.dao;
+
+import net.srt.entity.MetadataStandardRelEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MetadataStandardRelDao extends BaseDao {
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java
index 22aa102..4a2991b 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java
@@ -1,8 +1,6 @@
package net.srt.dao;
import net.srt.entity.QualityTaskColumnEntity;
-import net.srt.entity.QualityTaskEntity;
-import net.srt.entity.QualityTaskTableEntity;
import net.srt.framework.mybatis.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java
index be018d5..e871de1 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java
@@ -1,6 +1,5 @@
package net.srt.dao;
-import net.srt.entity.QualityTaskEntity;
import net.srt.entity.QualityTaskTableEntity;
import net.srt.framework.mybatis.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java
index 8bf82db..f71ac74 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java
@@ -1,6 +1,5 @@
package net.srt.entity;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectRecordEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectRecordEntity.java
new file mode 100644
index 0000000..12eb390
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectRecordEntity.java
@@ -0,0 +1,51 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+import java.util.Date;
+
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName("data_governance_metadata_collect_record")
+public class MetadataCollectRecordEntity extends BaseEntity {
+
+ /**
+ * 采集任务id
+ */
+ private Long metadataCollectId;
+
+ /**
+ * 1-成功 0-失败 2-运行中
+ */
+ private Integer status;
+
+ /**
+ * 实时日志
+ */
+ private String realTimeLog;
+
+ /**
+ * 错误日志
+ */
+ private String errorLog;
+
+ /**
+ * 开始时间
+ */
+ private Date startTime;
+
+ /**
+ * 结束时间
+ */
+ private Date endTime;
+
+ /**
+ * 项目(租户)id
+ */
+ private Long projectId;
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataPropertyEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataPropertyEntity.java
index 7131f44..2571fe6 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataPropertyEntity.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataPropertyEntity.java
@@ -5,16 +5,11 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import net.srt.framework.mybatis.entity.BaseEntity;
-/**
- * @BelongsProject: srt_cloud
- * @BelongsPackage: net.srt.entity
- * @Author: jpz
- * @CreateTime: 2023/12/24 15:50
- */
-@EqualsAndHashCode(callSuper=false)
+@EqualsAndHashCode(callSuper = false)
@Data
@TableName("data_governance_metadata_property")
public class MetadataPropertyEntity extends BaseEntity {
+
/**
* 属性id
*/
@@ -35,4 +30,6 @@ public class MetadataPropertyEntity extends BaseEntity {
*/
private Long projectId;
+
+
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataStandardEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataStandardEntity.java
new file mode 100644
index 0000000..2615fbd
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataStandardEntity.java
@@ -0,0 +1,76 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName("data_governance_standard")
+public class MetadataStandardEntity extends BaseEntity {
+
+ /**
+ * 所属目录id
+ */
+ private Long categoryId;
+
+ /**
+ * 标准英文名称
+ */
+ private String engName;
+
+ /**
+ * 标准中文名称
+ */
+ private String cnName;
+
+ /**
+ * 编码数
+ */
+ private Integer codeNum;
+
+ /**
+ * 数据类型 数字,字符串,日期,小数
+ */
+ private String dataType;
+
+ /**
+ * 长度
+ */
+ private Integer dataLength;
+
+ /**
+ * 精度
+ */
+ private Integer dataPrecision;
+
+ /**
+ * 非空 0-否 1-是
+ */
+ private Integer nullable;
+
+ /**
+ * 标准码表id
+ */
+ private Integer standardCodeId;
+
+ /**
+ * 1-标准字段 2-标准码表
+ */
+ private Integer type;
+
+ /**
+ * 描述
+ */
+ private String note;
+
+ /**
+ * 项目(租户)id
+ */
+ private Long projectId;
+
+ private Integer status;
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataStandardRelEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataStandardRelEntity.java
new file mode 100644
index 0000000..b186c5f
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataStandardRelEntity.java
@@ -0,0 +1,29 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName("data_governance_metadata_standard_rel")
+public class MetadataStandardRelEntity extends BaseEntity {
+
+ /**
+ * 元数据id
+ */
+ private Long metadataId;
+
+ /**
+ * 标准字段id
+ */
+ private Long standardId;
+
+ /**
+ * 真删除
+ */
+ private Integer deleted;
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/init/BusinessInitializer.java b/srt-cloud-data-governance/src/main/java/net/srt/init/BusinessInitializer.java
new file mode 100644
index 0000000..947e95a
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/init/BusinessInitializer.java
@@ -0,0 +1,34 @@
+package net.srt.init;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import net.srt.service.MetadataCollectRecordService;
+import net.srt.service.QualityTaskService;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class BusinessInitializer implements ApplicationRunner {
+
+ private final MetadataCollectRecordService metadataCollectRecordService;
+ private final QualityTaskService qualityTaskService;
+
+ @Override
+ public void run(ApplicationArguments args) {
+ initScheduleMonitor();
+ }
+
+ /**
+ * init task monitor
+ */
+ private void initScheduleMonitor() {
+ //处理没执行完的采集任务
+ metadataCollectRecordService.dealNotFinished();
+ //处理没执行完的质量检测任务
+ qualityTaskService.dealNotFinished();
+ }
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/query/MetadataCollectRecordQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/query/MetadataCollectRecordQuery.java
new file mode 100644
index 0000000..3d6e768
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/query/MetadataCollectRecordQuery.java
@@ -0,0 +1,27 @@
+package net.srt.query;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.common.query.Query;
+import net.srt.framework.common.utils.DateUtils;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Schema(description = "数据治理-源数据采集任务记录查询")
+public class MetadataCollectRecordQuery extends Query {
+ private Long metadataCollectId;
+ @Schema(description = "开始时间")
+ @DateTimeFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date startTime;
+ @Schema(description = "结束时间")
+ @DateTimeFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date endTime;
+ private Integer status;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectRecordService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectRecordService.java
new file mode 100644
index 0000000..64970c7
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectRecordService.java
@@ -0,0 +1,16 @@
+package net.srt.service;
+
+import net.srt.entity.MetadataCollectQuery;
+import net.srt.entity.MetadataCollectRecordEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.query.MetadataCollectRecordQuery;
+import net.srt.vo.MetadataCollectRecordVO;
+
+import java.util.List;
+
+public interface MetadataCollectRecordService extends BaseService {
+ PageResult page(MetadataCollectRecordQuery query);
+
+ void delete(List idList);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataPropertyService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataPropertyService.java
new file mode 100644
index 0000000..1048fa0
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataPropertyService.java
@@ -0,0 +1,15 @@
+package net.srt.service;
+
+import net.srt.entity.MetadataPropertyEntity;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.vo.MetadataPropertyVo;
+
+import java.util.List;
+
+public interface MetadataPropertyService extends BaseService {
+ void save(MetadataPropertyVo vo);
+
+ void update(MetadataPropertyVo vo);
+
+ void delete(List idList);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataStandardRelService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataStandardRelService.java
new file mode 100644
index 0000000..57514e0
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataStandardRelService.java
@@ -0,0 +1,13 @@
+package net.srt.service;
+
+import net.srt.entity.MetadataStandardRelEntity;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.vo.MetadataStandardRelVO;
+
+public interface MetadataStandardRelService extends BaseService {
+ void delete(Long metadataId, Long standardId);
+
+ MetadataStandardRelVO getMetadataRel(Long metadataId);
+
+ void save(MetadataStandardRelVO vo);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectRecordServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectRecordServiceImpl.java
new file mode 100644
index 0000000..1a56fa2
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectRecordServiceImpl.java
@@ -0,0 +1,45 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataCollectRecordConvert;
+import net.srt.dao.MetadataCollectRecordDao;
+import net.srt.entity.MetadataCollectRecordEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.query.MetadataCollectRecordQuery;
+import net.srt.service.MetadataCollectRecordService;
+import net.srt.vo.MetadataCollectRecordVO;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class MetadataCollectRecordServiceImpl extends BaseServiceImpl implements MetadataCollectRecordService {
+ @Override
+ public PageResult page(MetadataCollectRecordQuery query) {
+ IPage page = baseMapper.selectPage(getPage(query),getWrapper(query));
+ return new PageResult<>(MetadataCollectRecordConvert.INSTANCE.convertList(page.getRecords()),page.getTotal());
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(List idList) {
+ removeByIds(idList);
+ }
+
+ private LambdaQueryWrapper getWrapper(MetadataCollectRecordQuery query) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(query.getMetadataCollectId() != null,MetadataCollectRecordEntity::getMetadataCollectId,query.getMetadataCollectId())
+ .eq(query.getStatus() != null, MetadataCollectRecordEntity::getStatus,query.getStatus())
+ .gt(query.getStartTime()!=null,MetadataCollectRecordEntity::getStartTime,query.getStartTime())
+ .lt(query.getEndTime()!=null,MetadataCollectRecordEntity::getEndTime,query.getEndTime())
+ .orderByDesc(MetadataCollectRecordEntity::getId);
+ return wrapper;
+ }
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
index 1dddcf8..a341d72 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
@@ -10,8 +10,10 @@ import net.srt.api.module.data.governance.constant.MetadataCollectType;
import net.srt.api.module.quartz.QuartzDataGovernanceMetadataCollectApi;
import net.srt.convert.MetadataCollectConvert;
import net.srt.dao.MetadataCollectDao;
+import net.srt.dao.MetadataCollectRecordDao;
import net.srt.entity.MetadataCollectEntity;
import net.srt.entity.MetadataCollectQuery;
+import net.srt.entity.MetadataCollectRecordEntity;
import net.srt.framework.common.exception.ServerException;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
@@ -29,6 +31,7 @@ import java.util.List;
public class MetadataCollectServiceImpl extends BaseServiceImpl implements MetadataCollectService {
private final QuartzDataGovernanceMetadataCollectApi metadataCollectApi;
+ private final MetadataCollectRecordDao collectRecordDao;
@Override
public PageResult page(MetadataCollectQuery query) {
@@ -78,10 +81,12 @@ public class MetadataCollectServiceImpl extends BaseServiceImpl idList) {
removeByIds(idList);
-// for (Long id : idList) {
-// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
-//
-// }
+
+ for (Long id : idList) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(MetadataCollectRecordEntity::getMetadataCollectId,id);
+ collectRecordDao.delete(wrapper);
+ }
}
private void checkParam(MetadataCollectVO vo){
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataPropertyServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataPropertyServiceImpl.java
new file mode 100644
index 0000000..65d0b59
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataPropertyServiceImpl.java
@@ -0,0 +1,35 @@
+package net.srt.service.impl;
+
+import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataPropertyConvert;
+import net.srt.dao.MetadataPropertyDao;
+import net.srt.entity.MetadataPropertyEntity;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.service.MetadataPropertyService;
+import net.srt.vo.MetadataPropertyVo;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class MetadataPropertyServiceImpl extends BaseServiceImpl implements MetadataPropertyService {
+ @Override
+ public void save(MetadataPropertyVo vo) {
+ MetadataPropertyEntity entity = MetadataPropertyConvert.INSTANCE.convert(vo);
+ baseMapper.insert(entity);
+ }
+
+ @Override
+ public void update(MetadataPropertyVo vo) {
+ MetadataPropertyEntity entity = MetadataPropertyConvert.INSTANCE.convert(vo);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(List idList) {
+ removeByIds(idList);
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java
index 1e64ca1..9dd5d33 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceImpl.java
@@ -1,12 +1,234 @@
package net.srt.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.v3.oas.annotations.servers.Server;
import lombok.AllArgsConstructor;
+import net.srt.api.module.data.governance.constant.BuiltInMetamodel;
+import net.srt.convert.MetadataConvert;
import net.srt.dao.MetadataDao;
+import net.srt.dao.MetadataPropertyDao;
import net.srt.entity.MetadataEntity;
+import net.srt.entity.MetadataPropertyEntity;
+import net.srt.framework.common.cache.bean.Neo4jInfo;
+import net.srt.framework.common.exception.ServerException;
+import net.srt.framework.common.utils.BeanUtil;
+import net.srt.framework.common.utils.BuildTreeUtils;
+import net.srt.framework.common.utils.TreeNodeVo;
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.framework.security.cache.TokenStoreCache;
import net.srt.service.MetadataService;
-@Server
+import net.srt.vo.MetadataVO;
+import net.srt.vo.MetamodelPropertyVO;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
@AllArgsConstructor
public class MetadataServiceImpl extends BaseServiceImpl implements MetadataService {
+
+ private final MetadataDao metadataDao;
+ private final MetadataPropertyDao metadataPropertyDao;
+ private final TokenStoreCache tokenStoreCache;
+
+ @Override
+ public List listByParentId(Long parentId) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(MetadataEntity::getParentId,parentId)
+ .orderByAsc(MetadataEntity::getOrderNo);
+ dataScopeWithOrgId(wrapper);
+ List metadataEntities = baseMapper.selectList(wrapper);
+ return BeanUtil.copyListProperties(metadataEntities,TreeNodeVo::new, (oldItem, newItem) ->{
+ newItem.setLabel(oldItem.getName());
+ newItem.setValue(oldItem.getId());
+ newItem.setLeaf(BuiltInMetamodel.COLUMN.getId().equals(oldItem.getMetamodelId()));
+ if(newItem.getPath().contains("/")){
+ newItem.setParentPath(newItem.getPath().substring(0,newItem.getPath().lastIndexOf("/")));
+ }
+ });
+ }
+
+ @Override
+ public List listFloder() {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(MetadataEntity::getIfLeaf,1)
+ .orderByAsc(MetadataEntity::getOrderNo)
+ .orderByAsc(MetadataEntity::getId);
+ dataScopeWithOrgId(wrapper);
+ List metadatas = baseMapper.selectList(wrapper);
+ List treeNodeVos = BeanUtil.copyListProperties(metadatas, TreeNodeVo::new, (oldItem, newItem) -> {
+ newItem.setLabel(oldItem.getName());
+ newItem.setValue(oldItem.getId());
+ if (newItem.getPath().contains("/")) {
+ newItem.setParentPath(newItem.getPath().substring(0, newItem.getPath().lastIndexOf("/")));
+ }
+ });
+ return BuildTreeUtils.buildTree(treeNodeVos);
+ }
+
+ @Override
+ public List listDb() {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.in(MetadataEntity::getMetamodelId,BuiltInMetamodel.SCHEMA.getId(),BuiltInMetamodel.TABLE.getId())
+ .or()
+ .isNull(MetadataEntity::getMetamodelId)
+ .orderByAsc(MetadataEntity::getOrderNo);
+ dataScopeWithOrgId(wrapper);
+ List metadatas = baseMapper.selectList(wrapper);
+ List treeNodeVos = BeanUtil.copyListProperties(metadatas,TreeNodeVo::new, (oldItem, newItem) -> {
+ newItem.setLabel(oldItem.getName());
+ newItem.setValue(oldItem.getId());
+ newItem.setDisabled(!BuiltInMetamodel.TABLE.getId().equals(oldItem.getMetamodelId()));
+ if(newItem.getPath().contains("/")) {
+ newItem.setParentPath(newItem.getPath().substring(0,newItem.getPath().lastIndexOf("/")));
+ }
+ });
+ return BuildTreeUtils.buildTree(treeNodeVos);
+ }
+
+ @Override
+ public List listByKeyword(String keyword) {
+ if(StringUtil.isBlank(keyword)){
+ return listByParentId(0L);
+ }
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.like(MetadataEntity::getName,keyword)
+ .or()
+ .like(MetadataEntity::getCode,keyword)
+ .orderByAsc(MetadataEntity::getOrderNo)
+ .orderByAsc(MetadataEntity::getId);
+ dataScopeWithOrgId(wrapper);
+ List metadatas = baseMapper.selectList(wrapper);
+ List resultList = new ArrayList<>();
+ //递归获取父级
+ for (MetadataEntity metadata : metadatas) {
+ recursionAddParent(metadata,resultList);
+ }
+ List result = resultList.stream().sorted(Comparator.comparing(MetadataEntity::getOrderNo)).collect(Collectors.toList());
+ List treeNodeVos = BeanUtil.copyListProperties(result ,TreeNodeVo::new, (oldItem, newItem) -> {
+ newItem.setLabel(oldItem.getName());
+ newItem.setValue(oldItem.getId());
+ newItem.setLeaf(BuiltInMetamodel.COLUMN.getId().equals(oldItem.getMetamodelId()));
+ if(newItem.getPath().contains("/")) {
+ newItem.setParentPath(newItem.getPath().substring(0,newItem.getPath().lastIndexOf("/")));
+ }
+ });
+ return BuildTreeUtils.buildTree(treeNodeVos);
+ }
+
+ @Override
+ public MetadataVO get(Long id) {
+ MetadataEntity metadataEntity = getById(id);
+ MetadataVO metadataVO = MetadataConvert.INSTANCE.convert(metadataEntity);
+ metadataVO.setProperties(metadataPropertyDao.listPropertyById(id,metadataEntity.getMetamodelId()));
+ return metadataVO;
+ }
+
+ @Override
+ public void save(MetadataVO vo) {
+ MetadataEntity entity = MetadataConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ entity.setPath(recursionPath(entity,null));
+ buildField(entity);
+ MetadataEntity parentMetadata = baseMapper.selectById(vo.getParentId());
+ if(parentMetadata != null) {
+ entity.setDbType(parentMetadata.getDbType());
+ entity.setDatasourceId(parentMetadata.getDatasourceId());
+ entity.setCollectTaskId(parentMetadata.getCollectTaskId());
+ }
+ baseMapper.insert(entity);
+ buildProperties(entity,vo.getProperties());
+ }
+
+ @Override
+ public void update(MetadataVO vo) {
+ MetadataEntity entity = MetadataConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ entity.setPath(recursionPath(entity,null));
+ buildField(entity);
+ updateById(entity);
+ buildProperties(entity,vo.getProperties());
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(Long id) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(MetadataEntity::getParentId,id).last("limit 1");
+ if(baseMapper.selectOne(wrapper)!=null){
+ throw new ServerException("存在子节点,不可删除!");
+ }
+ removeById(id);
+ LambdaQueryWrapper propertyWrapper = new LambdaQueryWrapper<>();
+ propertyWrapper.eq(MetadataPropertyEntity::getMetadataId,id);
+ metadataPropertyDao.delete(propertyWrapper);
+ }
+
+ @Override
+ public void upNeo4jInfo(Neo4jInfo neo4jInfo) {
+ tokenStoreCache.saveNeo4jInfo(getProjectId(),neo4jInfo);
+ }
+
+ @Override
+ public Neo4jInfo getNeo4jInfo() {
+ return tokenStoreCache.getNeo4jInfo(getProjectId());
+ }
+
+ private void recursionAddParent(MetadataEntity metadataEntity, List resultList){
+ if(resultList.stream().noneMatch(item -> metadataEntity.getId().equals(item.getId()))) {
+ resultList.add(metadataEntity);
+ }
+
+ if(metadataEntity.getParentId()!=0){
+ MetadataEntity parent = getById(metadataEntity.getParentId());
+ recursionAddParent(parent,resultList);
+ }
+ }
+
+ private void buildField(MetadataEntity entity){
+ if(entity.getMetamodelId()!=null){
+ entity.setIcon(metadataDao.selectById(entity.getMetamodelId()).getIcon());
+ }
+ if(entity.getIfLeaf() == 1 && entity.getMetamodelId() == null) {
+ entity.setIcon("/src/assets/folder.png");
+ }
+ }
+
+ private String recursionPath(MetadataEntity metadataEntity, String path) {
+ if(StringUtil.isBlank(path)){
+ path = metadataEntity.getName();
+ }
+ if(metadataEntity.getParentId()!=0){
+ MetadataEntity parent = getById(metadataEntity.getParentId());
+ path = parent.getName() + "/" +path;
+ return recursionPath(parent,path);
+ }
+ return path;
+ }
+
+ private void buildProperties(MetadataEntity entity, List properties){
+ if(!CollectionUtils.isEmpty(properties)){
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(MetadataPropertyEntity::getMetadataId,entity.getId());
+ for (MetamodelPropertyVO property : properties) {
+ MetadataPropertyEntity metadataPropertyEntity = new MetadataPropertyEntity();
+ metadataPropertyEntity.setMetamodelPropertyId(property.getId());
+ metadataPropertyEntity.setMetadataId(entity.getId());
+ metadataPropertyEntity.setProperty(property.getValue());
+ metadataPropertyEntity.setProjectId(entity.getProjectId());
+ if(property.getMetadataPropertyId()!=null){
+ metadataPropertyEntity.setId(property.getMetadataPropertyId());
+ metadataPropertyDao.updateById(metadataPropertyEntity);
+ }else {
+ metadataPropertyDao.insert(metadataPropertyEntity);
+ }
+ }
+ }
+ }
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataStandardRelServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataStandardRelServiceImpl.java
new file mode 100644
index 0000000..47cf725
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataStandardRelServiceImpl.java
@@ -0,0 +1,57 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataStandardRelConvert;
+import net.srt.dao.MetadataStandardRelDao;
+import net.srt.dao.StandardDao;
+import net.srt.entity.MetadataStandardRelEntity;
+import net.srt.entity.StandardEntity;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.service.MetadataStandardRelService;
+import net.srt.vo.MetadataStandardRelVO;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@AllArgsConstructor
+public class MetadataStandardRelServiceImpl extends BaseServiceImpl implements MetadataStandardRelService {
+ private final StandardDao standardDao;
+
+ @Override
+ public MetadataStandardRelVO getMetadataRel(Long metadataId) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(MetadataStandardRelEntity::getMetadataId,metadataId).last("limit 1");
+ MetadataStandardRelEntity relEntity = baseMapper.selectOne(wrapper);
+ if(relEntity!=null){
+ StandardEntity standardEntity = standardDao.selectById(relEntity.getStandardId());
+ MetadataStandardRelVO convert = MetadataStandardRelConvert.INSTANCE.convert(relEntity);
+ convert.setStandardCategoryId(standardEntity.getParentId());
+ return convert;
+ }
+ return null;
+ }
+
+ @Override
+ public void save(MetadataStandardRelVO vo) {
+ MetadataStandardRelEntity entity = MetadataStandardRelConvert.INSTANCE.convert(vo);
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(MetadataStandardRelEntity::getMetadataId,vo.getMetadataId()).eq(MetadataStandardRelEntity::getStandardId,vo.getStandardId()).last("limit 1");
+ MetadataStandardRelEntity relEntity = baseMapper.selectOne(wrapper);
+ if(relEntity!=null) {
+ entity.setId(relEntity.getId());
+ baseMapper.updateById(entity);
+ }else {
+ baseMapper.insert(entity);
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(Long metadataId, Long standardId) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(MetadataStandardRelEntity::getMetadataId,metadataId).eq(MetadataStandardRelEntity::getStandardId,standardId);
+ baseMapper.delete(wrapper);
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVO.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVO.java
new file mode 100644
index 0000000..bc4a826
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVO.java
@@ -0,0 +1,49 @@
+package net.srt.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : DatastandardVo
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 12:05
+ */
+@Data
+@Schema(description = "标准管理查询")
+public class DatastandardVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+ @TableId("id")
+ private Long id;
+ private Integer categoryId;
+ private String engName;
+ private String cnName;
+ private Integer codeNum;
+ private String dataType;
+ private Integer dataLength;
+ private Integer dataPrecision;
+ private Integer nullable;
+ private Integer standardCodeId;
+ private Integer type;
+ private String note;
+ private Long projectId;
+ private Integer status;
+ private Integer version;
+ private Integer deleted;
+ private String creator;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ private String updater;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date updateTime;
+ private Integer ifStandardRel;
+ private String group;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectRecordRelVO.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectRecordRelVO.java
new file mode 100644
index 0000000..c8241bb
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectRecordRelVO.java
@@ -0,0 +1,49 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Schema(description = "数据治理-元数据标准关联表")
+public class MetadataCollectRecordRelVO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "元数据id")
+ private Long metadataId;
+
+ @Schema(description = "标准字段id")
+ private Long standardId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+ private Long standardCategoryId;
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectRecordVO.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectRecordVO.java
new file mode 100644
index 0000000..9230afe
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectRecordVO.java
@@ -0,0 +1,64 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Schema(description = "数据治理-元数据采集任务记录")
+public class MetadataCollectRecordVO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "采集任务id")
+ private Long metadataCollectId;
+
+ @Schema(description = "1-成功 0-失败 2-运行中")
+ private Integer status;
+
+ @Schema(description = "实时日志")
+ private String realTimeLog;
+
+ @Schema(description = "错误日志")
+ private String errorLog;
+
+ @Schema(description = "开始时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date startTime;
+
+ @Schema(description = "结束时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date endTime;
+
+ @Schema(description = "项目(租户)id")
+ private Long projectId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataStandardRelVO.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataStandardRelVO.java
new file mode 100644
index 0000000..b31f1eb
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataStandardRelVO.java
@@ -0,0 +1,48 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Schema(description = "数据治理-元数据标准关联表")
+public class MetadataStandardRelVO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "元数据id")
+ private Long metadataId;
+
+ @Schema(description = "标准字段id")
+ private Long standardId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+ private Long standardCategoryId;
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVO.java
similarity index 97%
rename from srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVo.java
rename to srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVO.java
index 0ba283c..a60fc8d 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVo.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVO.java
@@ -17,7 +17,7 @@ import java.util.List;
*/
@Data
@Schema(description = "数据治理-元数据")
-public class MetadataVo implements Serializable {
+public class MetadataVO implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键id")
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVO.java
similarity index 97%
rename from srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVo.java
rename to srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVO.java
index 1c10b51..5ec83a9 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVo.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVO.java
@@ -18,7 +18,7 @@ import java.util.List;
*/
@Data
@Schema(description = "数据治理-质量规则配置")
-public class QualityConfigVo implements Serializable {
+public class QualityConfigVO implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增id")
diff --git a/srt-cloud-data-governance/src/main/resources/mapper/MetadataPropertyDao.xml b/srt-cloud-data-governance/src/main/resources/mapper/MetadataPropertyDao.xml
index 1b9c111..b336680 100644
--- a/srt-cloud-data-governance/src/main/resources/mapper/MetadataPropertyDao.xml
+++ b/srt-cloud-data-governance/src/main/resources/mapper/MetadataPropertyDao.xml
@@ -1,12 +1,30 @@
-
-
+
diff --git a/srt-cloud-data-server/.gitignore b/srt-cloud-data-server/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/srt-cloud-data-server/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/srt-cloud-data-server/pom.xml b/srt-cloud-data-server/pom.xml
new file mode 100644
index 0000000..9d2401b
--- /dev/null
+++ b/srt-cloud-data-server/pom.xml
@@ -0,0 +1,204 @@
+
+
+ 4.0.0
+
+ net.srt
+ srt-cloud
+ 2.0.0
+
+
+ srt-cloud-data-server
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ net.srt
+ srt-cloud-api
+ 2.0.0
+
+
+
+ org.springframework.boot
+ spring-boot-starter-log4j2
+
+
+ net.srt
+ srt-cloud-mybatis
+ 2.0.0
+
+
+ net.srt
+ srt-cloud-dbswitch
+ 2.0.0
+
+
+ jsqlparser
+ com.github.jsqlparser
+
+
+ spring-boot-starter-logging
+ org.springframework.boot
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-bootstrap
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+ com.github.xiaoymin
+ knife4j-springdoc-ui
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ appassembler-maven-plugin
+ 2.1.0
+
+
+
+
+ generate-jsw-scripts
+ package
+
+ generate-daemons
+
+
+
+
+
+
+ flat
+
+ src/main/resources
+ true
+
+ true
+
+ conf
+
+ lib
+
+ bin
+ UTF-8
+ logs
+
+
+
+ ${project.artifactId}
+ net.srt.DataServiceApplication
+
+ jsw
+
+
+
+ jsw
+
+ linux-x86-32
+ linux-x86-64
+ windows-x86-32
+ windows-x86-64
+
+
+
+ configuration.directory.in.classpath.first
+ conf
+
+
+ wrapper.ping.timeout
+ 120
+
+
+ set.default.REPO_DIR
+ lib
+
+
+ wrapper.logfile
+ logs/wrapper.log
+
+
+
+
+
+
+
+
+ -server
+ -Dfile.encoding=utf-8
+ -Xms128m
+ -Xmx1024m
+ -XX:+PrintGCDetails
+ -XX:+PrintGCDateStamps
+ -Xloggc:logs/gc.log
+
+
+
+
+
+
+ net.srt.DataServiceApplication
+ ${project.artifactId}
+
+
+
+
+
+
+
+ maven-assembly-plugin
+
+
+ ${project.parent.basedir}/assembly/assembly-win.xml
+ ${project.parent.basedir}/assembly/assembly-linux.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+
+
+
diff --git a/srt-cloud-data-server/src/main/java/net/srt/DataServiceApplication.java b/srt-cloud-data-server/src/main/java/net/srt/DataServiceApplication.java
new file mode 100644
index 0000000..08dc8b9
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/DataServiceApplication.java
@@ -0,0 +1,16 @@
+package net.srt;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@EnableFeignClients
+@EnableDiscoveryClient
+@SpringBootApplication
+public class DataServiceApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(DataServiceApplication.class, args);
+ System.out.println("==============启动成功===================");
+ }
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/controller/ApiConfigController.java b/srt-cloud-data-server/src/main/java/net/srt/controller/ApiConfigController.java
new file mode 100644
index 0000000..3cad1b4
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/controller/ApiConfigController.java
@@ -0,0 +1,119 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.AllArgsConstructor;
+import net.srt.dto.ApiConfigDto;
+import net.srt.entity.ApiConfigEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.query.ApiConfigQuery;
+import net.srt.service.ApiConfigService;
+import net.srt.vo.ApiConfig;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@RestController
+@RequestMapping("/api-config")
+@AllArgsConstructor
+public class ApiConfigController {
+
+ private final ApiConfigService apiConfigService;
+
+
+
+ /**
+ * 查询文件分组树
+ *
+ * @return 结果列表
+ */
+ @GetMapping("/api-group")
+ @Operation(summary = "查询文件分组树")
+ public Result> listTree() {
+ return Result.ok(apiConfigService.listTree());
+ }
+
+ /**
+ * 分页查询API配置
+ * @param query API配置查询对象
+ * @return 分页结果
+ */
+ @GetMapping("/page")
+ @Operation(summary = "分页")
+ @PreAuthorize("hasAuthority('data-service:api-config:page')")
+ public Result> page(@Valid ApiConfigQuery query) {
+ PageResult page = apiConfigService.page(query);
+
+ return Result.ok(page);
+ }
+
+ /**
+ * 获取IP和端口信息
+ *
+ * @return 返回IP和端口信息
+ */
+ @GetMapping("/getIpPort")
+ public Result getIpPort() {
+ return Result.ok(apiConfigService.getIpPort());
+ }
+
+ /**
+ * 根据ID获取API配置信息
+ *
+ * @param id API配置ID
+ * @return API配置实体对象
+ */
+ @GetMapping("/{id}")
+ @Operation(summary = "查看")
+ @PreAuthorize("hasAuthority('data-service:api-config:info')")
+ public Result get(@PathVariable("id") Long id) {
+ ApiConfigEntity apiConfig = apiConfigService.getByI(id);
+
+ return Result.ok(apiConfig);
+ }
+
+ @PutMapping("/{id}")
+ @Operation(summary = "修改")
+ @PreAuthorize("hasAuthority('data-service:api-config:update')")
+ public Result update(@PathVariable Long id, @RequestBody @Valid ApiConfigEntity vo) {
+ apiConfigService.update(id,vo);
+ return Result.ok();
+ }
+ @PutMapping("/{id}/offline")
+ @Operation(summary = "下线")
+ @PreAuthorize("hasAuthority('data-service:api-config:update')")
+ public Result xia(@PathVariable Long id) {
+ apiConfigService.xia(id);
+ return Result.ok();
+ }
+
+ @PutMapping("/{id}/online")
+ @Operation(summary = "上线")
+ @PreAuthorize("hasAuthority('data-service:api-config:update')")
+ public Result shang(@PathVariable Long id) {
+ apiConfigService.shang(id);
+ return Result.ok();
+ }
+
+
+ @PostMapping
+ @Operation(summary = "新增")
+ @PreAuthorize("hasAuthority('data-service:api-config:save')")
+ public Result insert(@RequestBody ApiConfig vo) {
+ apiConfigService.sav(vo);
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ @PreAuthorize("hasAuthority('data-service:api-config:delete')")
+ public Result delete(@RequestBody List idList) {
+ apiConfigService.removeByI(idList);
+ return Result.ok();
+ }
+
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/controller/ApiGroupController.java b/srt-cloud-data-server/src/main/java/net/srt/controller/ApiGroupController.java
new file mode 100644
index 0000000..d63facc
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/controller/ApiGroupController.java
@@ -0,0 +1,70 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.AllArgsConstructor;
+import net.srt.convert.ApiGroupConvert;
+import net.srt.entity.ApiGroupEntity;
+import net.srt.framework.common.utils.Result;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.service.ApiGroupService;
+import net.srt.vo.ApiGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* 数据服务-api分组
+*
+* @author zrx 985134801@qq.com
+* @since 1.0.0 2023-01-28
+*/
+@RestController
+@RequestMapping("/api-group")
+@AllArgsConstructor
+public class ApiGroupController {
+ private final ApiGroupService apiGroupService;
+
+ @GetMapping
+ @Operation(summary = "查询文件分组树")
+ public Result> listTree() {
+ return Result.ok(apiGroupService.listTree());
+ }
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ @PreAuthorize("hasAuthority('data-service:api-group:info')")
+ public Result get(@PathVariable("id") Long id){
+ ApiGroupEntity entity = apiGroupService.getById(id);
+ return Result.ok(ApiGroupConvert.INSTANCE.convert(entity));
+ }
+
+
+ @PostMapping
+ @Operation(summary = "保存")
+ @PreAuthorize("hasAuthority('data-service:api-group:save')")
+ public Result save(@RequestBody ApiGroup vo) {
+ apiGroupService.save(vo);
+ return Result.ok();
+ }
+
+
+ @PutMapping
+ @Operation(summary = "修改")
+ @PreAuthorize("hasAuthority('data-service:api-group:update')")
+ public Result update(@RequestBody @Valid ApiGroup vo) {
+ apiGroupService.update(vo);
+ return Result.ok();
+ }
+
+
+ @DeleteMapping("/{id}")
+ @Operation(summary = "删除")
+ @PreAuthorize("hasAuthority('data-service:api-group:delete')")
+ public Result delete(@PathVariable Long id) {
+ apiGroupService.delete(id);
+ return Result.ok();
+ }
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/controller/ApiTest.java b/srt-cloud-data-server/src/main/java/net/srt/controller/ApiTest.java
new file mode 100644
index 0000000..2568106
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/controller/ApiTest.java
@@ -0,0 +1,43 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.AllArgsConstructor;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.query.ApiConfigQuery;
+import net.srt.query.ApiLogQuery;
+import net.srt.service.ApiLogService;
+import net.srt.vo.ApiConfig;
+import net.srt.vo.ApiLog;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @ClassName ApiTest
+ * @Description 描述
+ * @Author 栗永斌
+ */
+@RestController
+@RequestMapping("/log")
+@AllArgsConstructor
+public class ApiTest {
+
+ @Autowired
+ ApiLogService apiLogService;
+
+ @GetMapping("/page")
+ @Operation(summary = "日志列表")
+ @PreAuthorize("hasAuthority('data-service:api-config:page')")
+ public Result> page(@Valid ApiLogQuery query) {
+ PageResult page = apiLogService.pag(query);
+
+ return Result.ok(page);
+ }
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/convert/ApiConfigConvert.java b/srt-cloud-data-server/src/main/java/net/srt/convert/ApiConfigConvert.java
new file mode 100644
index 0000000..d411d67
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/convert/ApiConfigConvert.java
@@ -0,0 +1,29 @@
+package net.srt.convert;
+
+import net.srt.dto.ApiConfigDto;
+import net.srt.entity.ApiConfigEntity;
+import net.srt.vo.ApiConfig;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 数据服务-api配置
+*
+* @author zrx 985134801@qq.com
+* @since 1.0.0 2023-01-28
+*/
+@Mapper
+public interface ApiConfigConvert {
+ ApiConfigConvert INSTANCE = Mappers.getMapper(ApiConfigConvert.class);
+
+ ApiConfigEntity convert(ApiConfig vo);
+
+ ApiConfig convert(ApiConfigEntity entity);
+
+ ApiConfigDto convertDto(ApiConfigEntity entity);
+
+ List convertList(List list);
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/convert/ApiGroupConvert.java b/srt-cloud-data-server/src/main/java/net/srt/convert/ApiGroupConvert.java
new file mode 100644
index 0000000..1c4f4bb
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/convert/ApiGroupConvert.java
@@ -0,0 +1,26 @@
+package net.srt.convert;
+
+import net.srt.entity.ApiGroupEntity;
+import net.srt.vo.ApiGroup;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 数据服务-api分组
+*
+* @author zrx 985134801@qq.com
+* @since 1.0.0 2023-01-28
+*/
+@Mapper
+public interface ApiGroupConvert {
+ ApiGroupConvert INSTANCE = Mappers.getMapper(ApiGroupConvert.class);
+
+ ApiGroupEntity convert(ApiGroup vo);
+
+ ApiGroup convert(ApiGroupEntity entity);
+
+ List convertList(List list);
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/convert/ApiLogConvert.java b/srt-cloud-data-server/src/main/java/net/srt/convert/ApiLogConvert.java
new file mode 100644
index 0000000..6399679
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/convert/ApiLogConvert.java
@@ -0,0 +1,26 @@
+package net.srt.convert;
+
+import net.srt.entity.ApiLogEntity;
+import net.srt.vo.ApiLog;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @ClassName ApiLogConvert
+ * @Description 描述
+ * @Author 栗永斌
+ */
+@Mapper
+public interface ApiLogConvert {
+
+ ApiLogConvert INSTANCE = Mappers.getMapper(ApiLogConvert.class);
+
+ ApiLogEntity convert(ApiLog vo);
+
+ ApiLog convert(ApiLogEntity entity);
+
+ List convertList(List list);
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/dto/ApiConfigDto.java b/srt-cloud-data-server/src/main/java/net/srt/dto/ApiConfigDto.java
new file mode 100644
index 0000000..ce03da4
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/dto/ApiConfigDto.java
@@ -0,0 +1,49 @@
+package net.srt.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+@Data
+public class ApiConfigDto implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private Long id;
+ private Long groupId;
+ private String path;
+ private String type;
+ private String name;
+ private String note;
+ private String sqlText;
+ private String sqlSeparator;
+ private Integer sqlMaxRow;
+ private String sqlParam;
+ private String jsonParam;
+ private String responseResult;
+ private String contentType;
+ private Integer status;
+ private Date releaseTime;
+ private Long releaseUserId;
+ private Integer sqlDbType;
+ private Long databaseId;
+ private Integer previlege;
+ private Integer openTrans;
+ private Long projectId;
+ private Integer version;
+ private Integer deleted;
+ private Long creator;
+ private Date createTime;
+ private Long updater;
+ private Date updateTime;
+ private Integer requestedTimes;
+ private Integer requestedSuccessTimes;
+ private Integer requestedFailedTimes;
+ private Long authId;
+ private String group;
+
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/entity/ApiConfigEntity.java b/srt-cloud-data-server/src/main/java/net/srt/entity/ApiConfigEntity.java
new file mode 100644
index 0000000..7b9dec0
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/entity/ApiConfigEntity.java
@@ -0,0 +1,61 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import net.srt.framework.mybatis.entity.BaseEntity;
+import org.springframework.data.annotation.CreatedDate;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@TableName("data_dispatch_catalogue")
+public class ApiConfigEntity extends BaseEntity {
+ /**
+ * 父级id(顶级为0)
+ */
+ private Long parentId;
+
+ /**
+ * 分组名称
+ */
+ private String name;
+
+ /**
+ * 分组序号
+ */
+ private Integer orderNo;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 分组路径
+ */
+ private String path;
+
+ private Integer type;
+
+ /**
+ * 项目id
+ */
+ private Long projectId;
+ private Long id;
+
+ // 私有属性,状态
+ private Integer status;
+ // 私有属性,发布用户ID
+ private Long releaseUserId;
+ // 自定义注解,日期格式化,格式为"yyyy-MM-dd HH:mm:ss"
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date releaseTime;
+ // 私有属性,内容类型
+ private String contentType;
+ private Integer previlege;
+ private Integer openTrans;
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/entity/ApiGroupEntity.java b/srt-cloud-data-server/src/main/java/net/srt/entity/ApiGroupEntity.java
new file mode 100644
index 0000000..aabf06c
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/entity/ApiGroupEntity.java
@@ -0,0 +1,41 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+@Data
+@TableName(value = "data_dispatch_catalogue",autoResultMap = true)
+public class ApiGroupEntity extends BaseEntity {
+ /**
+ * 父级id(顶级为0)
+ */
+ private Long parentId;
+
+ /**
+ * 分组名称
+ */
+ private String name;
+
+ /**
+ * 分组序号
+ */
+ private Integer orderNo;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 分组路径
+ */
+ private String path;
+
+ private Integer type;
+
+ /**
+ * 项目id
+ */
+ private Long projectId;
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/entity/ApiLogEntity.java b/srt-cloud-data-server/src/main/java/net/srt/entity/ApiLogEntity.java
new file mode 100644
index 0000000..f819add
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/entity/ApiLogEntity.java
@@ -0,0 +1,31 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * @ClassName ApiLogEntity
+ * @Description 描述
+ * @Author 栗永斌
+ */
+@Data
+@TableName(value = "data_service_api_log",autoResultMap = true)
+public class ApiLogEntity extends BaseEntity {
+// private Integer id;
+ private String url;
+ private Integer duration;
+ private String ip;
+ private Integer apiId;
+ private String error;
+ private Integer projectId;
+// private String deleted;
+// private Integer creator;
+// private String createTime;
+// private Integer updater;
+ private Date updateTime;
+ private String apiName;
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiConfigDao.java b/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiConfigDao.java
new file mode 100644
index 0000000..6ddc07f
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiConfigDao.java
@@ -0,0 +1,14 @@
+package net.srt.mapper;
+
+import net.srt.entity.ApiConfigEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface ApiConfigDao extends BaseDao {
+ void xia(@Param("id") Long id);
+
+ void shang(@Param("id") Long id);
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiGroupDao.java b/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiGroupDao.java
new file mode 100644
index 0000000..a8bd1f0
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiGroupDao.java
@@ -0,0 +1,9 @@
+package net.srt.mapper;
+
+import net.srt.entity.ApiGroupEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ApiGroupDao extends BaseDao {
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiLogDao.java b/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiLogDao.java
new file mode 100644
index 0000000..6e45e61
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/mapper/ApiLogDao.java
@@ -0,0 +1,15 @@
+package net.srt.mapper;
+
+import net.srt.entity.ApiGroupEntity;
+import net.srt.entity.ApiLogEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @ClassName ApiLogDao
+ * @Description 描述
+ * @Author 栗永斌
+ */
+@Mapper
+public interface ApiLogDao extends BaseDao {
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/query/ApiConfigQuery.java b/srt-cloud-data-server/src/main/java/net/srt/query/ApiConfigQuery.java
new file mode 100644
index 0000000..a9631c1
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/query/ApiConfigQuery.java
@@ -0,0 +1,22 @@
+package net.srt.query;
+
+import lombok.Data;
+import net.srt.framework.common.query.Query;
+
+@Data
+public class ApiConfigQuery extends Query {
+
+ private Long groupId;
+ private Long resourceId;
+ private Long appId;
+ private String name;
+ private String path;
+ private String contentType;
+ private Integer status;
+ private Integer sqlDbType;
+ private Long databaseId;
+ private Integer privates;
+ private Integer openTrans;
+ private Integer queryApply;
+ private Integer ifMarket;
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/query/ApiLogQuery.java b/srt-cloud-data-server/src/main/java/net/srt/query/ApiLogQuery.java
new file mode 100644
index 0000000..09aded7
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/query/ApiLogQuery.java
@@ -0,0 +1,16 @@
+package net.srt.query;
+
+import lombok.Data;
+import net.srt.framework.common.query.Query;
+
+/**
+ * @ClassName ApiLogQuery
+ * @Description 描述
+ * @Author 栗永斌
+ */
+@Data
+public class ApiLogQuery extends Query {
+
+ private String ip;
+ private String apiName;
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/service/ApiConfigService.java b/srt-cloud-data-server/src/main/java/net/srt/service/ApiConfigService.java
new file mode 100644
index 0000000..83335ce
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/service/ApiConfigService.java
@@ -0,0 +1,38 @@
+package net.srt.service;
+
+import net.srt.dto.ApiConfigDto;
+import net.srt.entity.ApiConfigEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.query.ApiConfigQuery;
+import net.srt.vo.ApiConfig;
+
+import java.util.List;
+
+public interface ApiConfigService extends BaseService {
+ String getIpPort();
+
+ List listTree();
+
+
+ PageResult page(ApiConfigQuery query);
+
+ ApiConfigEntity getByI(Long id);
+
+
+ void update(Long id, ApiConfigEntity vo);
+
+ void xia(Long id);
+
+
+ void shang(Long id);
+
+
+
+ void sav(ApiConfig vo);
+
+ void removeByI(List idList);
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/service/ApiGroupService.java b/srt-cloud-data-server/src/main/java/net/srt/service/ApiGroupService.java
new file mode 100644
index 0000000..df523d0
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/service/ApiGroupService.java
@@ -0,0 +1,18 @@
+package net.srt.service;
+
+import net.srt.entity.ApiGroupEntity;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.vo.ApiGroup;
+
+import java.util.List;
+
+public interface ApiGroupService extends BaseService {
+ List listTree();
+
+ void save(ApiGroup vo);
+
+ void update(ApiGroup vo);
+
+ void delete(Long id);
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/service/ApiLogService.java b/srt-cloud-data-server/src/main/java/net/srt/service/ApiLogService.java
new file mode 100644
index 0000000..3404363
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/service/ApiLogService.java
@@ -0,0 +1,18 @@
+package net.srt.service;
+
+import net.srt.entity.ApiLogEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.query.ApiLogQuery;
+import net.srt.vo.ApiLog;
+
+/**
+ * @ClassName ApiLogService
+ * @Description 描述
+ * @Author 栗永斌
+ */
+public interface ApiLogService extends BaseService {
+
+ PageResult pag(ApiLogQuery query);
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiConfigServiceImpl.java b/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiConfigServiceImpl.java
new file mode 100644
index 0000000..e17bf7c
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiConfigServiceImpl.java
@@ -0,0 +1,171 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import net.srt.convert.ApiConfigConvert;
+import net.srt.convert.ApiGroupConvert;
+import net.srt.dto.ApiConfigDto;
+import net.srt.entity.ApiConfigEntity;
+import net.srt.entity.ApiGroupEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.BeanUtil;
+import net.srt.framework.common.utils.BuildTreeUtils;
+import net.srt.framework.common.utils.Result;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.mapper.ApiConfigDao;
+import net.srt.query.ApiConfigQuery;
+import net.srt.service.ApiConfigService;
+import net.srt.vo.ApiConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class ApiConfigServiceImpl extends BaseServiceImpl implements ApiConfigService {
+ @Override
+ public String getIpPort() {
+ return null;
+ }
+
+
+ /**
+ * 从数据库中查询并返回树结构的节点列表
+ * @return List 树节点列表
+ */
+ @Override
+ public List listTree() {
+ // 创建查询条件
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ // 设置查询条件,排除组织id
+ dataScopeWithoutOrgId(wrapper);
+ // 按照排序字段升序排序
+ wrapper.orderByAsc(ApiConfigEntity::getOrderNo);
+ // 从数据库中查询列表数据
+ List dataFileCategoryEntities = baseMapper.selectList(wrapper);
+ // 将数据转换为树节点vo列表
+ List treeNodeVos = BeanUtil.copyListProperties(dataFileCategoryEntities, TreeNodeVo::new, (oldItem, newItem) -> {
+ // 设置树节点的标签为名称
+ newItem.setLabel(oldItem.getName());
+ // 设置树节点的值为id
+ newItem.setValue(oldItem.getId());
+ // 设置树节点是否不可用,类型为0表示不可用
+ newItem.setDisabled(oldItem.getType() == 0);
+ // 如果树节点路径包含斜杠,则设置父路径为路径截取到倒数第一个斜杠的位置
+ if (newItem.getPath().contains("/")) {
+ newItem.setParentPath(newItem.getPath().substring(0, newItem.getPath().lastIndexOf("/")));
+ }
+ });
+ // 调用工具类构建树结构
+ return BuildTreeUtils.buildTree(treeNodeVos);
+ }
+
+
+
+
+ /**
+ * 分页查询API配置信息
+ *
+ * @param query 查询条件
+ * @return 分页结果
+ */
+ @Override
+ public PageResult page(ApiConfigQuery query) {
+ // 调用Mapper层方法,查询分页数据
+ IPage page = baseMapper.selectPage(getPage(query), getWrapper(query));
+
+ // 将查询结果转换为ApiConfig对象列表
+ // 返回分页结果
+ return new PageResult<>(ApiConfigConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
+ }
+
+
+ /**
+ * 根据ID获取ApiConfigEntity对象
+ *
+ * @param id ID值
+ * @return ApiConfigEntity对象
+ */
+ @Override
+ public ApiConfigEntity getByI(Long id) {
+ return id != null ? baseMapper.selectById(id) : null;
+ }
+
+ @Override
+ public void update(Long id,ApiConfigEntity vo) {
+ baseMapper.deleteById(id);
+ baseMapper.insert(vo);
+// if (vo.getType() == 0) {
+// ApiGroupEntity apiGroupEntity = new ApiGroupEntity();
+// apiGroupEntity.setId(vo.getId());
+// apiGroupEntity.setVersion(vo.getVersion());
+// apiGroupEntity.setDeleted(vo.getDeleted());
+// apiGroupEntity.setUpdateTime(vo.getUpdateTime());
+// apiGroupEntity.setCreateTime(vo.getCreateTime());
+// apiGroupEntity.setUpdater(vo.getUpdater());
+// }
+ }
+
+ @Resource
+ ApiConfigDao apiConfigDto;
+
+ @Override
+ public void xia(Long id) {
+ apiConfigDto.xia(id);
+ }
+
+
+
+ @Override
+ public void shang(Long id) {
+ apiConfigDto.shang(id);
+ }
+
+
+
+ @Override
+ public void sav(ApiConfig vo) {
+
+
+ ApiConfigEntity entity = ApiConfigConvert.INSTANCE.convert(vo);
+ entity.setPath(recursionPath(entity, null));
+ entity.setProjectId(getProjectId());
+ baseMapper.insert(entity); // 使用 insertSelective() 方法进行插入操作
+ }
+
+
+ @Override
+ public void removeByI(List idList) {
+ baseMapper.deleteBatchIds(idList);
+ }
+
+ private String recursionPath(ApiConfigEntity groupEntity, String path) {
+ if (StringUtil.isBlank(path)) {
+ path = groupEntity.getName();
+ }
+ if (groupEntity.getParentId() != 0) {
+ ApiConfigEntity parent = getById(groupEntity.getParentId());
+ path = parent.getName() + "/" + path;
+ return recursionPath(parent, path);
+ }
+ return path;
+ }
+
+ private LambdaQueryWrapper getWrapper(ApiConfigQuery query) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.like(StringUtil.isNotBlank(query.getName()), ApiConfigEntity::getName, query.getName());
+ wrapper.like(StringUtil.isNotBlank(query.getPath()), ApiConfigEntity::getPath, query.getPath());
+// wrapper.eq(StringUtil.isNotBlank(query.getContentType()), ApiConfigEntity::getContentType, query.getContentType());
+// wrapper.eq(query.getStatus()!= null, ApiConfigEntity::getStatus, query.getStatus());
+// wrapper.eq(query.getSqlDbType() != null, ApiConfigEntity::getSqlDbType, query.getSqlDbType());
+//
+ return wrapper;
+ }
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiGroupServiceImpl.java b/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiGroupServiceImpl.java
new file mode 100644
index 0000000..bce878f
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiGroupServiceImpl.java
@@ -0,0 +1,93 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.AllArgsConstructor;
+import net.srt.convert.ApiGroupConvert;
+import net.srt.entity.ApiConfigEntity;
+import net.srt.entity.ApiGroupEntity;
+import net.srt.framework.common.exception.ServerException;
+import net.srt.framework.common.utils.BeanUtil;
+import net.srt.framework.common.utils.BuildTreeUtils;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.mapper.ApiGroupDao;
+import net.srt.service.ApiConfigService;
+import net.srt.service.ApiGroupService;
+import net.srt.vo.ApiGroup;
+import org.springframework.stereotype.Service;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class ApiGroupServiceImpl extends BaseServiceImpl implements ApiGroupService{
+// private final ApiConfigService apiConfigService;
+ @Override
+ public List listTree() {
+ List treeNodeVos = getTreeNodeVos();
+ return BuildTreeUtils.buildTree(treeNodeVos);
+ }
+
+ private List getTreeNodeVos() {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ dataScopeWithoutOrgId(wrapper);
+ wrapper.orderByAsc(ApiGroupEntity::getOrderNo);
+ List apiGroupEntities = baseMapper.selectList(wrapper);
+ return BeanUtil.copyListProperties(apiGroupEntities, TreeNodeVo::new, (oldItem, newItem) -> {
+ newItem.setLabel(oldItem.getName());
+ newItem.setValue(oldItem.getId());
+ newItem.setDisabled(oldItem.getType() == 1);
+ if (newItem.getPath().contains("/")) {
+ newItem.setParentPath(newItem.getPath().substring(0, newItem.getPath().lastIndexOf("/")));
+ }
+ });
+ }
+
+ @Override
+ public void save(ApiGroup vo) {
+ ApiGroupEntity entity = ApiGroupConvert.INSTANCE.convert(vo);
+ entity.setPath(recursionPath(entity, null));
+ entity.setProjectId(getProjectId());
+ baseMapper.insert(entity); // 使用 insertSelective() 方法进行插入操作
+ }
+
+ @Override
+ public void update(ApiGroup vo) {
+ ApiGroupEntity entity = ApiGroupConvert.INSTANCE.convert(vo);
+ entity.setPath(recursionPath(entity, null));
+ entity.setProjectId(getProjectId());
+ updateById(entity);
+ }
+
+ private String recursionPath(ApiGroupEntity groupEntity, String path) {
+ if (StringUtil.isBlank(path)) {
+ path = groupEntity.getName();
+ }
+ if (groupEntity.getParentId() != 0) {
+ ApiGroupEntity parent = getById(groupEntity.getParentId());
+ path = parent.getName() + "/" + path;
+ return recursionPath(parent, path);
+ }
+ return path;
+ }
+
+ @Override
+ public void delete(Long id) {
+ //查询有没有子节点
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(ApiGroupEntity::getParentId, id).last(" limit 1");
+ ApiGroupEntity one = baseMapper.selectOne(wrapper);
+ if (one != null) {
+ throw new ServerException("存在子节点,不允许删除!");
+ }
+// //查询有没有api与之关联
+// LambdaQueryWrapper serviceApiConfigWrapper = new LambdaQueryWrapper<>();
+// serviceApiConfigWrapper.eq(ApiConfigEntity::getParentId, id).last(" limit 1");
+// ApiConfigEntity apiConfigEntity = apiConfigService.getOne(serviceApiConfigWrapper);
+// if (apiConfigEntity != null) {
+// throw new ServerException("节点下有 api 与之关联,不允许删除!");
+// }
+// removeById(id);
+ }
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiLogServiceImpl.java b/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiLogServiceImpl.java
new file mode 100644
index 0000000..18e2019
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/service/impl/ApiLogServiceImpl.java
@@ -0,0 +1,55 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+
+import net.srt.convert.ApiLogConvert;
+
+
+import net.srt.entity.ApiLogEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.mapper.ApiLogDao;
+
+import net.srt.query.ApiLogQuery;
+
+import net.srt.service.ApiLogService;
+import net.srt.vo.ApiLog;
+import org.springframework.stereotype.Service;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+
+/**
+ * @ClassName ApiLogServiceImpl
+ * @Description 描述
+ * @Author 栗永斌
+ */
+@Service
+@AllArgsConstructor
+public class ApiLogServiceImpl extends BaseServiceImpl implements ApiLogService {
+
+
+ @Override
+ public PageResult pag(ApiLogQuery query) {
+ // 调用Mapper层方法,查询分页数据
+ IPage page = baseMapper.selectPage(getPage(query), getWrapper(query));
+
+
+ // 将查询结果转换为ApiConfig对象列表
+ // 返回分页结果
+ return new PageResult<>(ApiLogConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
+ }
+
+ private LambdaQueryWrapper getWrapper(ApiLogQuery query) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.like(StringUtil.isNotBlank(query.getApiName()), ApiLogEntity::getApiName, query.getApiName());
+ wrapper.like(StringUtil.isNotBlank(query.getIp()), ApiLogEntity::getIp, query.getIp());
+// wrapper.eq(StringUtil.isNotBlank(query.getContentType()), ApiConfigEntity::getContentType, query.getContentType());
+// wrapper.eq(query.getStatus()!= null, ApiConfigEntity::getStatus, query.getStatus());
+// wrapper.eq(query.getSqlDbType() != null, ApiConfigEntity::getSqlDbType, query.getSqlDbType());
+
+ return wrapper;
+ }
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/vo/ApiConfig.java b/srt-cloud-data-server/src/main/java/net/srt/vo/ApiConfig.java
new file mode 100644
index 0000000..73251a0
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/vo/ApiConfig.java
@@ -0,0 +1,101 @@
+package net.srt.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* 数据服务-api配置
+*
+* @author zrx 985134801@qq.com
+* @since 1.0.0 2023-01-28
+*/
+@Data
+public class ApiConfig implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+ private Integer parentId;
+ private Integer type;
+ private String name;
+ private Integer orderNo;
+ private String description;
+ private String path;
+ private Integer projectId;
+ private Integer version;
+ private Integer deleted;
+ private Integer creator;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ private Integer updater;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date updateTime;
+ private Integer status;
+ private String contentType;
+ private Integer releaseUserId;
+ private Date releaseTime;
+ private Integer previlege;
+ private Integer openTrans;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// @TableId(value = "id", type = IdType.AUTO)
+// private Long id;
+// private Long groupId;
+// private String path;
+// private String type;
+// private String name;
+//// private String note;
+// private String sqlText;
+// private String sqlSeparator;
+// private Integer sqlMaxRow;
+// private String sqlParam;
+// private String jsonParam;
+// private String responseResult;
+// private Integer contentType;
+// private Integer status
+// private Date releaseTime;
+// private Long releaseUserId;
+// private Integer sqlDbType;
+// private Long databaseId;
+// private Integer previlege;
+// private Integer openTrans;
+// private Long projectId;
+// private Integer version;
+// private Integer deleted;
+// private Long creator;
+// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+// private Date createTime;
+// private Long updater;
+// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+// private Date updateTime;
+// private Integer requestedTimes;
+// private Integer requestedSuccessTimes;
+// private Integer requestedFailedTimes;
+// private Long authId;
+// private String group;
+// private String groupPath;
+
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/vo/ApiGroup.java b/srt-cloud-data-server/src/main/java/net/srt/vo/ApiGroup.java
new file mode 100644
index 0000000..dcaa232
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/vo/ApiGroup.java
@@ -0,0 +1,25 @@
+package net.srt.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ApiGroup implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private Long id;
+ private Long parentId;
+ private Integer type;
+ private String name;
+ private String description;
+ private Integer orderNo;
+ private String path;
+ private Long projectId;
+ private Integer version;
+ private Integer deleted;
+ private Long creator;
+ private Date createTime;
+ private Long updater;
+ private Date updateTime;
+}
diff --git a/srt-cloud-data-server/src/main/java/net/srt/vo/ApiLog.java b/srt-cloud-data-server/src/main/java/net/srt/vo/ApiLog.java
new file mode 100644
index 0000000..e45af60
--- /dev/null
+++ b/srt-cloud-data-server/src/main/java/net/srt/vo/ApiLog.java
@@ -0,0 +1,32 @@
+package net.srt.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName ApiLog
+ * @Description 描述
+ * @Author 栗永斌
+ */
+@Data
+public class ApiLog implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+
+ private Integer id;
+ private String url;
+ private Integer duration;
+ private String ip;
+ private Integer apiId;
+ private String error;
+ private Integer projectId;
+ private String deleted;
+ private Integer creator;
+ private String createTime;
+ private Integer updater;
+ private Date updateTime;
+
+
+}
diff --git a/srt-cloud-data-server/src/main/resources/auth.yml b/srt-cloud-data-server/src/main/resources/auth.yml
new file mode 100644
index 0000000..0e6a006
--- /dev/null
+++ b/srt-cloud-data-server/src/main/resources/auth.yml
@@ -0,0 +1,7 @@
+auth:
+ ignore_urls:
+ - /auth/captcha
+ - /auth/login
+ - /auth/send/code
+ - /auth/mobile
+ - /upload/**
\ No newline at end of file
diff --git a/srt-cloud-data-server/src/main/resources/log4j2.xml b/srt-cloud-data-server/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..14461eb
--- /dev/null
+++ b/srt-cloud-data-server/src/main/resources/log4j2.xml
@@ -0,0 +1,48 @@
+
+
+
+
+ ./logs/
+ srt-cloud-system
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/srt-cloud-data-server/src/main/resources/mapper/ApiConfigMapper.xml b/srt-cloud-data-server/src/main/resources/mapper/ApiConfigMapper.xml
new file mode 100644
index 0000000..a15f3e3
--- /dev/null
+++ b/srt-cloud-data-server/src/main/resources/mapper/ApiConfigMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ update data_dispatch_catalogue set status = 0 where id = #{id}
+
+
+ update data_dispatch_catalogue set status = 1 where id = #{id}
+
+
diff --git a/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar b/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar
index 0595467..e9979b7 100644
Binary files a/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar and b/srt-cloud-framework/srt-cloud-flink/build/app/flink-app-1.14-2.0.0-jar-with-dependencies.jar differ
diff --git a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar
index e848764..bc7b2a0 100644
Binary files a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar and b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-catalog-mysql-1.14-2.0.0.jar differ
diff --git a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar
index e6aa6cd..724cdbd 100644
Binary files a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar and b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar differ
diff --git a/srt-cloud-framework/srt-cloud-mybatis/src/main/java/net/srt/framework/mybatis/service/impl/BaseServiceImpl.java b/srt-cloud-framework/srt-cloud-mybatis/src/main/java/net/srt/framework/mybatis/service/impl/BaseServiceImpl.java
index 89a427e..077c62b 100644
--- a/srt-cloud-framework/srt-cloud-mybatis/src/main/java/net/srt/framework/mybatis/service/impl/BaseServiceImpl.java
+++ b/srt-cloud-framework/srt-cloud-mybatis/src/main/java/net/srt/framework/mybatis/service/impl/BaseServiceImpl.java
@@ -198,13 +198,20 @@ public class BaseServiceImpl, T> extends ServiceImpl queryWrapper) {
- DataScope dataScope = getDataScope(null, null, null, null, false, true);
- if (dataScope != null) {
- queryWrapper.apply(dataScope.getSqlFilter());
- }
- }
+// protected void dataScopeWithoutOrgId(LambdaQueryWrapper queryWrapper) {
+// DataScope dataScope = getDataScope(null, null, null, null, false, true);
+// if (dataScope != null) {
+// queryWrapper.apply(dataScope.getSqlFilter());
+// }
+// }
+ protected void dataScopeWithoutOrgId(LambdaQueryWrapper queryWrapper) {
+ DataScope dataScope = this.getDataScope((String)null, (String)null, (String)null, (String)null, false, true);
+ if (dataScope != null) {
+ queryWrapper.apply(dataScope.getSqlFilter(), new Object[0]);
+ }
+
+ }
/**
* MyBatis-Plus 数据权限
*/
diff --git a/srt-cloud-module/srt-cloud-datax/pom.xml b/srt-cloud-module/srt-cloud-datax/pom.xml
index 4ccd30a..5ba3ab9 100644
--- a/srt-cloud-module/srt-cloud-datax/pom.xml
+++ b/srt-cloud-module/srt-cloud-datax/pom.xml
@@ -101,11 +101,11 @@
-
- com.alibaba.datax
- mysqlreader
- 0.0.1-SNAPSHOT
-
+
+
+
+
+
@@ -117,11 +117,11 @@
-
- com.alibaba.datax
- oraclereader
- 0.0.1-SNAPSHOT
-
+
+
+
+
+