Commit 196f32d6 by lanmw

add dimension

parent b89a6ee4
......@@ -59,6 +59,12 @@ public class TagCtrl {
return tagService.querySystemTagAsTree(parentId);
}
@ApiOperation(value = "查询维度标签树", notes = "查询维度标签树")
@GetMapping(value = "/queryDimensionTagAsTree")
public JsonNode[] queryDimensionTagAsTree(@RequestParam(value = "parentId", required = false) String parentId) throws TagNotExistException {
return tagService.queryDimensionTagAsTree(parentId);
}
@ApiOperation(value = "查询个人标签树", notes = "查询个人标签树")
@GetMapping(value = "/queryPersonalTagAsTree")
public JsonNode[] queryPersonalTagAsTree(@RequestParam(value = "parentId", required = false) String parentId) throws TagNotExistException {
......@@ -66,6 +72,13 @@ public class TagCtrl {
return tagService.queryPersonalTagAsTree(parentId, userName);
}
@ApiOperation(value = "查询个人标签树不包括分享的标签", notes = "查询个人标签树不包括分享的标签")
@GetMapping(value = "/queryPersonalTagExcludeOpenTypeAsTree")
public JsonNode[] queryPersonalTagExcludeOpenTypeAsTree(@RequestParam(value = "parentId", required = false) String parentId) throws TagNotExistException {
String userName = UserInfoUtils.getUserName();
return tagService.queryPersonalTagExcludeOpenTypeAsTree(parentId, userName);
}
@ApiOperation(value = "搜索系統标签", notes = "搜索系統标签")
@GetMapping(value = "/searchSystemTagByPage")
public Page searchSystemTagByPage(@RequestParam(required = false, value = "keyword") String keyword,
......
......@@ -29,7 +29,7 @@ public class Tag implements Serializable{
private String creator;
private String isOpen = Constants.TAG_CLOSE_STATUS; //0 不公开, 1, 公开
private Integer domain;
private boolean dimension = false;//是否维度标签
private String dimensionType = Constants.TAG_DIMENSION_FALSE;//0 非维度标签, 1 维度标签
public Tag() {}
......@@ -151,13 +151,12 @@ public class Tag implements Serializable{
this.domain = domain;
}
public boolean isDimension() {
return dimension;
public void setDimensionType(String dimensionType) {
this.dimensionType = dimensionType;
}
public void setDimension(boolean dimension) {
this.dimension = dimension;
public String getDimensionType() {
return dimensionType;
}
}
......@@ -103,11 +103,20 @@ public class TagService {
private Query createPersonalTagQuery(String userName) {
return Query.query(Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE)
.orOperator(
Criteria.where("dimensionType").is(Constants.TAG_DIMENSION_TRUE),
Criteria.where("isOpen").is(Constants.TAG_OPEN_STATUS),
Criteria.where("creator").is(userName)))
.with(Sort.by(getDefaultTagOrders()));
}
private Query createPersonalExcludeOpenTypeTagQuery(String userName) {
return Query.query(Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE)
.orOperator(
Criteria.where("dimensionType").is(Constants.TAG_DIMENSION_TRUE),
Criteria.where("creator").is(userName)))
.with(Sort.by(getDefaultTagOrders()));
}
private List<Order> getDefaultTagOrders() {
List<Order> orders = new ArrayList<>();
orders.add(new Order(Direction.ASC, "level"));
......@@ -230,5 +239,62 @@ public class TagService {
});
tagRepository.saveAll(tags);
}
public JsonNode[] queryDimensionTagAsTree(String parentId) throws TagNotExistException {
List<Tag> tags = new ArrayList<>();
if (StringUtils.isEmpty(parentId)) {
tags = mongoOperations.find(createDimensionTagQuery(), Tag.class);
} else {
Tag parentTag = getTagById(parentId);
tags = getDimensionSubTag(parentTag);
tags.forEach(tag -> tag.setPath(tag.getPath().replaceAll(parentTag.getPath(), parentTag.getName())));
}
List<JsonNode> nodes = new ArrayList<>();
tags.forEach(p -> {
JsonNode node = new JsonNode(p.getPath(), p.getId(), p.getPath());
nodes.add(node);
});
JsonNode root = JsonTreeHelper.toJsonTree(nodes, Constants.TAG_PATH_SEPARATOR);
if (root.children != null)
return root.children;
else
return new JsonNode[] {};
}
private List<Tag> getDimensionSubTag(Tag parentTag) {
List<Tag> dirs = mongoOperations.find(new Query().addCriteria(Criteria.where("path")
.regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR)
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE))
.with(Sort.by(getDefaultTagOrders())), Tag.class);
dirs.add(parentTag);
return dirs;
}
private Query createDimensionTagQuery() {
return Query.query(Criteria.where("tagType").is(Constants.TAG_DIMENSION_TRUE))
.with(Sort.by(getDefaultTagOrders()));
}
public JsonNode[] queryPersonalTagExcludeOpenTypeAsTree(String parentId, String userName) throws TagNotExistException {
List<Tag> tags = new ArrayList<>();
if (StringUtils.isEmpty(parentId)) {
tags = mongoOperations.find(createPersonalExcludeOpenTypeTagQuery(userName), Tag.class);
} else {
Tag parentTag = getTagById(parentId);
tags = getPersonSubTag(parentTag, userName);
tags.forEach(tag -> tag.setPath(tag.getPath().replaceAll(parentTag.getPath(), parentTag.getName())));
}
List<JsonNode> nodes = new ArrayList<>();
tags.forEach(p -> {
JsonNode node = new JsonNode(p.getPath(), p.getId(), p.getPath());
nodes.add(node);
});
JsonNode root = JsonTreeHelper.toJsonTree(nodes, Constants.TAG_PATH_SEPARATOR);
if (root.children != null)
return root.children;
else
return new JsonNode[] {};
}
}
......@@ -44,6 +44,8 @@ public final class Constants {
public static final String TAG_PATH_SEPARATOR = ",";
public static final String TAG_OPEN_STATUS = "1";
public static final String TAG_CLOSE_STATUS = "0";
public static final String TAG_DIMENSION_TRUE = "1";
public static final String TAG_DIMENSION_FALSE = "0";
public static final String PROCESS_AUDITSTATUS_APPLYING = "applying";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment