Tag model opt (#784)

This commit is contained in:
daikon
2024-03-05 20:04:17 +08:00
committed by GitHub
parent c97f567cd8
commit 0b9bfebacc
4 changed files with 73 additions and 24 deletions

View File

@@ -4,5 +4,6 @@ public enum TagDefineType {
FIELD, FIELD,
DIMENSION, DIMENSION,
METRIC,
TAG TAG
} }

View File

@@ -12,8 +12,14 @@ import lombok.ToString;
@ToString(callSuper = true) @ToString(callSuper = true)
public class TagResp extends SchemaItem { public class TagResp extends SchemaItem {
private Long domainId;
private String domainName;
private Long modelId; private Long modelId;
private String modelName;
private String type; private String type;
private Boolean isCollect; private Boolean isCollect;

View File

@@ -36,7 +36,7 @@ public class CollectServiceImpl implements CollectService {
public Boolean deleteCollectionIndicators(User user, Long id) { public Boolean deleteCollectionIndicators(User user, Long id) {
QueryWrapper<CollectDO> collectDOQueryWrapper = new QueryWrapper<>(); QueryWrapper<CollectDO> collectDOQueryWrapper = new QueryWrapper<>();
collectDOQueryWrapper.lambda().eq(CollectDO::getUsername, user.getName()); collectDOQueryWrapper.lambda().eq(CollectDO::getUsername, user.getName());
collectDOQueryWrapper.lambda().eq(CollectDO::getCollectId, id); collectDOQueryWrapper.lambda().eq(CollectDO::getId, id);
collectDOQueryWrapper.lambda().eq(CollectDO::getType, type); collectDOQueryWrapper.lambda().eq(CollectDO::getType, type);
collectMapper.delete(collectDOQueryWrapper); collectMapper.delete(collectDOQueryWrapper);
return true; return true;

View File

@@ -38,6 +38,7 @@ import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -61,13 +62,17 @@ public class TagServiceImpl implements TagService {
checkParam(tagReq); checkParam(tagReq);
checkExit(tagReq); checkExit(tagReq);
TagDO tagDO = convert(tagReq); TagDO tagDO = convert(tagReq);
Date date = new Date();
tagDO.setCreatedBy(user.getName()); tagDO.setCreatedBy(user.getName());
tagDO.setCreatedAt(new Date()); tagDO.setCreatedAt(date);
tagDO.setUpdatedBy(user.getName());
tagDO.setUpdatedAt(date);
if (Objects.nonNull(tagReq.getStatus())) { if (Objects.nonNull(tagReq.getStatus())) {
tagDO.setStatus(tagReq.getStatus()); tagDO.setStatus(tagReq.getStatus());
} else { } else {
tagDO.setStatus(StatusEnum.ONLINE.getCode()); tagDO.setStatus(StatusEnum.ONLINE.getCode());
} }
tagRepository.create(tagDO); tagRepository.create(tagDO);
return convert(tagDO); return convert(tagDO);
} }
@@ -78,18 +83,7 @@ public class TagServiceImpl implements TagService {
throw new RuntimeException("id is empty"); throw new RuntimeException("id is empty");
} }
TagDO tagDO = tagRepository.getTagById(tagReq.getId()); TagDO tagDO = tagRepository.getTagById(tagReq.getId());
if (Objects.nonNull(tagDO) && tagDO.getId() > 0) { tagDO = fillUpdateInfo(tagReq, tagDO);
if (Objects.nonNull(tagReq.getExt()) && !tagReq.getExt().isEmpty()) {
tagDO.setExt(tagReq.getExtJson());
}
}
if (Objects.nonNull(tagReq.getTagDefineType())) {
tagDO.setDefineType(tagReq.getTagDefineType().name());
}
if (Objects.nonNull(tagReq.getTagDefineParams()) && !StringUtils.isBlank(
tagReq.getTagDefineParams().getExpr())) {
tagDO.setTypeParams(tagReq.getTypeParamsJson());
}
tagDO.setUpdatedBy(user.getName()); tagDO.setUpdatedBy(user.getName());
tagDO.setUpdatedAt(new Date()); tagDO.setUpdatedAt(new Date());
tagRepository.update(tagDO); tagRepository.update(tagDO);
@@ -113,19 +107,10 @@ public class TagServiceImpl implements TagService {
// return convert(tagRepository.getTagById(id)); // return convert(tagRepository.getTagById(id));
TagDO tagDO = tagRepository.getTagById(id); TagDO tagDO = tagRepository.getTagById(id);
TagResp tagResp = fillCollectAndAdminInfo(tagDO, user); TagResp tagResp = fillCollectAndAdminInfo(tagDO, user);
tagResp = fillModelInfo(tagResp);
return tagResp; return tagResp;
} }
private TagResp fillCollectAndAdminInfo(TagDO tagDO, User user) {
List<Long> collectIds = collectService.getCollectList(user.getName())
.stream().filter(collectDO -> TypeEnums.TAG.name().equalsIgnoreCase(collectDO.getType()))
.map(CollectDO::getCollectId).collect(Collectors.toList());
List<TagResp> tagRespList = convertList(new ArrayList<>(Arrays.asList(tagDO)), collectIds);
fillAdminRes(tagRespList, user);
return tagRespList.get(0);
}
@Override @Override
public List<TagResp> getTags(TagFilter tagFilter) { public List<TagResp> getTags(TagFilter tagFilter) {
List<TagDO> tagDOS = tagRepository.query(tagFilter); List<TagDO> tagDOS = tagRepository.query(tagFilter);
@@ -163,6 +148,7 @@ public class TagServiceImpl implements TagService {
BeanUtils.copyProperties(tagDOPageInfo, pageInfo); BeanUtils.copyProperties(tagDOPageInfo, pageInfo);
List<TagResp> tagRespList = convertList(tagDOPageInfo.getList(), collectIds); List<TagResp> tagRespList = convertList(tagDOPageInfo.getList(), collectIds);
fillAdminRes(tagRespList, user); fillAdminRes(tagRespList, user);
fillModelInfo(tagRespList);
pageInfo.setList(tagRespList); pageInfo.setList(tagRespList);
return pageInfo; return pageInfo;
@@ -192,6 +178,62 @@ public class TagServiceImpl implements TagService {
return true; return true;
} }
private TagDO fillUpdateInfo(TagReq tagReq, TagDO tagDO) {
if (Objects.nonNull(tagDO) && tagDO.getId() > 0) {
if (Objects.nonNull(tagReq.getExt()) && !tagReq.getExt().isEmpty()) {
tagDO.setExt(tagReq.getExtJson());
}
}
if (Objects.nonNull(tagReq.getTagDefineType())) {
tagDO.setDefineType(tagReq.getTagDefineType().name());
}
if (Objects.nonNull(tagReq.getTagDefineParams()) && !StringUtils.isBlank(
tagReq.getTagDefineParams().getExpr())) {
tagDO.setTypeParams(tagReq.getTypeParamsJson());
}
if (Strings.isNotEmpty(tagReq.getDescription())) {
tagDO.setDescription(tagReq.getDescription());
}
if (Objects.nonNull(tagReq.getSensitiveLevel())) {
tagDO.setSensitiveLevel(tagReq.getSensitiveLevel());
}
if (Strings.isNotEmpty(tagReq.getName())) {
tagDO.setName(tagReq.getName());
}
if (Objects.nonNull(tagReq.getStatus())) {
tagDO.setStatus(tagReq.getStatus());
}
return tagDO;
}
private TagResp fillModelInfo(TagResp tagResp) {
ModelResp model = modelService.getModel(tagResp.getModelId());
tagResp.setModelName(model.getName());
tagResp.setDomainId(model.getDomainId());
return tagResp;
}
private void fillModelInfo(List<TagResp> tagRespList) {
Map<Long, ModelResp> modelIdAndRespMap = modelService.getModelMap();
tagRespList.stream().forEach(tagResp -> {
if (Objects.nonNull(modelIdAndRespMap) && modelIdAndRespMap.containsKey(tagResp.getModelId())) {
tagResp.setModelName(modelIdAndRespMap.get(tagResp.getModelId()).getName());
tagResp.setDomainId(modelIdAndRespMap.get(tagResp.getModelId()).getDomainId());
}
});
}
private TagResp fillCollectAndAdminInfo(TagDO tagDO, User user) {
List<Long> collectIds = collectService.getCollectList(user.getName())
.stream().filter(collectDO -> TypeEnums.TAG.name().equalsIgnoreCase(collectDO.getType()))
.map(CollectDO::getCollectId).collect(Collectors.toList());
List<TagResp> tagRespList = convertList(new ArrayList<>(Arrays.asList(tagDO)), collectIds);
fillAdminRes(tagRespList, user);
return tagRespList.get(0);
}
private void fillAdminRes(List<TagResp> tagRespList, User user) { private void fillAdminRes(List<TagResp> tagRespList, User user) {
List<ModelResp> modelRespList = modelService.getModelListWithAuth(user, null, AuthType.ADMIN); List<ModelResp> modelRespList = modelService.getModelListWithAuth(user, null, AuthType.ADMIN);
if (CollectionUtils.isEmpty(modelRespList)) { if (CollectionUtils.isEmpty(modelRespList)) {