diff --git a/srt-cloud-api/src/main/java/net/srt/api/ServerNames.java b/srt-cloud-api/src/main/java/net/srt/api/ServerNames.java index 900a829..4891676 100644 --- a/srt-cloud-api/src/main/java/net/srt/api/ServerNames.java +++ b/srt-cloud-api/src/main/java/net/srt/api/ServerNames.java @@ -39,4 +39,6 @@ public interface ServerNames { */ String DATA_GOVERNANCE_NAME = "srt-cloud-data-governance"; String DATA_DATAX = "srt-cloud-datax"; + + String DATA_SERVICE_NAME = "srt-cloud-data-service"; } diff --git a/srt-cloud-api/src/main/java/net/srt/api/module/data/service/DataServiceApi.java b/srt-cloud-api/src/main/java/net/srt/api/module/data/service/DataServiceApi.java new file mode 100644 index 0000000..fa9e002 --- /dev/null +++ b/srt-cloud-api/src/main/java/net/srt/api/module/data/service/DataServiceApi.java @@ -0,0 +1,31 @@ +package net.srt.api.module.data.service; + +import net.srt.api.ServerNames; +import net.srt.api.module.data.service.dto.DataServiceApiAuthDto; +import net.srt.api.module.data.service.dto.DataServiceApiConfigDto; +import net.srt.framework.common.utils.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * @ClassName DataAccessApi + * @Author zrx + * @Date 2022/10/26 11:39 + */ +@FeignClient(name = ServerNames.DATA_SERVICE_NAME, contextId = "data-service-api") +public interface DataServiceApi { + /** + * 根据id获取 + */ + @GetMapping(value = "api/api-config/{id}") + Result getById(@PathVariable Long id); + + /** + * 添加授权 + */ + @PostMapping(value = "api/api-auth") + Result auth(@RequestBody DataServiceApiAuthDto apiAuthDto); +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/api/MetadataApiImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/api/MetadataApiImpl.java new file mode 100644 index 0000000..bbf902b --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/api/MetadataApiImpl.java @@ -0,0 +1,25 @@ +package net.srt.api; + +import lombok.RequiredArgsConstructor; +import net.srt.api.module.data.governance.DataMetadataApi; +import net.srt.api.module.data.governance.dto.DataGovernanceMetadataDto; +import net.srt.convert.MetadataConvert; +import net.srt.framework.common.utils.Result; +import net.srt.service.MetadataService; +import org.springframework.web.bind.annotation.RestController; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.api + * @Author: jpz + * @CreateTime: 2023/12/25 19:38 + */ +@RestController +@RequiredArgsConstructor +public class MetadataApiImpl implements DataMetadataApi { + private final MetadataService metadataService; + @Override + public Result getById(Integer id) { + return Result.ok(MetadataConvert.INSTANCE.convertDto(metadataService.getById(id))); + } +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/api/MetadataCollectApiImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/api/MetadataCollectApiImpl.java new file mode 100644 index 0000000..a41e9cb --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/api/MetadataCollectApiImpl.java @@ -0,0 +1,139 @@ +package net.srt.api; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import net.srt.api.module.data.governance.DataMetadataCollectApi; +import net.srt.api.module.data.governance.constant.DbType; +import net.srt.api.module.data.governance.dto.DataGovernanceMetadataCollectDto; +import net.srt.api.module.data.governance.dto.DataGovernanceMetadataCollectRecordDto; +import net.srt.api.module.data.governance.dto.DataGovernanceMetadataDto; +import net.srt.api.module.data.governance.dto.DataGovernanceMetadataPropertyDto; +import net.srt.convert.MetadataCollectConvert; +import net.srt.convert.MetadataCollectRecordConvert; +import net.srt.convert.MetadataConvert; +import net.srt.convert.MetadataPropertyConvert; +import net.srt.entity.MetadataCollectEntity; +import net.srt.entity.MetadataCollectRecordEntity; +import net.srt.entity.MetadataEntity; +import net.srt.entity.MetadataPropertyEntity; +import net.srt.framework.common.utils.Result; +import net.srt.service.MetadataCollectRecordService; +import net.srt.service.MetadataCollectService; +import net.srt.service.MetadataPropertyService; +import net.srt.service.MetadataService; +import org.springframework.web.bind.annotation.RestController; + +import java.nio.file.Watchable; +import java.util.List; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.api + * @Author: jpz + * @CreateTime: 2023/12/25 19:45 + */ +@RestController +@RequiredArgsConstructor +public class MetadataCollectApiImpl implements DataMetadataCollectApi { + private final MetadataService metadataService; + private final MetadataCollectService metadataCollectService; + private final MetadataCollectRecordService metadataCollectRecordService; + private final MetadataPropertyService metadataPropertyService; + @Override + public Result getById(Long id) { + return Result.ok(MetadataCollectConvert.INSTANCE.convertDto(metadataCollectService.getById(id))); + } + + @Override + public DataGovernanceMetadataCollectRecordDto addCollectRecord(DataGovernanceMetadataCollectRecordDto collectRecordDto) { + MetadataCollectRecordEntity convert = MetadataCollectRecordConvert.INSTANCE.convert(collectRecordDto); + metadataCollectRecordService.save(convert); + collectRecordDto.setId(convert.getId()); + return collectRecordDto; + } + + @Override + public void upCollectRecord(DataGovernanceMetadataCollectRecordDto collectRecordDto) { + metadataCollectRecordService.updateById(MetadataCollectRecordConvert.INSTANCE.convert(collectRecordDto)); + } + + @Override + public Result getByParentIdAndDatasourceId(Long parnetId, Long datasourceId) { + LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); + wrapper.eq(MetadataEntity::getParentId,parnetId).eq(MetadataEntity::getDatasourceId,datasourceId).last("limit 1"); + return Result.ok(MetadataConvert.INSTANCE.convertDto(metadataService.getOne(wrapper))); + } + + @Override + public Result getMetadataById(Long metadataId) { + return Result.ok(MetadataConvert.INSTANCE.convertDto(metadataService.getById(metadataId))); + } + + @Override + public Result getByParentIdAndOtherInfo(Long parnetId, Long datasourceId, String code, Long metamodelId) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MetadataEntity::getParentId,parnetId).eq(datasourceId!=null,MetadataEntity::getDatasourceId,datasourceId) + .eq(MetadataEntity::getCode,code) + .eq(datasourceId==null,MetadataEntity::getDbType, DbType.MIDDLE_DB.getValue()) + .eq(MetadataEntity::getMetamodelId,metamodelId) + .last("limit 1"); + return Result.ok(MetadataConvert.INSTANCE.convertDto(metadataService.getOne(wrapper))); + } + + @Override + public DataGovernanceMetadataDto addOrUpdateMetadata(DataGovernanceMetadataDto metadataDto) { + MetadataEntity entity=MetadataConvert.INSTANCE.convert(metadataDto); + if (metadataDto.getId()!=null){ + metadataService.updateById(entity); + }else{ + metadataService.save(entity); + } + metadataDto.setId(entity.getId()); + return metadataDto; + } + + @Override + public Result getByPropertyIdAndMetadataId(Long propertyId, Long metadataId) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MetadataPropertyEntity::getId,propertyId).eq(MetadataPropertyEntity::getMetadataId,metadataId).last("limit 1"); + return Result.ok(MetadataPropertyConvert.INSTANCE.convertDto(metadataPropertyService.getOne(wrapper))); + } + + @Override + public void addOrUpdateMetadataProperty(DataGovernanceMetadataPropertyDto metadataPropertyDto) { + if (metadataPropertyDto.getId()!=null){ + metadataPropertyService .save(MetadataPropertyConvert.INSTANCE.convert(metadataPropertyDto)); + }else { + metadataPropertyService.updateById(MetadataPropertyConvert.INSTANCE.convert(metadataPropertyDto)); + } + } + + @Override + public Result> listParentIdAndDatasourceId(Long parentId, Long datasourceId, Long metamodelId) { + LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); + wrapper.eq(MetadataEntity::getParentId,parentId).eq(MetadataEntity::getDatasourceId,datasourceId).eq(MetadataEntity::getMetamodelId,metamodelId); + return Result.ok(MetadataConvert.INSTANCE.convertDtoList(metadataService.list(wrapper))); + } + + @Override + public void deleteMetadata(Long id) { + metadataService.delete(id); + + } + + @Override + public Result getByDatasourceId(Long id) { + LambdaQueryWrapper wrapper=Wrappers.lambdaQuery(); + wrapper.eq(MetadataCollectEntity::getDatabaseId,id).last("limit 1"); + return Result.ok(MetadataCollectConvert.INSTANCE.convertDto(metadataCollectService.getOne(wrapper))); + } + + @Override + public Result getMetadataByDatasourceId(Long id) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MetadataEntity::getDatasourceId,id).last("limit 1"); + return Result.ok(MetadataConvert.INSTANCE.convertDto(metadataService.getOne(wrapper))); + } +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/api/QualityApiImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/api/QualityApiImpl.java new file mode 100644 index 0000000..0b6f575 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/api/QualityApiImpl.java @@ -0,0 +1,10 @@ +package net.srt.api; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.api + * @Author: jpz + * @CreateTime: 2023/12/25 21:01 + */ +public class QualityApiImpl { +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataController.java index 4d51a62..12bba8d 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataController.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataController.java @@ -1,10 +1,12 @@ package net.srt.controller; +import cn.hutool.core.lang.tree.Tree; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import net.srt.framework.common.cache.bean.Neo4jInfo; import net.srt.framework.common.utils.Result; +import net.srt.framework.common.utils.TreeNode; import net.srt.framework.common.utils.TreeNodeVo; import net.srt.service.MetadataService; import net.srt.vo.MetadataVO; @@ -20,6 +22,12 @@ import java.util.List; public class MetadataController { private final MetadataService metadataService; + /** + * 根据父级id获取子节点信息 + * + * @param parentId 父级id + * @return 子节点信息列表 + */ @GetMapping("/list-child") @Operation(summary = "根据父级id获取信息") public Result> listByParentId(@RequestParam Long parentId){ @@ -27,6 +35,11 @@ public class MetadataController { return Result.ok(treeNodeVos); } + + /** + * 获取目录树 + * @return 目录树数据 + */ @GetMapping("/list-floder") @Operation(summary = "获取目录树") public Result> listFloder(){ @@ -34,6 +47,11 @@ public class MetadataController { return Result.ok(treeNodeVos); } + + /** + * 获取库表目录树 + * @return 结果包含库表目录树节点列表 + */ @GetMapping("/list-db") @Operation(summary = "获取库表目录树") public Result> listDb(){ @@ -41,6 +59,8 @@ public class MetadataController { return Result.ok(treeNodeVos); } + + @GetMapping("/list-keyword") @Operation(summary = "模糊查询") public Result> listByKeyword(String keyword){ diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java index a171909..fa826b6 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java @@ -29,4 +29,5 @@ public interface MetadataService extends BaseService { void upNeo4jInfo(Neo4jInfo neo4jInfo); Neo4jInfo getNeo4jInfo(); + } 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 9dd5d33..dfa6334 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 @@ -180,6 +180,8 @@ public class MetadataServiceImpl extends BaseServiceImpl resultList){ if(resultList.stream().noneMatch(item -> metadataEntity.getId().equals(item.getId()))) { resultList.add(metadataEntity); diff --git a/srt-cloud-data-service/pom.xml b/srt-cloud-data-service/pom.xml index 9f5a8d8..6838154 100644 --- a/srt-cloud-data-service/pom.xml +++ b/srt-cloud-data-service/pom.xml @@ -11,12 +11,6 @@ srt-cloud-data-service - - 8 - 8 - UTF-8 - - net.srt @@ -34,15 +28,24 @@ 2.0.0 - org.springframework.cloud - spring-cloud-starter-bootstrap + 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 @@ -51,44 +54,14 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config - - com.github.whvcse - easy-captcha - com.github.xiaoymin knife4j-springdoc-ui - - com.aliyun.oss - aliyun-sdk-oss - - - com.qcloud - cos_api - - - com.qiniu - qiniu-java-sdk - - - com.huaweicloud - esdk-obs-java-bundle - - - io.minio - minio - - - org.apache.ant - ant - 1.9.1 - compile - - + org.codehaus.mojo @@ -126,7 +99,7 @@ ${project.artifactId} - net.srt.SystemApplication + net.net.srt.DataServiceApplication jsw @@ -181,7 +154,7 @@ - net.srt.SystemApplication + net.net.srt.DataServiceApplication ${project.artifactId} @@ -189,24 +162,24 @@ - - maven-assembly-plugin - - - ${project.parent.basedir}/assembly/assembly-win.xml - ${project.parent.basedir}/assembly/assembly-linux.xml - - - - - make-assembly - package - - single - - - - + + + + + + + + + + + + + + + + + +