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
d6b5734c
Commit
d6b5734c
authored
Feb 13, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
博客浏览量完成
parent
6d548d79
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
77 additions
and
6 deletions
+77
-6
src/main/java/cn/meteor/beyondclouds/core/queue/message/DataItemType.java
+5
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
+13
-2
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/BlogMapper.java
+7
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/xml/BlogMapper.xml
+6
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
+9
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+10
-2
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
+1
-1
src/main/java/cn/meteor/beyondclouds/modules/user/entity/UserStatistics.java
+3
-0
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserStatisticsListener.java
+11
-0
src/main/java/cn/meteor/beyondclouds/util/AccessInfoUtils.java
+12
-0
No files found.
src/main/java/cn/meteor/beyondclouds/core/queue/message/DataItemType.java
View file @
d6b5734c
...
...
@@ -31,6 +31,11 @@ public enum DataItemType {
BLOG
(
Blog
.
class
),
/**
* 博客浏览量
*/
BLOG_VIEW_NUM
(
Blog
.
class
),
/**
* 项目
*/
PROJECT
(
Project
.
class
),
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
View file @
d6b5734c
...
...
@@ -7,6 +7,9 @@ import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import
cn.meteor.beyondclouds.core.annotation.PreventDuplicate
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
import
cn.meteor.beyondclouds.core.flow.AccessInfo
;
import
cn.meteor.beyondclouds.core.flow.CollectAccessInfo
;
import
cn.meteor.beyondclouds.core.flow.ParamType
;
import
cn.meteor.beyondclouds.core.validation.groups.InsertGroup
;
import
cn.meteor.beyondclouds.core.validation.groups.UpdateGroup
;
import
cn.meteor.beyondclouds.modules.blog.dto.BlogDetailDTO
;
...
...
@@ -15,6 +18,7 @@ import cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceExceptio
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.form.BlogForm
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogService
;
import
cn.meteor.beyondclouds.util.AccessInfoUtils
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -82,9 +86,16 @@ public class BlogApi {
@Anonymous
@ApiOperation
(
"博客详情"
)
@GetMapping
(
"/blog/{blogId}"
)
public
Response
<
BlogDetailDTO
>
getBlog
(
@PathVariable
(
"blogId"
)
String
blogId
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
BlogDetailDTO
>
getBlog
(
@PathVariable
(
"blogId"
)
String
blogId
,
@CurrentSubject
Subject
subject
,
@CollectAccessInfo
(
paramName
=
"blogId"
,
type
=
ParamType
.
BLOG
)
AccessInfo
accessInfo
)
{
boolean
updateViewNum
=
false
;
if
(
AccessInfoUtils
.
hasFieldInfo
(
accessInfo
))
{
updateViewNum
=
accessInfo
.
getFieldVisitCount
()
==
0
;
}
try
{
BlogDetailDTO
blogDetail
=
blogService
.
getBlog
(
blogId
,
subject
);
BlogDetailDTO
blogDetail
=
blogService
.
getBlog
(
blogId
,
subject
,
updateViewNum
);
return
Response
.
success
(
blogDetail
);
}
catch
(
BlogServiceException
e
)
{
e
.
printStackTrace
();
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/BlogMapper.java
View file @
d6b5734c
...
...
@@ -34,4 +34,11 @@ public interface BlogMapper extends BaseMapper<Blog> {
* @return
*/
List
<
Blog
>
listByIdsWithTags
(
@Param
(
"blogIds"
)
Collection
<
String
>
blogIds
);
/**
* 查询用户所有博客的浏览量
* @param userId
* @return
*/
long
selectAllViewCount
(
@Param
(
"userId"
)
String
userId
);
}
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/xml/BlogMapper.xml
View file @
d6b5734c
...
...
@@ -66,5 +66,11 @@
</foreach>
</select>
<select
id=
"selectAllViewCount"
resultType=
"java.lang.Long"
>
select count(view_num)
from blog
where user_id = #{userId}
</select>
</mapper>
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
View file @
d6b5734c
...
...
@@ -41,10 +41,11 @@ public interface IBlogService extends IService<Blog> {
* 获取博客详情
* @param blogId
* @param subject
* @param updateViewNum
* @return
* @throws BlogServiceException
*/
BlogDetailDTO
getBlog
(
String
blogId
,
Subject
subject
)
throws
BlogServiceException
;
BlogDetailDTO
getBlog
(
String
blogId
,
Subject
subject
,
boolean
updateViewNum
)
throws
BlogServiceException
;
/**
* 博客列表
...
...
@@ -123,5 +124,12 @@ public interface IBlogService extends IService<Blog> {
void
updateBlogUserAvatar
(
String
userId
);
/**
* 获取用户所有博客的浏览量
* @param operatorId
* @return
*/
long
allBlogViewCount
(
String
operatorId
);
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
d6b5734c
...
...
@@ -41,7 +41,6 @@ import org.springframework.util.StringUtils;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -234,11 +233,12 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
* 博客详情
*
* @param blogId
* @param updateViewNum
* @return
* @throws BlogServiceException
*/
@Override
public
BlogDetailDTO
getBlog
(
String
blogId
,
Subject
subject
)
throws
BlogServiceException
{
public
BlogDetailDTO
getBlog
(
String
blogId
,
Subject
subject
,
boolean
updateViewNum
)
throws
BlogServiceException
{
Assert
.
notNull
(
subject
,
"subject must not be null"
);
// 1.获取博客
...
...
@@ -255,12 +255,15 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
//更新浏览次数
if
(
updateViewNum
)
{
if
(
null
==
blog
.
getViewNumber
())
{
blog
.
setViewNumber
(
1
);
}
else
{
blog
.
setViewNumber
(
blog
.
getViewNumber
()
+
1
);
}
updateById
(
blog
);
messageQueueService
.
sendDataItemChangeMessage
(
DataItemChangeMessage
.
updateMessage
(
DataItemType
.
BLOG_VIEW_NUM
,
blogId
,
blog
.
getUserId
()));
}
//2.获取项目内容
QueryWrapper
<
BlogExt
>
blogExtQueryWrapper
=
new
QueryWrapper
();
blogExtQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
...
...
@@ -631,4 +634,9 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
update
(
blogUserAvatarUpdeteWrapper
);
}
}
@Override
public
long
allBlogViewCount
(
String
userId
)
{
return
blogMapper
.
selectAllViewCount
(
userId
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
View file @
d6b5734c
...
...
@@ -334,7 +334,7 @@ public class SearchServiceImpl implements ISearchService {
}
private
SearchItem
buildSearchItemFromBlog
(
String
blogId
)
throws
BlogServiceException
{
BlogDetailDTO
blogDetail
=
blogService
.
getBlog
(
blogId
,
Subject
.
anonymous
(
this
.
getClass
().
getName
()));
BlogDetailDTO
blogDetail
=
blogService
.
getBlog
(
blogId
,
Subject
.
anonymous
(
this
.
getClass
().
getName
())
,
false
);
if
(
null
!=
blogDetail
)
{
SearchItem
searchItem
=
new
SearchItem
(
DataItemType
.
BLOG
,
blogId
);
searchItem
.
setTitle
(
blogDetail
.
getBlogTitle
());
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/entity/UserStatistics.java
View file @
d6b5734c
...
...
@@ -40,6 +40,9 @@ public class UserStatistics implements Serializable {
@ApiModelProperty
(
value
=
"博客数量"
)
private
Integer
blogNum
;
@ApiModelProperty
(
value
=
"博客浏览量"
)
private
Integer
blogViewNum
;
@ApiModelProperty
(
value
=
"项目数量"
)
private
Integer
projectNum
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserStatisticsListener.java
View file @
d6b5734c
...
...
@@ -86,6 +86,12 @@ public class UserStatisticsListener implements DataItemChangeListener {
onDataChange
(
dataItemChangeMessage
);
}
@Override
public
void
onDataItemUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
{
if
(
dataItemChangeMessage
.
getItemType
().
equals
(
DataItemType
.
BLOG_VIEW_NUM
))
{
onDataChange
(
dataItemChangeMessage
);
}
}
/**
* 汇总ADD和delete消息
...
...
@@ -131,6 +137,11 @@ public class UserStatisticsListener implements DataItemChangeListener {
updateUserStatisticValue
(
operatorId
,
"blog_num"
,
blogCount
);
}
if
(
itemType
.
equals
(
DataItemType
.
BLOG_VIEW_NUM
))
{
// 更新博客浏览量
updateUserStatisticValue
((
String
)
itemId
,
"blog_view_num"
,
blogService
.
allBlogViewCount
(
operatorId
));
}
if
(
itemType
.
equals
(
DataItemType
.
PROJECT
))
{
// 更新项目发布量
QueryWrapper
<
Project
>
projectQueryWrapper
=
new
QueryWrapper
<>();
...
...
src/main/java/cn/meteor/beyondclouds/util/AccessInfoUtils.java
0 → 100644
View file @
d6b5734c
package
cn
.
meteor
.
beyondclouds
.
util
;
import
cn.meteor.beyondclouds.core.flow.AccessInfo
;
/**
* @author meteor
*/
public
class
AccessInfoUtils
{
public
static
boolean
hasFieldInfo
(
AccessInfo
accessInfo
)
{
return
null
!=
accessInfo
&&
null
!=
accessInfo
.
getFieldVisitCount
();
}
}
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