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
dc3f9bf6
Commit
dc3f9bf6
authored
Dec 12, 2019
by
lanmw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add dept to fliter personalTag
parent
a431a17e
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
67 additions
and
45 deletions
+67
-45
TagCtrl.java
src/main/java/com/keymobile/tagmanager/api/TagCtrl.java
+11
-5
RestExceptionHandler.java
.../keymobile/tagmanager/exception/RestExceptionHandler.java
+6
-0
TagDuplicateException.java
...keymobile/tagmanager/exception/TagDuplicateException.java
+1
-1
TagNotExistException.java
.../keymobile/tagmanager/exception/TagNotExistException.java
+1
-1
Tag.java
src/main/java/com/keymobile/tagmanager/model/Tag.java
+9
-0
TagService.java
...ain/java/com/keymobile/tagmanager/service/TagService.java
+39
-38
No files found.
src/main/java/com/keymobile/tagmanager/api/TagCtrl.java
View file @
dc3f9bf6
...
...
@@ -35,6 +35,7 @@ public class TagCtrl {
@RequestBody
Tag
tag
)
throws
Exception
{
String
userName
=
UserInfoUtils
.
getUserName
();
tag
.
setCreator
(
userName
);
tag
.
setDept
(
userName
);
//这里暂时用userName代替,后面从session取出
return
tagService
.
addOrUpdateTag
(
parentId
,
tag
,
userName
);
}
...
...
@@ -63,21 +64,24 @@ public class TagCtrl {
@ApiOperation
(
value
=
"查询维度标签树"
,
notes
=
"查询维度标签树"
)
@GetMapping
(
value
=
"/queryDimensionTagAsTree"
)
public
JsonNode
[]
queryDimensionTagAsTree
(
@RequestParam
(
value
=
"parentId"
,
required
=
false
)
String
parentId
)
throws
TagNotExistException
{
return
tagService
.
queryDimensionTagAsTree
(
parentId
);
String
dept
=
UserInfoUtils
.
getUserName
();
return
tagService
.
queryDimensionTagAsTree
(
dept
,
parentId
);
}
@ApiOperation
(
value
=
"查询个人标签树"
,
notes
=
"查询个人标签树"
)
@GetMapping
(
value
=
"/queryPersonalTagAsTree"
)
public
JsonNode
[]
queryPersonalTagAsTree
(
@RequestParam
(
value
=
"parentId"
,
required
=
false
)
String
parentId
)
throws
TagNotExistException
{
String
userName
=
UserInfoUtils
.
getUserName
();
return
tagService
.
queryPersonalTagAsTree
(
parentId
,
userName
);
String
dept
=
userName
;
return
tagService
.
queryPersonalTagAsTree
(
parentId
,
userName
,
dept
);
}
@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
);
String
dept
=
userName
;
return
tagService
.
queryPersonalTagExcludeOpenTypeAsTree
(
parentId
,
userName
,
dept
);
}
@ApiOperation
(
value
=
"搜索系統标签"
,
notes
=
"搜索系統标签"
)
...
...
@@ -105,7 +109,8 @@ public class TagCtrl {
@RequestParam
(
"pageNo"
)
Integer
pageNo
,
@RequestParam
(
"pageSize"
)
Integer
pageSize
)
{
String
userName
=
UserInfoUtils
.
getUserName
();
return
tagService
.
searchPersonalDimensionTagByPage
(
userName
,
keyword
,
path
,
domain
,
new
Page
(
pageSize
,
pageNo
));
String
dept
=
userName
;
return
tagService
.
searchPersonalDimensionTagByPage
(
userName
,
dept
,
keyword
,
path
,
domain
,
new
Page
(
pageSize
,
pageNo
));
}
@ApiOperation
(
value
=
"搜索个人标签"
,
notes
=
"搜索个人标签"
)
...
...
@@ -116,7 +121,8 @@ public class TagCtrl {
@RequestParam
(
"pageNo"
)
Integer
pageNo
,
@RequestParam
(
"pageSize"
)
Integer
pageSize
)
{
String
userName
=
UserInfoUtils
.
getUserName
();
return
tagService
.
searchPersonalTagByPage
(
userName
,
keyword
,
path
,
domain
,
new
Page
(
pageSize
,
pageNo
));
String
dept
=
userName
;
return
tagService
.
searchPersonalTagByPage
(
userName
,
dept
,
keyword
,
path
,
domain
,
new
Page
(
pageSize
,
pageNo
));
}
@ApiOperation
(
value
=
"分享标签"
,
notes
=
"分享标签"
)
...
...
src/main/java/com/keymobile/tagmanager/exception/RestExceptionHandler.java
View file @
dc3f9bf6
...
...
@@ -24,5 +24,11 @@ public class RestExceptionHandler extends ResponseEntityExceptionHandler {
return
new
ResponseEntity
<>(
apiError
,
apiError
.
getStatus
());
}
@ExceptionHandler
(
TagException
.
class
)
protected
ResponseEntity
<
Object
>
handlDirectoryException
(
Exception
ex
,
WebRequest
request
){
logger
.
error
(
ex
.
getMessage
(),
ex
);
return
buildResponseEntity
(
new
ApiError
(
INTERNAL_SERVER_ERROR
,
ex
.
getMessage
(),
ex
,
ex
.
getMessage
()));
}
}
src/main/java/com/keymobile/tagmanager/exception/TagDuplicateException.java
View file @
dc3f9bf6
package
com
.
keymobile
.
tagmanager
.
exception
;
public
class
TagDuplicateException
extends
Exception
{
public
class
TagDuplicateException
extends
Tag
Exception
{
/**
*
...
...
src/main/java/com/keymobile/tagmanager/exception/TagNotExistException.java
View file @
dc3f9bf6
package
com
.
keymobile
.
tagmanager
.
exception
;
public
class
TagNotExistException
extends
Exception
{
public
class
TagNotExistException
extends
Tag
Exception
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
src/main/java/com/keymobile/tagmanager/model/Tag.java
View file @
dc3f9bf6
...
...
@@ -49,6 +49,7 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{
private
String
isOpen
=
Constants
.
TAG_CLOSE_STATUS
;
//0 不公开, 1, 公开
private
Integer
domain
;
private
String
dimensionType
=
Constants
.
TAG_DIMENSION_FALSE
;
//0 非维度标签, 1 维度标签
private
String
dept
;
// 部门
private
String
importId
;
//记录导入的Id,后面撤销用到
public
Tag
()
{}
...
...
@@ -202,6 +203,14 @@ public class Tag implements Serializable, IExcelModel, IExcelDataModel{
public
String
getIdPath
()
{
return
idPath
;
}
public
void
setDept
(
String
dept
)
{
this
.
dept
=
dept
;
}
public
String
getDept
()
{
return
dept
;
}
@Override
public
String
toString
()
{
...
...
src/main/java/com/keymobile/tagmanager/service/TagService.java
View file @
dc3f9bf6
...
...
@@ -74,6 +74,7 @@ public class TagService {
private
void
changeNameToAvoidConflict
(
Tag
tag
,
String
userName
)
{
Tag
t
=
mongoOperations
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"path"
).
is
(
tag
.
getPath
())
.
and
(
"dept"
).
is
(
tag
.
getDept
())
.
and
(
"creator"
).
ne
(
userName
)),
Tag
.
class
);
if
(
t
!=
null
)
{
String
changeName
=
String
.
format
(
"%s(%s)"
,
t
.
getName
(),
userName
);
...
...
@@ -85,7 +86,7 @@ public class TagService {
private
Criteria
createRelationNamepathCriteria
(
String
userName
,
Tag
origin
)
{
if
(
Constants
.
TAG_DIMENSION_TRUE
.
equals
(
origin
.
getDimensionType
()))
{
return
Criteria
.
where
(
"path"
).
regex
(
"^"
+
origin
.
getPath
()
+
Constants
.
TAG_PATH_SEPARATOR
);
return
Criteria
.
where
(
"path"
).
regex
(
"^"
+
origin
.
getPath
()
+
Constants
.
TAG_PATH_SEPARATOR
)
.
and
(
"dept"
).
is
(
origin
.
getDept
())
;
}
return
Criteria
.
where
(
"path"
).
regex
(
"^"
+
origin
.
getPath
()
+
Constants
.
TAG_PATH_SEPARATOR
)
.
and
(
"creator"
).
is
(
userName
);
...
...
@@ -107,14 +108,14 @@ public class TagService {
Tag
t
=
mongoOperations
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"path"
).
is
(
tag
.
getPath
())
.
and
(
"creator"
).
is
(
userName
)),
Tag
.
class
);
if
(
t
!=
null
&&
!
t
.
getId
().
equals
(
tag
.
getId
()))
throw
new
TagDuplicateException
(
"
tag ["
+
tag
.
getName
()
+
"] is already exist in target!, userName is ["
+
userName
+
"]
"
);
throw
new
TagDuplicateException
(
"
标签 ["
+
tag
.
getName
()
+
"] 已经存在!
"
);
}
public
JsonNode
[]
queryPersonalTagAsTree
(
String
parentId
,
String
userName
)
throws
TagNotExistException
{
public
JsonNode
[]
queryPersonalTagAsTree
(
String
parentId
,
String
userName
,
String
dept
)
throws
TagNotExistException
{
List
<
Tag
>
tags
=
new
ArrayList
<>();
if
(
StringUtils
.
isEmpty
(
parentId
))
{
tags
=
mongoOperations
.
find
(
createPersonalTagQuery
(
userName
),
Tag
.
class
);
tags
=
mongoOperations
.
find
(
createPersonalTagQuery
(
userName
,
dept
),
Tag
.
class
);
}
else
{
Tag
parentTag
=
getTagById
(
parentId
);
tags
=
getPersonSubTag
(
parentTag
,
userName
);
...
...
@@ -132,32 +133,41 @@ public class TagService {
return
new
JsonNode
[]
{};
}
private
Query
createPersonalTagQuery
(
String
userName
,
Criteria
...
serachCriterias
)
{
private
Query
createPersonalTagQuery
(
String
userName
,
String
dept
,
Criteria
...
serachCriterias
)
{
return
Query
.
query
(
createPersonalTagCriteria
(
userName
))
createPersonalTagCriteria
(
userName
,
dept
,
null
))
.
with
(
Sort
.
by
(
getDefaultTagOrders
()));
}
private
Criteria
createPersonalTagCriteria
(
String
userName
)
{
return
Criteria
.
where
(
"tagType"
).
is
(
Constants
.
TAG_PERSONAL_TYPE
)
.
orOperator
(
private
Criteria
createPersonalTagCriteria
(
String
userName
,
String
dept
,
String
path
)
{
Criteria
criteria
=
Criteria
.
where
(
"tagType"
).
is
(
Constants
.
TAG_PERSONAL_TYPE
)
.
and
(
"dept"
).
is
(
dept
);
if
(
StringUtils
.
isNotBlank
(
path
))
{
criteria
=
criteria
.
and
(
"path"
).
regex
(
"^"
+
path
);;
}
return
criteria
.
orOperator
(
Criteria
.
where
(
"dimensionType"
).
is
(
Constants
.
TAG_DIMENSION_TRUE
),
Criteria
.
where
(
"isOpen"
).
is
(
Constants
.
TAG_OPEN_STATUS
),
Criteria
.
where
(
"creator"
).
is
(
userName
));
}
private
Criteria
createSystemTagCriteria
()
{
return
Criteria
.
where
(
"tagType"
).
is
(
Constants
.
TAG_SYSTEM_TYPE
);
private
Criteria
createSystemTagCriteria
(
String
path
)
{
Criteria
criteria
=
Criteria
.
where
(
"tagType"
).
is
(
Constants
.
TAG_SYSTEM_TYPE
);
if
(
StringUtils
.
isNotBlank
(
path
))
{
return
criteria
.
and
(
"path"
).
regex
(
"^"
+
path
);
}
return
criteria
;
}
private
Criteria
createPersonalDimensionTagCriteria
(
String
userName
)
{
private
Criteria
createPersonalDimensionTagCriteria
(
String
userName
,
String
dept
)
{
return
Criteria
.
where
(
"tagType"
).
is
(
Constants
.
TAG_PERSONAL_TYPE
)
.
and
(
"dimensionType"
).
is
(
Constants
.
TAG_DIMENSION_TRUE
);
.
and
(
"d
ept"
).
is
(
dept
).
and
(
"d
imensionType"
).
is
(
Constants
.
TAG_DIMENSION_TRUE
);
}
private
Query
createPersonalExcludeOpenTypeTagQuery
(
String
userName
)
{
private
Query
createPersonalExcludeOpenTypeTagQuery
(
String
userName
,
String
dept
)
{
return
Query
.
query
(
Criteria
.
where
(
"tagType"
).
is
(
Constants
.
TAG_PERSONAL_TYPE
)
.
and
(
"dept"
).
is
(
dept
)
.
orOperator
(
Criteria
.
where
(
"dimensionType"
).
is
(
Constants
.
TAG_DIMENSION_TRUE
),
Criteria
.
where
(
"creator"
).
is
(
userName
)))
...
...
@@ -184,14 +194,11 @@ public class TagService {
}
public
Page
searchPersonalTagByPage
(
String
userName
,
String
keyword
,
String
path
,
Integer
domain
,
Page
page
)
{
Criteria
andCriterias
=
createPersonalTagCriteria
(
userName
);
public
Page
searchPersonalTagByPage
(
String
userName
,
String
dept
,
String
keyword
,
String
path
,
Integer
domain
,
Page
page
)
{
Criteria
andCriterias
=
createPersonalTagCriteria
(
userName
,
dept
,
path
);
if
(
StringUtils
.
isNotBlank
(
keyword
)
&&
!
"*"
.
equals
(
keyword
))
{
andCriterias
.
andOperator
(
createKeywordRegexQuery
(
Arrays
.
asList
(
"name"
,
"nameEn"
,
"desc"
),
keyword
));
}
if
(
StringUtils
.
isNotBlank
(
path
))
{
andCriterias
.
andOperator
(
createPathRegexQuery
(
path
));
}
Query
q
=
new
Query
(
andCriterias
);
q
.
skip
(
page
.
getOffset
());
q
.
limit
(
page
.
getPageSize
());
...
...
@@ -238,13 +245,10 @@ public class TagService {
}
public
Page
searchSystemTagByPage
(
String
userName
,
String
keyword
,
String
path
,
Integer
domain
,
Page
page
)
{
Criteria
andCriterias
=
createSystemTagCriteria
();
Criteria
andCriterias
=
createSystemTagCriteria
(
path
);
if
(
StringUtils
.
isNotBlank
(
keyword
)
&&
!
"*"
.
equals
(
keyword
))
{
andCriterias
.
andOperator
(
createKeywordRegexQuery
(
Arrays
.
asList
(
"name"
,
"nameEn"
,
"desc"
),
keyword
));
}
if
(
StringUtils
.
isNotBlank
(
path
))
{
andCriterias
.
andOperator
(
createPathRegexQuery
(
path
));
}
Query
q
=
createPageQuery
(
page
,
andCriterias
);
List
<
Tag
>
tags
=
mongoOperations
.
find
(
q
,
Tag
.
class
);
long
count
=
mongoOperations
.
count
(
q
,
Tag
.
class
);
...
...
@@ -307,10 +311,10 @@ public class TagService {
tagRepository
.
saveAll
(
tags
);
}
public
JsonNode
[]
queryDimensionTagAsTree
(
String
parentId
)
throws
TagNotExistException
{
public
JsonNode
[]
queryDimensionTagAsTree
(
String
dept
,
String
parentId
)
throws
TagNotExistException
{
List
<
Tag
>
tags
=
new
ArrayList
<>();
if
(
StringUtils
.
isEmpty
(
parentId
))
{
tags
=
mongoOperations
.
find
(
createDimensionTagQuery
(),
Tag
.
class
);
tags
=
mongoOperations
.
find
(
createDimensionTagQuery
(
dept
),
Tag
.
class
);
}
else
{
Tag
parentTag
=
getTagById
(
parentId
);
tags
=
getDimensionSubTag
(
parentTag
);
...
...
@@ -331,22 +335,24 @@ public class TagService {
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
))
.
and
(
"dimensionType"
).
is
(
Constants
.
TAG_DIMENSION_TRUE
)
.
and
(
"dept"
).
is
(
parentTag
.
getDept
()))
.
with
(
Sort
.
by
(
getDefaultTagOrders
())),
Tag
.
class
);
dirs
.
add
(
parentTag
);
return
dirs
;
}
private
Query
createDimensionTagQuery
()
{
private
Query
createDimensionTagQuery
(
String
dept
)
{
return
Query
.
query
(
Criteria
.
where
(
"dimensionType"
).
is
(
Constants
.
TAG_DIMENSION_TRUE
)
.
and
(
"tagType"
).
is
(
Constants
.
TAG_PERSONAL_TYPE
))
.
and
(
"tagType"
).
is
(
Constants
.
TAG_PERSONAL_TYPE
)
.
and
(
"dept"
).
is
(
dept
))
.
with
(
Sort
.
by
(
getDefaultTagOrders
()));
}
public
JsonNode
[]
queryPersonalTagExcludeOpenTypeAsTree
(
String
parentId
,
String
userName
)
throws
TagNotExistException
{
public
JsonNode
[]
queryPersonalTagExcludeOpenTypeAsTree
(
String
parentId
,
String
userName
,
String
dept
)
throws
TagNotExistException
{
List
<
Tag
>
tags
=
new
ArrayList
<>();
if
(
StringUtils
.
isEmpty
(
parentId
))
{
tags
=
mongoOperations
.
find
(
createPersonalExcludeOpenTypeTagQuery
(
userName
),
Tag
.
class
);
tags
=
mongoOperations
.
find
(
createPersonalExcludeOpenTypeTagQuery
(
userName
,
dept
),
Tag
.
class
);
}
else
{
Tag
parentTag
=
getTagById
(
parentId
);
tags
=
getPersonSubTag
(
parentTag
,
userName
);
...
...
@@ -365,18 +371,13 @@ public class TagService {
}
public
Page
searchPersonalDimensionTagByPage
(
String
userName
,
String
keyword
,
String
path
,
Integer
domain
,
Page
page
)
{
Criteria
andCriterias
=
createPersonalDimensionTagCriteria
(
userName
);
public
Page
searchPersonalDimensionTagByPage
(
String
userName
,
String
dept
,
String
keyword
,
String
path
,
Integer
domain
,
Page
page
)
{
Criteria
andCriterias
=
createPersonalDimensionTagCriteria
(
userName
,
dept
);
if
(
StringUtils
.
isNotBlank
(
keyword
)
&&
!
"*"
.
equals
(
keyword
))
{
andCriterias
.
andOperator
(
createKeywordRegexQuery
(
Arrays
.
asList
(
"name"
,
"nameEn"
,
"desc"
),
keyword
));
}
if
(
StringUtils
.
isNotBlank
(
path
))
{
andCriterias
.
andOperator
(
createPathRegexQuery
(
path
));
}
Query
q
=
createPageQuery
(
page
,
andCriterias
);
List
<
Tag
>
tags
=
mongoOperations
.
find
(
q
,
Tag
.
class
);
List
<
Tag
>
tags
=
mongoOperations
.
find
(
q
,
Tag
.
class
);
long
count
=
mongoOperations
.
count
(
q
,
Tag
.
class
);
page
.
setData
(
decoratorToExtTag
(
tags
,
userName
));
page
.
setTotal
(
count
);
...
...
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