From 4b33d46b792fba67d3e8cf5404eb4ae3d596e77a Mon Sep 17 00:00:00 2001 From: jpz <3185133571@qq.com> Date: Sun, 24 Dec 2023 22:28:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=B4=A8=E9=87=8F=E8=A7=84?= =?UTF-8?q?=E5=88=99=E9=85=8D=E7=BD=AE=E7=9B=AE=E5=BD=95=E6=A0=911?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QualityConfigController.java | 1 + .../srt/service/impl/MetadataServiceimpl.java | 226 +----------------- 2 files changed, 4 insertions(+), 223 deletions(-) diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java index 66dc26b..1bc216a 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java @@ -25,6 +25,7 @@ import java.util.List; @AllArgsConstructor public class QualityConfigController { private final QualityConfigService qualityConfigService; + @GetMapping("page") @Operation(summary = "分页") public Result> page(@Valid QualityConfigQuery query){ 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 8609811..1e64ca1 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,232 +1,12 @@ package net.srt.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; -import io.minio.messages.Metadata; -import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.servers.Server; import lombok.AllArgsConstructor; -import lombok.Getter; -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.dao.MetamodelDao; 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.Result; -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; -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 org.springframework.web.bind.annotation.GetMapping; -import srt.cloud.framework.dbswitch.common.util.StringUtil; - -import java.util.ArrayList; -import java.util.List; - -/** - * @BelongsProject: srt_cloud - * @BelongsPackage: net.srt.service.impl - * @Author: jpz - * @CreateTime: 2023/12/24 14:38 - */ -@Service +@Server @AllArgsConstructor -public class MetadataServiceimpl extends BaseServiceImplimplements MetadataService { - private final MetamodelDao metamodelDao; - private final MetadataPropertyDao metadataPropertyDao; - private final TokenStoreCache tokenStoreCache; - @Override - public List listByPatenId(Long parentId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(MetadataEntity::getParentId,parentId).orderByAsc(MetadataEntity::getOrderNo); - dataScopeWithOrgId(wrapper); - List list = baseMapper.selectList(wrapper); - return BeanUtil.copyListProperties(list,TreeNodeVo::new,(oldItm,newItm)->{ - newItm.setLabel(oldItm.getName()); - newItm.setValue(oldItm.getId()); - newItm.setLeaf(BuiltInMetamodel.COLUMN.getId().equals(oldItm.getMetamodelId())); - newItm.setDisabled(!BuiltInMetamodel.COLUMN.getId().equals(oldItm.getMetamodelId())); - if (newItm.getPath().contains("/")){ - newItm.setParentPath(newItm.getPath().substring(0,newItm.getPath().lastIndexOf("/"))); - } - }); - } - - @Override - public List listFloder() { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(MetadataEntity::getIfLeaf,1).orderByAsc(MetadataEntity::getOrderNo).orderByAsc(MetadataEntity::getId); - dataScopeWithOrgId(wrapper); - List list = baseMapper.selectList(wrapper); - List treeNodeVos=BeanUtil.copyListProperties(list,TreeNodeVo::new,(oldItm,newItm)->{ - newItm.setLabel(oldItm.getName()); - newItm.setValue(oldItm.getId()); - if (newItm.getPath().contains("/")){ - newItm.setParentPath(newItm.getPath().substring(0,newItm.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 list = baseMapper.selectList(wrapper); - List treeNodeVos=BeanUtil.copyListProperties(list,TreeNodeVo::new,(oldItm,newItm)->{ - newItm.setLabel(oldItm.getName()); - newItm.setValue(oldItm.getId()); - if (newItm.getPath().contains("/")){ - newItm.setParentPath(newItm.getPath().substring(0,newItm.getPath().lastIndexOf("/"))); - } - }); - return BuildTreeUtils.buildTree(treeNodeVos); - } - - @Override - public List listKeyword(String keyword) { - if (StringUtil.isBlank(keyword)){ - return listByPatenId(0L); - } - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.like(MetadataEntity::getName,keyword).or().like(MetadataEntity::getCode,keyword).orderByAsc(MetadataEntity::getOrderNo); - ArrayList arrayList = new ArrayList<>(); - //递归获取父级 - for (MetadataEntity metadataEntity : arrayList) { - recursionAddParent(metadataEntity,arrayList); - } - return null; - } - - @Override - public MetadataVo get(Long id) { - MetadataEntity metadataEntity = getById(id); - MetadataVo metadataVo = MetadataConvert.INSTANCE.convert(metadataEntity); - //获取元数据属性信息 - metadataVo.setProperties(metadataPropertyDao.listPropertyById(id,metadataVo.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 metadataEntity=baseMapper.selectById(vo.getParentId()); - if (metadataEntity!=null){ - entity.setDbType(metadataEntity.getDbType()); - entity.setDatasourceId(metadataEntity.getDatasourceId()); - entity.setCollectTaskId(metadataEntity.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 wrapper1 = new LambdaQueryWrapper<>(); - wrapper1.eq(MetadataPropertyEntity::getMetadataId,id); - metadataPropertyDao.delete(wrapper1); - } - - @Override - public void updateNeo4j(Neo4jInfo neo4jInfo) { - tokenStoreCache.saveNeo4jInfo(getProjectId(),neo4jInfo); - } - - @Override - public Neo4jInfo getNeo4j() { - return tokenStoreCache.getNeo4jInfo(getProjectId()); - } - - private void buildProperties(MetadataEntity entity, List properties) { - if (!CollectionUtils.isEmpty(properties)){ - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(MetadataEntity::getMetamodelId,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); - } - } - } - } - - private void buildField(MetadataEntity entity) { - if (entity.getMetamodelId() != null) { - entity.setIcon(metamodelDao.selectById(entity.getMetamodelId()).getIcon()); - } - if (entity.getIfLeaf() == 1 && entity.getMetamodelId() == null) { - entity.setIcon("/src/assets/folder.png"); - } - - } - - private String recursionPath(MetadataEntity entity, String path) { - if (StringUtil.isBlank(path)) { - path = entity.getName(); - } - if (entity.getParentId() != 0) { - MetadataEntity parent = getById(entity.getParentId()); - path = parent.getName() + "/" + path; - return recursionPath(parent, path); - } - return path; - } - - - private void recursionAddParent(MetadataEntity metadataEntity, ArrayList arrayList) { - if (arrayList.stream().noneMatch(item->metadataEntity.getId().equals(item.getId()))){ - //添加自己 - arrayList.add(metadataEntity); - } - //如果不是顶级 - if (metadataEntity.getProjectId()!=0){ - //获取父级,继续递归 - MetadataEntity parent = getById(metadataEntity.getParentId()); - recursionAddParent(parent,arrayList); - } - } - - +public class MetadataServiceImpl extends BaseServiceImpl implements MetadataService { }