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
ebf70bd5
Commit
ebf70bd5
authored
Feb 08, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化根据tatId查询博客列表
parent
5d8a8249
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
12 deletions
+56
-12
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
+1
-2
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/BlogMapper.java
+9
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/xml/BlogMapper.xml
+20
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
+1
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+25
-9
No files found.
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
View file @
ebf70bd5
...
...
@@ -19,7 +19,6 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -170,7 +169,7 @@ public class BlogApi {
return
Response
.
fieldError
(
result
.
getFieldError
());
}
IPage
<
Blog
>
blogPage
=
blogService
.
getBlog
s
BytagId
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
tagId
);
IPage
<
Blog
>
blogPage
=
blogService
.
getBlog
Page
BytagId
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
tagId
);
PageVO
<
Blog
>
blogPageVO
=
new
PageVO
<>(
blogPage
);
return
Response
.
success
(
blogPageVO
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/BlogMapper.java
View file @
ebf70bd5
...
...
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Collection
;
/**
* <p>
* 博客表 Mapper 接口
...
...
@@ -24,4 +26,11 @@ public interface BlogMapper extends BaseMapper<Blog> {
* @return
*/
IPage
<
Blog
>
selectPageWithTags
(
IPage
<
Blog
>
page
,
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<?>
queryWrapper
);
/**
* 根据查询条件分页查询博客获取标签
* @param blogIds
* @return
*/
IPage
<
Blog
>
listByIdsWithTags
(
Collection
<
String
>
blogIds
);
}
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/xml/BlogMapper.xml
View file @
ebf70bd5
...
...
@@ -44,4 +44,24 @@
${ew.customSqlSegment}
</if>
</select>
<select
id=
"listByIdsWithTags"
resultMap=
"blogWithTagsResultMap"
>
select
b.*,
t.tag_id,
t.tag_name,
t.tag_type,
t.create_time,
t.update_time
from blog b
left join blog_tag bt
on b.blog_id = bt.blog_id
left join tag t
on t.tag_id = bt.tag_id
where blog_id in
<foreach
collection=
"blogIds"
item=
"blogId"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{blogId}
</foreach>
</select>
</mapper>
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
View file @
ebf70bd5
...
...
@@ -95,6 +95,6 @@ public interface IBlogService extends IService<Blog> {
* @param tagId
* @return
*/
IPage
<
Blog
>
getBlog
s
BytagId
(
Integer
pageNumber
,
Integer
pageSize
,
String
tagId
);
IPage
<
Blog
>
getBlog
Page
BytagId
(
Integer
pageNumber
,
Integer
pageSize
,
String
tagId
);
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
ebf70bd5
...
...
@@ -473,15 +473,31 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
@Override
public
IPage
<
Blog
>
getBlogsBytagId
(
Integer
pageNumber
,
Integer
pageSize
,
String
tagId
)
{
IPage
<
Blog
>
blogPage
=
new
Page
<>(
pageNumber
,
pageSize
);
//获取当tagId下的所有blogId
List
<
String
>
blogIds
=
blogTagService
.
getBlogIdByTagId
(
pageNumber
,
pageSize
,
tagId
)
.
getRecords
().
stream
().
map
(
BlogTag:
:
getBlogId
).
collect
(
Collectors
.
toList
());
public
IPage
<
Blog
>
getBlogPageBytagId
(
Integer
pageNumber
,
Integer
pageSize
,
String
tagId
)
{
// 查询blogTagPage
IPage
<
BlogTag
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
QueryWrapper
<
BlogTag
>
blogTagQueryWrapper
=
new
QueryWrapper
<>();
blogTagQueryWrapper
.
eq
(
"tag_id"
,
tagId
);
IPage
<
BlogTag
>
blogTagPage
=
blogTagService
.
page
(
page
,
blogTagQueryWrapper
);
//批量查找博客
QueryWrapper
<
Blog
>
blogQueryWrapper
=
new
QueryWrapper
<>();
blogQueryWrapper
.
in
(
"b.blog_id"
,
blogIds
);
return
blogMapper
.
selectPageWithTags
(
blogPage
,
blogQueryWrapper
);
// 根据blogTagPage构造博客分页
List
<
String
>
blogIds
=
blogTagPage
.
getRecords
().
stream
()
.
map
(
BlogTag:
:
getBlogId
)
.
collect
(
Collectors
.
toList
());
IPage
<
Blog
>
blogPage
=
new
Page
<>();
blogPage
.
setTotal
(
blogTagPage
.
getTotal
());
blogPage
.
setCurrent
(
blogTagPage
.
getCurrent
());
blogPage
.
setPages
(
blogTagPage
.
getPages
());
blogPage
.
setSize
(
blogTagPage
.
getSize
());
if
(!
CollectionUtils
.
isEmpty
(
blogIds
))
{
blogPage
.
setRecords
(
List
.
of
());
}
else
{
//批量查找博客
return
blogMapper
.
listByIdsWithTags
(
blogIds
);
}
return
blogPage
;
}
}
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