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
a7a32246
Commit
a7a32246
authored
Feb 04, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1博客详情添加标签、类别、话题的详细信息
2.修复查看权限为0时拥有者也无法查看的问题
parent
8ed9f595
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
56 additions
and
33 deletions
+56
-33
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
+2
-2
src/main/java/cn/meteor/beyondclouds/modules/blog/bean/BlogDetail.java
+0
-3
src/main/java/cn/meteor/beyondclouds/modules/blog/entity/Blog.java
+6
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogErrorCode.java
+2
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
+3
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+41
-26
src/main/java/cn/meteor/beyondclouds/modules/tag/entity/Tag.java
+2
-0
No files found.
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
View file @
a7a32246
...
@@ -79,9 +79,9 @@ public class BlogApi {
...
@@ -79,9 +79,9 @@ public class BlogApi {
@Anonymous
@Anonymous
@ApiOperation
(
"博客详情"
)
@ApiOperation
(
"博客详情"
)
@GetMapping
(
"/blog/{blogId}"
)
@GetMapping
(
"/blog/{blogId}"
)
public
Response
<
BlogDetail
>
getBlog
(
@PathVariable
(
"blogId"
)
String
blogId
)
{
public
Response
<
BlogDetail
>
getBlog
(
@PathVariable
(
"blogId"
)
String
blogId
,
@CurrentSubject
Subject
subject
)
{
try
{
try
{
BlogDetail
blogDetail
=
blogService
.
getBlog
(
blogId
);
BlogDetail
blogDetail
=
blogService
.
getBlog
(
blogId
,
subject
);
return
Response
.
success
(
blogDetail
);
return
Response
.
success
(
blogDetail
);
}
catch
(
BlogServiceException
e
)
{
}
catch
(
BlogServiceException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/bean/BlogDetail.java
View file @
a7a32246
...
@@ -14,7 +14,4 @@ import java.util.List;
...
@@ -14,7 +14,4 @@ import java.util.List;
public
class
BlogDetail
extends
Blog
{
public
class
BlogDetail
extends
Blog
{
private
String
content
;
private
String
content
;
private
List
<
String
>
tagIds
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/entity/Blog.java
View file @
a7a32246
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
entity
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
entity
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.topic.entity.Topic
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -62,8 +64,12 @@ public class Blog implements Serializable {
...
@@ -62,8 +64,12 @@ public class Blog implements Serializable {
@ApiModelProperty
(
value
=
"是否允许转发"
)
@ApiModelProperty
(
value
=
"是否允许转发"
)
private
Boolean
allowForward
;
private
Boolean
allowForward
;
@TableField
(
exist
=
false
)
private
List
<
Tag
>
tags
;
private
List
<
Tag
>
tags
;
@TableField
(
exist
=
false
)
private
List
<
Topic
>
topics
;
private
LocalDateTime
createTime
;
private
LocalDateTime
createTime
;
private
LocalDateTime
updateTime
;
private
LocalDateTime
updateTime
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogErrorCode.java
View file @
a7a32246
...
@@ -8,7 +8,8 @@ import cn.meteor.beyondclouds.core.IErrorCode;
...
@@ -8,7 +8,8 @@ import cn.meteor.beyondclouds.core.IErrorCode;
*/
*/
public
enum
BlogErrorCode
implements
IErrorCode
{
public
enum
BlogErrorCode
implements
IErrorCode
{
USERID_AUTH_ERROR
(
8001
,
"不是当前博客的拥有者"
),
USERID_AUTH_ERROR
(
8001
,
"不是当前博客的拥有者"
),
BLOG_NOT_FOUND
(
8002
,
"当前博客已经不存在"
)
BLOG_NOT_FOUND
(
8002
,
"当前博客已经不存在"
),
NO_VIEW_PRIVILEGES
(
8003
,
"没有查看权限"
)
;
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
View file @
a7a32246
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
service
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
service
;
import
cn.meteor.beyondclouds.core.bean.Subject
;
import
cn.meteor.beyondclouds.modules.blog.bean.BlogDetail
;
import
cn.meteor.beyondclouds.modules.blog.bean.BlogDetail
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceException
;
...
@@ -38,10 +39,11 @@ public interface IBlogService extends IService<Blog> {
...
@@ -38,10 +39,11 @@ public interface IBlogService extends IService<Blog> {
/**
/**
* 获取博客详情
* 获取博客详情
* @param blogId
* @param blogId
* @param subject
* @return
* @return
* @throws BlogServiceException
* @throws BlogServiceException
*/
*/
BlogDetail
getBlog
(
String
blogId
)
throws
BlogServiceException
;
BlogDetail
getBlog
(
String
blogId
,
Subject
subject
)
throws
BlogServiceException
;
/**
/**
* 博客列表
* 博客列表
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
a7a32246
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
service
.
impl
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
service
.
impl
;
import
cn.meteor.beyondclouds.core.bean.Subject
;
import
cn.meteor.beyondclouds.modules.blog.bean.BlogDetail
;
import
cn.meteor.beyondclouds.modules.blog.bean.BlogDetail
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogCategory
;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogCategory
;
...
@@ -11,8 +12,10 @@ import cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceExceptio
...
@@ -11,8 +12,10 @@ import cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceExceptio
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.mapper.BlogMapper
;
import
cn.meteor.beyondclouds.modules.blog.mapper.BlogMapper
;
import
cn.meteor.beyondclouds.modules.blog.service.*
;
import
cn.meteor.beyondclouds.modules.blog.service.*
;
import
cn.meteor.beyondclouds.modules.tag.service.ITagService
;
import
cn.meteor.beyondclouds.modules.topic.entity.TopicReference
;
import
cn.meteor.beyondclouds.modules.topic.entity.TopicReference
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicReferenceService
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicReferenceService
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
@@ -53,28 +56,25 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -53,28 +56,25 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
private
BlogMapper
blogMapper
;
private
BlogMapper
blogMapper
;
@Autowired
private
ITagService
tagService
;
public
void
setBlogMapper
(
BlogMapper
blogMapper
)
{
this
.
blogMapper
=
blogMapper
;
private
ITopicService
topicService
;
}
@Autowired
@Autowired
public
void
setBlogCategoryService
(
IBlogCategoryService
blogCategoryService
)
{
public
BlogServiceImpl
(
IBlogTagService
blogTagService
,
ITopicReferenceService
topicReferenceService
,
IBlogExtService
blogExtService
,
IBlogCategoryService
blogCategoryService
,
BlogMapper
blogMapper
,
ITagService
tagService
,
ITopicService
topicService
)
{
this
.
blogTagService
=
blogTagService
;
this
.
topicReferenceService
=
topicReferenceService
;
this
.
blogExtService
=
blogExtService
;
this
.
blogCategoryService
=
blogCategoryService
;
this
.
blogCategoryService
=
blogCategoryService
;
this
.
blogMapper
=
blogMapper
;
this
.
tagService
=
tagService
;
this
.
topicService
=
topicService
;
}
}
@Autowired
public
void
setBlogCommentService
(
IBlogCommentService
blogCommentService
)
{
public
void
setBlogCommentService
(
IBlogCommentService
blogCommentService
)
{
this
.
blogCommentService
=
blogCommentService
;
this
.
blogCommentService
=
blogCommentService
;
}
}
@Autowired
public
BlogServiceImpl
(
IBlogTagService
blogTagService
,
ITopicReferenceService
topicReferenceService
,
IBlogExtService
blogExtService
)
{
this
.
blogTagService
=
blogTagService
;
this
.
topicReferenceService
=
topicReferenceService
;
this
.
blogExtService
=
blogExtService
;
}
/**
/**
* 发布博客
* 发布博客
* @param blog
* @param blog
...
@@ -188,38 +188,53 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -188,38 +188,53 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
* @throws BlogServiceException
* @throws BlogServiceException
*/
*/
@Override
@Override
public
BlogDetail
getBlog
(
String
blogId
)
throws
BlogServiceException
{
public
BlogDetail
getBlog
(
String
blogId
,
Subject
subject
)
throws
BlogServiceException
{
Assert
.
notNull
(
subject
,
"subject must not be null"
);
//1.获取博客
//
1.获取博客
Blog
blog
=
getById
(
blogId
);
Blog
blog
=
getById
(
blogId
);
if
(
null
==
blog
)
{
throw
new
BlogServiceException
(
BlogErrorCode
.
BLOG_NOT_FOUND
);
}
//
判断是否存在此博客,如果存在判断是否有权限
查看
//
如果当前用户没登录或者当前登录的用户不是博客的发布者,则判断博客是否允许别人
查看
if
(
null
!=
blog
)
{
if
(
!
subject
.
isAuthenticated
()
||
!
subject
.
getId
().
equals
(
blog
.
getUserId
())
)
{
if
(
0
==
blog
.
getViewPrivileges
())
{
if
(
0
==
blog
.
getViewPrivileges
())
{
throw
new
BlogServiceException
(
BlogErrorCode
.
BLOG_NOT_FOUND
);
throw
new
BlogServiceException
(
BlogErrorCode
.
NO_VIEW_PRIVILEGES
);
}
}
}
else
{
throw
new
BlogServiceException
(
BlogErrorCode
.
BLOG_NOT_FOUND
);
}
}
//2.获取项目内容
//2.获取项目内容
QueryWrapper
<
BlogExt
>
blogExtQueryWrapper
=
new
QueryWrapper
();
QueryWrapper
<
BlogExt
>
blogExtQueryWrapper
=
new
QueryWrapper
();
blogExtQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
blogExtQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
BlogExt
blogExt
=
blogExtService
.
getOne
(
blogExtQueryWrapper
);
BlogExt
blogExt
=
blogExtService
.
getOne
(
blogExtQueryWrapper
);
//3.获取
引用的话题
//3.获取
博客里面的标签
QueryWrapper
<
BlogTag
>
blogTagQueryWrapper
=
new
QueryWrapper
();
QueryWrapper
<
BlogTag
>
blogTagQueryWrapper
=
new
QueryWrapper
();
blogTagQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
blogTagQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
List
<
BlogTag
>
blogTagList
=
blogTagService
.
list
(
blogTagQueryWrapper
);
List
<
BlogTag
>
blogTagList
=
blogTagService
.
list
(
blogTagQueryWrapper
);
String
[]
tagIds
=
blogTagList
.
stream
().
map
(
BlogTag:
:
getTagId
).
collect
(
Collectors
.
toList
()).
toArray
(
new
String
[
0
]);
List
<
String
>
tagIds
=
blogTagList
.
stream
().
map
(
BlogTag:
:
getTagId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
tagIds
))
{
blog
.
setTags
(
tagService
.
listByIds
(
tagIds
));
}
else
{
blog
.
setTags
(
List
.
of
());
}
ArrayList
<
String
>
blogTags
=
new
ArrayList
<>();
//4.获取博客引用的话题
for
(
String
tagId
:
tagIds
)
{
QueryWrapper
<
TopicReference
>
topicReferenceQueryWrapper
=
new
QueryWrapper
();
blogTags
.
add
(
tagId
);
topicReferenceQueryWrapper
.
eq
(
"referencer_id"
,
blogId
);
topicReferenceQueryWrapper
.
eq
(
"referencer_type"
,
0
);
List
<
TopicReference
>
topicReferenceList
=
topicReferenceService
.
list
(
topicReferenceQueryWrapper
);
List
<
String
>
topicIds
=
topicReferenceList
.
stream
().
map
(
TopicReference:
:
getTopicId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
topicIds
))
{
blog
.
setTopics
(
topicService
.
listByIds
(
topicIds
));
}
else
{
blog
.
setTags
(
List
.
of
());
}
}
//装配并返回查询到的数据
//装配并返回查询到的数据
BlogDetail
blogDetail
=
new
BlogDetail
();
BlogDetail
blogDetail
=
new
BlogDetail
();
BeanUtils
.
copyProperties
(
blog
,
blogDetail
);
BeanUtils
.
copyProperties
(
blog
,
blogDetail
);
blogDetail
.
setTagIds
(
blogTags
);
blogDetail
.
setContent
(
blogExt
.
getContent
());
blogDetail
.
setContent
(
blogExt
.
getContent
());
return
blogDetail
;
return
blogDetail
;
}
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/tag/entity/Tag.java
View file @
a7a32246
...
@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.tag.entity;
...
@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.tag.entity;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -31,6 +32,7 @@ public class Tag implements Serializable {
...
@@ -31,6 +32,7 @@ public class Tag implements Serializable {
@TableId
(
value
=
"tag_id"
,
type
=
IdType
.
ASSIGN_UUID
)
@TableId
(
value
=
"tag_id"
,
type
=
IdType
.
ASSIGN_UUID
)
private
String
tagId
;
private
String
tagId
;
@JsonIgnore
@ApiModelProperty
(
value
=
"用户id"
)
@ApiModelProperty
(
value
=
"用户id"
)
private
String
userId
;
private
String
userId
;
...
...
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