Commit 417ecfdc by zhangkb

修改导出标签元数据接口

parent 1443fe25
...@@ -6,6 +6,7 @@ import java.util.LinkedList; ...@@ -6,6 +6,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -24,6 +25,7 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -24,6 +25,7 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.keymobile.auth.common.security.GrantedAuthHelper;
import com.keymobile.tagmanager.model.ImportLog; import com.keymobile.tagmanager.model.ImportLog;
import com.keymobile.tagmanager.model.Page; import com.keymobile.tagmanager.model.Page;
import com.keymobile.tagmanager.model.SysTag; import com.keymobile.tagmanager.model.SysTag;
...@@ -112,11 +114,46 @@ public class TagFileService { ...@@ -112,11 +114,46 @@ public class TagFileService {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public int exportTagMetadataExcel(String idPath,String dimensionType, public int exportTagMetadataExcel(String idPath,String dimensionType,
String tagType,HttpServletResponse response) { String tagType,HttpServletResponse response) {
//获取用户数据权限接口
Map<Long, Set<String>> systemTagMap = GrantedAuthHelper.getDataPrivileges();
//获取标签元数据信息 //获取标签元数据信息
Map<String,Object> data = repoService.getTagMetadata(dimensionType,idPath, "", null, 1, 100000,tagType); List<Map<String,Object>> content = repoService.getByTagByPrivileges(systemTagMap,
List<Map<String,Object>> content = (List<Map<String,Object>>)data.get("content"); null, idPath, tagType, dimensionType, "", 1, 10);
//新建用于过滤content权限list
List<Map<String,Object>> privilegeContent = new ArrayList<>();
//比较标签关联的元数据所属系统跟用户被授予的系统是否一致
for(Map<String,Object> mData : content) {
if(mData.get("sysList")!=null) {
List<String> sysList = (List<String>)mData.get("sysList");
//比较系统,有同个系统的则为可见的共享标签
for(String sys : sysList) {
if(systemTagMap.get(Long.valueOf(sys))!=null) {
if(systemTagMap.get(Long.valueOf(sys)).contains("*")) {
privilegeContent.add(mData);
}else {
//根据当前用户被授予的标签获取关联的元数据
Set<String> tags = systemTagMap.get(Long.valueOf(sys));
for(String usrTag : tags) {
List<Map<String,Object>> tagContent = repoService.getByTagByPrivileges(
systemTagMap, null, usrTag, "1", "1", "",
1, 10);
List<String> idList = new ArrayList<>();
for(Map<String,Object> map : tagContent) {
idList.add(map.get("_id").toString());
}
if(idList.contains(mData.get("_id"))) {
privilegeContent.add(mData);
}
}
}
}
}
}
}
List<TagMetadata> toExportTagMeta = new ArrayList<>(); List<TagMetadata> toExportTagMeta = new ArrayList<>();
for(Map<String,Object> map : content) { for(Map<String,Object> map : privilegeContent) {
TagMetadata tagMeta = new TagMetadata(); TagMetadata tagMeta = new TagMetadata();
tagMeta.setMetaModel(map.get("type").toString()); tagMeta.setMetaModel(map.get("type").toString());
tagMeta.setName(map.get("name").toString()); tagMeta.setName(map.get("name").toString());
......
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