Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
段启岩
beyond-clouds
Commits
4ee89f4c
Commit
4ee89f4c
authored
Feb 07, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
博客修改时可以删除标签和话题了
parent
563b384c
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
63 additions
and
38 deletions
+63
-38
src/main/java/cn/meteor/beyondclouds/modules/blog/form/BlogForm.java
+1
-2
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+61
-33
src/main/java/cn/meteor/beyondclouds/modules/question/form/QuestionForm.java
+1
-3
No files found.
src/main/java/cn/meteor/beyondclouds/modules/blog/form/BlogForm.java
View file @
4ee89f4c
...
...
@@ -39,11 +39,10 @@ public class BlogForm {
@NullOrNotBlank
(
message
=
"请传入有效的博客内容"
,
groups
=
UpdateGroup
.
class
)
private
String
content
;
@Size
(
min
=
1
,
message
=
"请至少传一个topicId"
)
@ElementNotBlank
(
message
=
"topicId内容不能为空"
)
private
List
<
String
>
topicIds
;
@Size
(
m
in
=
1
,
message
=
"请至少传一个tagId
"
)
@Size
(
m
ax
=
5
,
message
=
"标签个数不能超过5个
"
)
@ElementNotBlank
(
message
=
"tagId内容不能为空"
)
private
List
<
String
>
tagIds
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
4ee89f4c
...
...
@@ -351,32 +351,30 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
* @param tagIds
* @param topicIds
* @param blogId
* @param
deleteOld
* @param
update
*/
private
void
updateTopicAndTagReference
(
List
<
String
>
topicIds
,
List
<
String
>
tagIds
,
String
blogId
,
boolean
deleteOld
)
{
private
void
updateTopicAndTagReference
(
List
<
String
>
topicIds
,
List
<
String
>
tagIds
,
String
blogId
,
boolean
update
)
{
// 如果用户传的topicIds为[]并且现在在执行修改博客的操作,就删除该博客以前引用的所有话题
if
(
CollectionUtils
.
isEmpty
(
topicIds
)
&&
update
)
{
deleteOldTopicReferences
(
blogId
);
}
// 如果用户传的tagIds为[]并且现在在执行修改博客的操作,就删除该博客以前引用的所有标签
if
(
CollectionUtils
.
isEmpty
(
tagIds
)
&&
update
)
{
deleteOldTagReferences
(
blogId
);
}
// 1.处理话题引用
if
(!
CollectionUtils
.
isEmpty
(
topicIds
))
{
// 获取要引用的话题,不正确的话题ID会被自动过滤
List
<
Topic
>
topicList
=
topicService
.
listByIds
(
topicIds
);
List
<
String
>
existsTopicIds
=
topicList
.
stream
().
map
(
Topic:
:
getTopicId
).
collect
(
Collectors
.
toList
());
List
<
String
>
existsTopicIds
=
topicService
.
listByIds
(
topicIds
).
stream
().
map
(
Topic:
:
getTopicId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
existsTopicIds
))
{
if
(
deleteOld
)
{
// 删除旧话题引用并更新话题的引用量
QueryWrapper
<
TopicReference
>
topicReferenceQueryWrapper
=
new
QueryWrapper
<>();
topicReferenceQueryWrapper
.
eq
(
"referencer_id"
,
blogId
);
// 减少对应话题的引用数量
List
<
String
>
referencedTopicIds
=
topicReferenceService
.
list
(
topicReferenceQueryWrapper
).
stream
()
.
map
(
TopicReference:
:
getTopicId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
referencedTopicIds
))
{
// 减少话题引用测试
topicService
.
decreaseReferenceCountBatch
(
referencedTopicIds
,
1
);
}
// 删除话题引用
topicReferenceService
.
remove
(
topicReferenceQueryWrapper
);
// 如果现在执行的是修改操作,则删除旧话题引用并更新话题的引用量
if
(
update
)
{
deleteOldTopicReferences
(
blogId
);
}
List
<
TopicReference
>
topicReferenceList
=
new
ArrayList
<>();
for
(
String
topicId
:
existsTopicIds
)
{
TopicReference
topicReference
=
new
TopicReference
();
...
...
@@ -397,20 +395,9 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
List
<
String
>
existsTagIds
=
tagService
.
listByIds
(
tagIds
).
stream
().
map
(
Tag:
:
getTagId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
existsTagIds
))
{
if
(
deleteOld
)
{
// 删除旧标签引用并更新标签的引用量
QueryWrapper
<
BlogTag
>
blogTagQueryWrapper
=
new
QueryWrapper
<>();
blogTagQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
// 减少对应话题的引用数量
List
<
String
>
referencedTagIds
=
blogTagService
.
list
(
blogTagQueryWrapper
).
stream
()
.
map
(
BlogTag:
:
getTagId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
referencedTagIds
))
{
// 减少标签引用次数
tagService
.
decreaseReferenceCountBatch
(
referencedTagIds
,
1
);
}
// 删除标签引用
blogTagService
.
remove
(
blogTagQueryWrapper
);
// 如果现在执行的是修改操作,则删除旧话题引用并更新标签的引用
if
(
update
)
{
deleteOldTagReferences
(
blogId
);
}
List
<
BlogTag
>
blogTagList
=
new
ArrayList
<>();
...
...
@@ -428,6 +415,47 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
}
/**
* 删除博客博客的旧话题引用
* @param blogId
*/
private
void
deleteOldTopicReferences
(
String
blogId
)
{
// 删除旧话题引用
QueryWrapper
<
TopicReference
>
topicReferenceQueryWrapper
=
new
QueryWrapper
<>();
topicReferenceQueryWrapper
.
eq
(
"referencer_id"
,
blogId
);
// 减少对应话题的引用数量
List
<
String
>
referencedTopicIds
=
topicReferenceService
.
list
(
topicReferenceQueryWrapper
).
stream
()
.
map
(
TopicReference:
:
getTopicId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
referencedTopicIds
))
{
// 减少话题引用
topicService
.
decreaseReferenceCountBatch
(
referencedTopicIds
,
1
);
}
// 删除话题引用
topicReferenceService
.
remove
(
topicReferenceQueryWrapper
);
}
/**
* 删除博客的旧标签引用
* @param blogId
*/
private
void
deleteOldTagReferences
(
String
blogId
)
{
// 删除旧标签引用
QueryWrapper
<
BlogTag
>
blogTagQueryWrapper
=
new
QueryWrapper
<>();
blogTagQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
// 减少对应话题的引用数量
List
<
String
>
referencedTagIds
=
blogTagService
.
list
(
blogTagQueryWrapper
).
stream
()
.
map
(
BlogTag:
:
getTagId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
referencedTagIds
))
{
// 减少标签引用次数
tagService
.
decreaseReferenceCountBatch
(
referencedTagIds
,
1
);
}
// 删除标签引用
blogTagService
.
remove
(
blogTagQueryWrapper
);
}
@Override
public
IPage
<
Blog
>
getHotBlogPage
(
Integer
pageNumber
,
Integer
pageSize
)
{
QueryWrapper
blogQueryWrapper
=
new
QueryWrapper
();
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/form/QuestionForm.java
View file @
4ee89f4c
...
...
@@ -40,13 +40,11 @@ public class QuestionForm {
private
String
questionAbstract
;
@ApiModelProperty
(
"标签"
)
@Size
(
min
=
1
,
message
=
"请至少传一个tagId"
)
@Size
(
max
=
5
,
message
=
"问题标签个数不能超过5个"
)
@Size
(
max
=
5
,
message
=
"标签个数不能超过5个"
)
@ElementNotBlank
(
message
=
"tag内容不能为空"
)
private
List
<
String
>
tagIds
;
@ApiModelProperty
(
"话题ID"
)
@Size
(
min
=
1
,
message
=
"请至少传一个topicId"
)
@ElementNotBlank
(
message
=
"topic内容不能为空"
)
private
List
<
String
>
topicIds
;
...
...
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