Commit 09ad151b by zhangkb

修改获取个人标签接口

parent 850aaefd
...@@ -125,7 +125,8 @@ public class TagCtrl { ...@@ -125,7 +125,8 @@ public class TagCtrl {
//考虑一个用户对应多个机构的情况 //考虑一个用户对应多个机构的情况
List<String> orgIds = new ArrayList<>(); List<String> orgIds = new ArrayList<>();
orgIds.add(deptIdPath); orgIds.add(deptIdPath);
return tagService.searchPersonalTagByPage(userName, orgIds, keyword, path, domain, new Page(pageSize, pageNo)); return tagService.searchPersonalTagByPage(userName, orgIds, keyword, path,
domain, new Page(pageSize, pageNo));
} }
// @PreAuthorize("principal.authorities.?[authority.startsWith('ROLE_tagmanager_admin')].size() > 0") // @PreAuthorize("principal.authorities.?[authority.startsWith('ROLE_tagmanager_admin')].size() > 0")
......
...@@ -362,27 +362,31 @@ public class TagService { ...@@ -362,27 +362,31 @@ public class TagService {
//拼接个人维度标签树查询条件 //拼接个人维度标签树查询条件
private Query createDimensionTagQuery(List<String> companyOrgIdList) { private Query createDimensionTagQuery(List<String> companyOrgIdList) {
Criteria criteriaOr = new Criteria(); Criteria criteriaOr = new Criteria();
Criteria criteria = Criteria.where("dimensionType").is(Constants.TAG_DIMENSION_TRUE)
.and("tagType").is(Constants.TAG_PERSONAL_TYPE);
List<Criteria> criteriaOrList = new ArrayList<>();
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteria = Criteria.where("dimensionType").is(Constants.TAG_DIMENSION_TRUE) Criteria criteriaPro = Criteria.where("proDept").is(companyOrgId);
.and("tagType").is(Constants.TAG_PERSONAL_TYPE) criteriaOrList.add(criteriaPro);
.and("proDept").is(companyOrgId);
//加入or条件中
criteriaOr.orOperator(criteria);
} }
return Query.query(criteriaOr).with(Sort.by(getDefaultTagOrders())); criteriaOr.orOperator(criteriaOrList.toArray(new Criteria[0]));
criteria.andOperator(criteriaOr);
return Query.query(criteria).with(Sort.by(getDefaultTagOrders()));
} }
//根据机构获取当前维度标签的所有子标签 //根据机构获取当前维度标签的所有子标签
private List<Tag> getDimensionSubTag(Tag parentTag,List<String> companyOrgIdList) { private List<Tag> getDimensionSubTag(Tag parentTag,List<String> companyOrgIdList) {
Criteria criteriaOr = new Criteria(); Criteria criteriaOr = new Criteria();
List<Criteria> criteriaOrList = new ArrayList<>();
Criteria criteria = Criteria.where("path")
.regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR)
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE);
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteria = Criteria.where("path") Criteria criteriaPro = Criteria.where("proDept").is(companyOrgId);
.regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR) criteriaOrList.add(criteriaPro);
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE) }
.and("proDept").is(companyOrgId); criteriaOr.orOperator(criteriaOrList.toArray(new Criteria[0]));
//加入or条件中 criteria.andOperator(criteriaOr);
criteriaOr.orOperator(criteria); List<Tag> dirs = mongoOperations.find(new Query().addCriteria(criteria)
}
List<Tag> dirs = mongoOperations.find(new Query().addCriteria(criteriaOr)
.with(Sort.by(getDefaultTagOrders())), Tag.class); .with(Sort.by(getDefaultTagOrders())), Tag.class);
dirs.add(parentTag); dirs.add(parentTag);
return dirs; return dirs;
...@@ -409,12 +413,12 @@ public class TagService { ...@@ -409,12 +413,12 @@ public class TagService {
List<Criteria> criteriaOrList = new ArrayList<>(); List<Criteria> criteriaOrList = new ArrayList<>();
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteriaDim = Criteria.where("proDept").is(companyOrgId) Criteria criteriaDim = Criteria.where("proDept").is(companyOrgId)
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE);//标签是维度管理员机构的 .and("dimensionType").is(Constants.TAG_DIMENSION_TRUE);//标签是维度且是公司管理员机构的
criteriaOrList.add(criteriaDim); criteriaOrList.add(criteriaDim);
} }
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteriaShare = Criteria.where("proDept").is(companyOrgId) Criteria criteriaShare = Criteria.where("proDept").is(companyOrgId)
.and("isOpen").is(Constants.TAG_OPEN_STATUS);//公司机构id是companyId和是共享状态的 .and("isOpen").is(Constants.TAG_OPEN_STATUS);//公司机构id是companyId和是共享状态的非维度标签
criteriaOrList.add(criteriaShare); criteriaOrList.add(criteriaShare);
} }
for(String orgId : orgIds) { for(String orgId : orgIds) {
...@@ -429,24 +433,27 @@ public class TagService { ...@@ -429,24 +433,27 @@ public class TagService {
//根据父标签查找子标签 //根据父标签查找子标签
private List<Tag> getNewPersonSubTag(Tag parentTag, String userId,List<String> orgIds, private List<Tag> getNewPersonSubTag(Tag parentTag, String userId,List<String> orgIds,
List<String> companyOrgIdList) { List<String> companyOrgIdList) {
List<Criteria> criteriaOrList = new ArrayList<>();
Criteria criteriaOr = new Criteria();
Criteria criteria = Criteria.where("path") Criteria criteria = Criteria.where("path")
.regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR) .regex("^"+parentTag.getPath() + Constants.TAG_PATH_SEPARATOR)
.and("tagType").is(Constants.TAG_PERSONAL_TYPE); .and("tagType").is(Constants.TAG_PERSONAL_TYPE);
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteriaDim = Criteria.where("proDept").is(companyOrgId) Criteria criteriaDim = Criteria.where("proDept").is(companyOrgId)
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE);//标签是维度管理员机构的 .and("dimensionType").is(Constants.TAG_DIMENSION_TRUE);//标签是维度管理员机构的
criteriaOrList.add(criteriaDim);
criteria.orOperator(criteriaDim);
} }
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteriaShare = Criteria.where("proDept").is(companyOrgId) Criteria criteriaShare = Criteria.where("proDept").is(companyOrgId)
.and("isOpen").is(Constants.TAG_OPEN_STATUS);//公司机构id是companyId和是共享状态的 .and("isOpen").is(Constants.TAG_OPEN_STATUS);//公司机构id是companyId和是共享状态的
criteria.orOperator(criteriaShare); criteriaOrList.add(criteriaShare);
} }
for(String orgId : orgIds) { for(String orgId : orgIds) {
Criteria criteriaUser = Criteria.where("dept").is(orgId).and("tagUser").is(userId); Criteria criteriaUser = Criteria.where("dept").is(orgId).and("tagUser").is(userId);
criteria.orOperator(criteriaUser); criteriaOrList.add(criteriaUser);
} }
criteriaOr.orOperator(criteriaOrList.toArray(new Criteria[0]));
criteria.andOperator(criteriaOr);
List<Tag> dirs = mongoOperations.find(new Query().addCriteria(criteria) List<Tag> dirs = mongoOperations.find(new Query().addCriteria(criteria)
.with(Sort.by(getDefaultTagOrders())), Tag.class); .with(Sort.by(getDefaultTagOrders())), Tag.class);
dirs.add(parentTag); dirs.add(parentTag);
...@@ -463,15 +470,19 @@ public class TagService { ...@@ -463,15 +470,19 @@ public class TagService {
private Criteria createPersonalDimensionTagCriteria(String userName, private Criteria createPersonalDimensionTagCriteria(String userName,
String path, List<String> companyOrgIdList)throws TagNotExistException { String path, List<String> companyOrgIdList)throws TagNotExistException {
Criteria criteriaOr = new Criteria(); Criteria criteriaOr = new Criteria();
List<Criteria> criteriaOrList = new ArrayList<>();
Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE)
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE);
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE) Criteria criteriaPro = Criteria.where("proDept").is(companyOrgId);
.and("proDept").is(companyOrgId).and("dimensionType").is(Constants.TAG_DIMENSION_TRUE); criteriaOrList.add(criteriaPro);
criteriaOr.orOperator(criteria);
} }
criteriaOr.orOperator(criteriaOrList.toArray(new Criteria[0]));
criteria.andOperator(criteriaOr);
if (StringUtils.isNotBlank(path)) { if (StringUtils.isNotBlank(path)) {
criteriaOr.and("path").regex("^"+path); criteria.and("path").regex("^"+path);
} }
return criteriaOr; return criteria;
} }
//拼接查找系统标签条件 //拼接查找系统标签条件
private Criteria createSystemTagCriteria(String path) { private Criteria createSystemTagCriteria(String path) {
...@@ -501,12 +512,13 @@ public class TagService { ...@@ -501,12 +512,13 @@ public class TagService {
List<String> companyOrgIdList, String path) throws TagNotExistException{ List<String> companyOrgIdList, String path) throws TagNotExistException{
Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE); Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE);
Criteria criteriaOr = new Criteria(); Criteria criteriaOr = new Criteria();
List<Criteria> criteriaOrList = new ArrayList<>();
for(String orgId : orgIds) { for(String orgId : orgIds) {
Criteria criteriaUser = Criteria.where("dept").is(orgId).and("tagUser").is(userName); Criteria criteriaUser = Criteria.where("dept").is(orgId).and("tagUser").is(userName);
if (StringUtils.isNotBlank(path)) { if (StringUtils.isNotBlank(path)) {
criteriaUser.and("path").regex("^"+path); criteriaUser.and("path").regex("^"+path);
} }
criteriaOr.orOperator(criteriaUser); criteriaOrList.add(criteriaUser);
} }
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteriaUser = Criteria.where("proDept").is(companyOrgId) Criteria criteriaUser = Criteria.where("proDept").is(companyOrgId)
...@@ -514,8 +526,9 @@ public class TagService { ...@@ -514,8 +526,9 @@ public class TagService {
if (StringUtils.isNotBlank(path)) { if (StringUtils.isNotBlank(path)) {
criteriaUser.and("path").regex("^"+path); criteriaUser.and("path").regex("^"+path);
} }
criteriaOr.orOperator(criteriaUser); criteriaOrList.add(criteriaUser);
} }
criteriaOr.orOperator(criteriaOrList.toArray(new Criteria[0]));
criteria.andOperator(criteriaOr); criteria.andOperator(criteriaOr);
return criteria; return criteria;
} }
...@@ -531,12 +544,16 @@ public class TagService { ...@@ -531,12 +544,16 @@ public class TagService {
//拼接获取维度标签条件 //拼接获取维度标签条件
private Query createPersonalExcludeOpenTypeTagQuery(String userName, List<String> companyOrgIdList) { private Query createPersonalExcludeOpenTypeTagQuery(String userName, List<String> companyOrgIdList) {
Criteria criteriaOr = new Criteria(); Criteria criteriaOr = new Criteria();
List<Criteria> criteriaOrList = new ArrayList<>();
Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE)
.and("dimensionType").is(Constants.TAG_DIMENSION_TRUE);
for(String companyOrgId : companyOrgIdList) { for(String companyOrgId : companyOrgIdList) {
Criteria criteria = Criteria.where("tagType").is(Constants.TAG_PERSONAL_TYPE) Criteria criteriaDept = Criteria.where("dept").is(companyOrgId);
.and("dept").is(companyOrgId).and("dimensionType").is(Constants.TAG_DIMENSION_TRUE); criteriaOrList.add(criteriaDept);
criteriaOr.orOperator(criteria);
} }
return Query.query(criteriaOr) criteriaOr.orOperator(criteriaOrList.toArray(new Criteria[0]));
criteria.andOperator(criteriaOr);
return Query.query(criteria)
.with(Sort.by(getDefaultTagOrders())); .with(Sort.by(getDefaultTagOrders()));
} }
......
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