Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tagManager
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanmw
tagManager
Commits
7baf72d6
Commit
7baf72d6
authored
Jan 16, 2020
by
zhangkb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加标签分析接口
parent
a13be4fc
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
107 additions
and
0 deletions
+107
-0
TagCtrl.java
src/main/java/com/keymobile/tagmanager/api/TagCtrl.java
+8
-0
RepoServiceClient.java
...va/com/keymobile/tagmanager/remote/RepoServiceClient.java
+5
-0
TagService.java
...ain/java/com/keymobile/tagmanager/service/TagService.java
+94
-0
No files found.
src/main/java/com/keymobile/tagmanager/api/TagCtrl.java
View file @
7baf72d6
package
com
.
keymobile
.
tagmanager
.
api
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -240,6 +241,13 @@ public class TagCtrl {
tagService
.
shareTags
(
tagIds
,
tagOpenStatus
);
}
//author:zhangkb time:2020-1-16 desc:标签分析接口
@ApiOperation
(
value
=
"标签分析(dataType:0,1,2 依次代表:元数据,模型,标准)"
,
notes
=
"标签分析(dataType:0,1,2 依次代表:元数据,模型,标准)"
)
@PostMapping
(
value
=
"/tagAnalysis"
)
public
Map
<
String
,
Object
>
tagAnalysis
(
@RequestParam
String
dataType
)
throws
Exception
{
return
tagService
.
tagAnalysis
(
dataType
);
}
//---------------以下为导入系统的时候用到------------------
...
...
src/main/java/com/keymobile/tagmanager/remote/RepoServiceClient.java
View file @
7baf72d6
...
...
@@ -4,6 +4,7 @@ import java.util.List;
import
java.util.Map
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
...
...
@@ -24,4 +25,8 @@ public interface RepoServiceClient {
@PostMapping
(
value
=
"/rest/tag/addTag"
)
public
int
addTag
(
@RequestParam
List
<
String
>
metadataIds
,
@RequestParam
String
idPath
,
@RequestParam
String
tagType
,
@RequestParam
String
dimensionType
);
@GetMapping
(
value
=
"/rest/tag/aggregate"
)
public
List
<
Map
<
String
,
Object
>>
aggregate
(
@RequestParam
(
required
=
false
)
String
modelPath
,
@RequestParam
String
attributeName
);
}
src/main/java/com/keymobile/tagmanager/service/TagService.java
View file @
7baf72d6
package
com
.
keymobile
.
tagmanager
.
service
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -29,6 +31,7 @@ import com.keymobile.tagmanager.model.Tag;
import
com.keymobile.tagmanager.model.authService.Org
;
import
com.keymobile.tagmanager.persistence.TagRepository
;
import
com.keymobile.tagmanager.remote.AuthServiceClient
;
import
com.keymobile.tagmanager.remote.RepoServiceClient
;
import
com.keymobile.tagmanager.util.Constants
;
import
com.keymobile.tagmanager.util.JsonTreeHelper
;
import
com.keymobile.tagmanager.util.JsonTreeHelper.JsonNode
;
...
...
@@ -42,6 +45,8 @@ public class TagService {
private
TagRepository
tagRepository
;
@Autowired
private
AuthServiceClient
authService
;
@Autowired
private
RepoServiceClient
repoService
;
private
Logger
logger
=
LoggerFactory
.
getLogger
(
TagService
.
class
);
...
...
@@ -325,6 +330,95 @@ public class TagService {
tagRepository
.
saveAll
(
tags
);
}
//标签分析
public
Map
<
String
,
Object
>
tagAnalysis
(
String
dataType
)
throws
Exception
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
String
modelPath
=
null
;
//定义存储系统和个人标签分析的list<Map>
List
<
Map
<
String
,
Object
>>
sysTagList
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
perTagList
=
new
ArrayList
<>();
//根据类型获取模型路径
switch
(
dataType
)
{
case
"0"
:
break
;
case
"1"
:
modelPath
=
"Catalog,DataModelCatalog,DataModel"
;
break
;
case
"2"
:
modelPath
=
"Catalog,StandardCatalog,DataStandard"
;
break
;
default
:
break
;
}
//获取系统和维度标签统计
List
<
Map
<
String
,
Object
>>
tags
=
repoService
.
aggregate
(
modelPath
,
"tagList"
);
//获取个人标签统计
List
<
Map
<
String
,
Object
>>
personalTags
=
repoService
.
aggregate
(
modelPath
,
"personalTagList"
);
//分类系统和维度
if
(!
tags
.
isEmpty
())
{
for
(
Map
<
String
,
Object
>
map
:
tags
)
{
Map
<
String
,
Object
>
tagMap
=
new
HashMap
<>();
//获取标签id
String
tagId
=
map
.
get
(
"_id"
).
toString
();
//根据标签id获取标签
Tag
tag
=
this
.
getTagById
(
tagId
);
if
(
tag
!=
null
)
{
tagMap
.
put
(
"total"
,
map
.
get
(
"total"
));
tagMap
.
put
(
"name"
,
tag
.
getName
());
tagMap
.
put
(
"EnName"
,
tag
.
getNameEn
());
//如果是系统标签
if
(
"0"
.
equals
(
tag
.
getTagType
()))
{
sysTagList
.
add
(
tagMap
);
}
else
{
perTagList
.
add
(
tagMap
);
}
}
}
}
//分类个人标签
if
(!
personalTags
.
isEmpty
())
{
for
(
Map
<
String
,
Object
>
map
:
personalTags
)
{
Map
<
String
,
Object
>
tagMap
=
new
HashMap
<>();
//获取标签id
String
tagId
=
map
.
get
(
"_id"
).
toString
();
//根据标签id获取标签
Tag
tag
=
this
.
getTagById
(
tagId
);
if
(
tag
!=
null
)
{
tagMap
.
put
(
"total"
,
map
.
get
(
"total"
));
tagMap
.
put
(
"name"
,
tag
.
getName
());
tagMap
.
put
(
"EnName"
,
tag
.
getNameEn
());
perTagList
.
add
(
tagMap
);
}
}
}
//排序系统标签(降序)
if
(!
sysTagList
.
isEmpty
())
{
Collections
.
sort
(
sysTagList
,
new
Comparator
<
Map
<
String
,
Object
>>()
{
@Override
public
int
compare
(
Map
<
String
,
Object
>
o1
,
Map
<
String
,
Object
>
o2
)
{
String
total1
=
o1
.
get
(
"total"
).
toString
();
String
total2
=
o2
.
get
(
"total"
).
toString
();
return
total1
.
compareTo
(
total2
);
}
});
}
//排序个人标签(降序)
if
(!
perTagList
.
isEmpty
())
{
Collections
.
sort
(
perTagList
,
new
Comparator
<
Map
<
String
,
Object
>>()
{
@Override
public
int
compare
(
Map
<
String
,
Object
>
o1
,
Map
<
String
,
Object
>
o2
)
{
String
total1
=
o1
.
get
(
"total"
).
toString
();
String
total2
=
o2
.
get
(
"total"
).
toString
();
return
total1
.
compareTo
(
total2
);
}
});
}
//装填结果
result
.
put
(
"sysTag"
,
sysTagList
);
result
.
put
(
"personalTag"
,
perTagList
);
return
result
;
}
//如果标签存在冲突,修改当前标签名字和路径
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment