Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
T
tanpu-community
Project
Project
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
探普后端
tanpu-community
Commits
b8835e19
Commit
b8835e19
authored
Sep 03, 2021
by
刘基明
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
Dev See merge request
!14
parents
2bd52d5b
a750e6d6
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
211 additions
and
62 deletions
+211
-62
ThemeNotifyQo.java
.../java/com/tanpu/community/api/beans/qo/ThemeNotifyQo.java
+2
-0
CreateCommentReq.java
...npu/community/api/beans/req/comment/CreateCommentReq.java
+3
-0
NotifyQueryReq.java
.../community/api/beans/req/notification/NotifyQueryReq.java
+1
-2
ForwardThemeReq.java
.../tanpu/community/api/beans/req/theme/ForwardThemeReq.java
+5
-2
ThemeContentReq.java
.../tanpu/community/api/beans/req/theme/ThemeContentReq.java
+6
-0
BizConstant.java
...n/java/com/tanpu/community/api/constants/BizConstant.java
+16
-0
NotificationTypeEnum.java
...a/com/tanpu/community/api/enums/NotificationTypeEnum.java
+1
-0
CommentManager.java
...main/java/com/tanpu/community/manager/CommentManager.java
+33
-10
HomePageManager.java
...ain/java/com/tanpu/community/manager/HomePageManager.java
+1
-1
NotificationManager.java
...java/com/tanpu/community/manager/NotificationManager.java
+24
-16
ThemeManager.java
...c/main/java/com/tanpu/community/manager/ThemeManager.java
+18
-8
CollectionService.java
...n/java/com/tanpu/community/service/CollectionService.java
+5
-3
CommentService.java
...main/java/com/tanpu/community/service/CommentService.java
+16
-1
NotificationService.java
...java/com/tanpu/community/service/NotificationService.java
+52
-16
ThemeService.java
...c/main/java/com/tanpu/community/service/ThemeService.java
+20
-0
ConvertUtil.java
...e/src/main/java/com/tanpu/community/util/ConvertUtil.java
+8
-3
No files found.
community-api/src/main/java/com/tanpu/community/api/beans/qo/ThemeNotifyQo.java
View file @
b8835e19
...
@@ -49,6 +49,8 @@ public class ThemeNotifyQo {
...
@@ -49,6 +49,8 @@ public class ThemeNotifyQo {
public
String
topicTitle
;
public
String
topicTitle
;
@ApiModelProperty
(
value
=
"评论/转发内容"
)
@ApiModelProperty
(
value
=
"评论/转发内容"
)
private
String
content
;
private
String
content
;
@ApiModelProperty
(
value
=
"评论Id"
)
private
String
commentId
;
@ApiModelProperty
(
value
=
"转发类型-主题id"
)
@ApiModelProperty
(
value
=
"转发类型-主题id"
)
private
String
forwardThemeId
;
private
String
forwardThemeId
;
...
...
community-api/src/main/java/com/tanpu/community/api/beans/req/comment/CreateCommentReq.java
View file @
b8835e19
...
@@ -24,4 +24,7 @@ public class CreateCommentReq {
...
@@ -24,4 +24,7 @@ public class CreateCommentReq {
@ApiModelProperty
(
value
=
"评论内容"
)
@ApiModelProperty
(
value
=
"评论内容"
)
private
String
comment
;
private
String
comment
;
@ApiModelProperty
(
value
=
"同步转发,1 同步 ,0 不同步(默认)"
)
private
int
syncForward
=
0
;
}
}
community-api/src/main/java/com/tanpu/community/api/beans/req/notification/NotifyQueryReq.java
View file @
b8835e19
package
com
.
tanpu
.
community
.
api
.
beans
.
req
.
notification
;
package
com
.
tanpu
.
community
.
api
.
beans
.
req
.
notification
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Builder
;
...
@@ -14,7 +13,7 @@ import lombok.NoArgsConstructor;
...
@@ -14,7 +13,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@AllArgsConstructor
public
class
NotifyQueryReq
{
public
class
NotifyQueryReq
{
@ApiModelProperty
(
value
=
"1:转发 2:点赞 3:评论 4:关注 0:全部"
)
@ApiModelProperty
(
value
=
"1:转发 2:点赞
(主题点赞+评论点赞)
3:评论 4:关注 0:全部"
)
private
Integer
type
;
private
Integer
type
;
@ApiModelProperty
(
value
=
"最后一条通知"
)
@ApiModelProperty
(
value
=
"最后一条通知"
)
...
...
community-api/src/main/java/com/tanpu/community/api/beans/req/theme/ForwardThemeReq.java
View file @
b8835e19
...
@@ -21,8 +21,11 @@ public class ForwardThemeReq {
...
@@ -21,8 +21,11 @@ public class ForwardThemeReq {
private
List
<
ThemeContentReq
>
content
;
private
List
<
ThemeContentReq
>
content
;
@ApiModelProperty
(
value
=
"话题Id"
)
@ApiModelProperty
(
value
=
"话题Id"
)
private
String
topicId
=
""
;
private
String
topicId
=
""
;
@ApiModelProperty
(
value
=
"修改,则传入正在编辑的ThemeId"
)
@ApiModelProperty
(
value
=
"修改,则传入正在编辑的ThemeId"
)
private
String
editThemeId
=
""
;
private
String
editThemeId
=
""
;
@ApiModelProperty
(
value
=
"同步评论,1 同步 ,0 不同步(默认)"
)
private
int
syncComment
=
0
;
}
}
community-api/src/main/java/com/tanpu/community/api/beans/req/theme/ThemeContentReq.java
View file @
b8835e19
...
@@ -3,12 +3,18 @@ package com.tanpu.community.api.beans.req.theme;
...
@@ -3,12 +3,18 @@ package com.tanpu.community.api.beans.req.theme;
import
com.tanpu.community.api.beans.vo.ImagesDTO
;
import
com.tanpu.community.api.beans.vo.ImagesDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
import
java.util.List
;
@Data
@Data
@ApiModel
(
value
=
"主题内容"
)
@ApiModel
(
value
=
"主题内容"
)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
ThemeContentReq
{
public
class
ThemeContentReq
{
@ApiModelProperty
(
value
=
"RelTypeEnum类型,108:文本,88:产品 3:直播 6:短视频 303:新版课程-视频,304: 新版课程-音频,109:单图(长文) 110:多图(讨论))"
)
@ApiModelProperty
(
value
=
"RelTypeEnum类型,108:文本,88:产品 3:直播 6:短视频 303:新版课程-视频,304: 新版课程-音频,109:单图(长文) 110:多图(讨论))"
)
...
...
community-api/src/main/java/com/tanpu/community/api/constants/BizConstant.java
0 → 100644
View file @
b8835e19
package
com
.
tanpu
.
community
.
api
.
constants
;
public
class
BizConstant
{
public
static
class
SyncCommentType
{
public
static
final
int
SYNC_COMMENT
=
1
;
public
static
final
int
NOT_SYNC_COMMENT
=
0
;
}
public
static
class
SyncForwardType
{
public
static
final
int
SYNC_FORWARD
=
1
;
public
static
final
int
NOT_SYNC_FORWARD
=
0
;
}
}
community-api/src/main/java/com/tanpu/community/api/enums/NotificationTypeEnum.java
View file @
b8835e19
...
@@ -12,6 +12,7 @@ public enum NotificationTypeEnum {
...
@@ -12,6 +12,7 @@ public enum NotificationTypeEnum {
LIKE
(
2
,
"点赞"
),
LIKE
(
2
,
"点赞"
),
COMMENT
(
3
,
"评论"
),
COMMENT
(
3
,
"评论"
),
FOLLOW
(
4
,
"关注"
),
FOLLOW
(
4
,
"关注"
),
COMMENT_LIKE
(
5
,
"点赞评论"
),
ALL
(
0
,
"全部"
);
ALL
(
0
,
"全部"
);
private
Integer
code
;
private
Integer
code
;
...
...
community-service/src/main/java/com/tanpu/community/manager/CommentManager.java
View file @
b8835e19
...
@@ -4,12 +4,14 @@ import com.tanpu.biz.common.enums.community.CollectionTypeEnum;
...
@@ -4,12 +4,14 @@ import com.tanpu.biz.common.enums.community.CollectionTypeEnum;
import
com.tanpu.biz.common.enums.community.CommentTypeEnum
;
import
com.tanpu.biz.common.enums.community.CommentTypeEnum
;
import
com.tanpu.biz.common.enums.community.ReportTypeEnum
;
import
com.tanpu.biz.common.enums.community.ReportTypeEnum
;
import
com.tanpu.common.api.CommonResp
;
import
com.tanpu.common.api.CommonResp
;
import
com.tanpu.common.constant.ErrorCodeConstant
;
import
com.tanpu.common.exception.BizException
;
import
com.tanpu.common.exception.BizException
;
import
com.tanpu.community.api.beans.qo.CommentQo
;
import
com.tanpu.community.api.beans.qo.CommentQo
;
import
com.tanpu.community.api.beans.req.comment.CreateCommentReq
;
import
com.tanpu.community.api.beans.req.comment.CreateCommentReq
;
import
com.tanpu.community.api.beans.req.comment.LikeCommentReq
;
import
com.tanpu.community.api.beans.req.comment.LikeCommentReq
;
import
com.tanpu.community.api.beans.req.comment.ReportCommentReq
;
import
com.tanpu.community.api.beans.req.comment.ReportCommentReq
;
import
com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp
;
import
com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp
;
import
com.tanpu.community.api.constants.BizConstant
;
import
com.tanpu.community.api.enums.NotificationTypeEnum
;
import
com.tanpu.community.api.enums.NotificationTypeEnum
;
import
com.tanpu.community.api.enums.OperationTypeEnum
;
import
com.tanpu.community.api.enums.OperationTypeEnum
;
import
com.tanpu.community.cache.RedisCache
;
import
com.tanpu.community.cache.RedisCache
;
...
@@ -67,7 +69,7 @@ public class CommentManager {
...
@@ -67,7 +69,7 @@ public class CommentManager {
if
(
StringUtils
.
isEmpty
(
req
.
getComment
()))
{
if
(
StringUtils
.
isEmpty
(
req
.
getComment
()))
{
throw
new
IllegalArgumentException
(
"评论内容不能为空"
);
throw
new
IllegalArgumentException
(
"评论内容不能为空"
);
}
}
if
(
req
.
getComment
().
length
()
>
500
)
{
if
(
req
.
getComment
().
length
()
>
500
)
{
throw
new
IllegalArgumentException
(
"评论内容不能超过500字"
);
throw
new
IllegalArgumentException
(
"评论内容不能超过500字"
);
}
}
...
@@ -86,11 +88,25 @@ public class CommentManager {
...
@@ -86,11 +88,25 @@ public class CommentManager {
commentService
.
insertComment
(
commentEntity
);
commentService
.
insertComment
(
commentEntity
);
CommentQo
commentQo
=
ConvertUtil
.
commentEntity2Qo
(
commentEntity
);
CommentQo
commentQo
=
ConvertUtil
.
commentEntity2Qo
(
commentEntity
);
buildUserInfo
(
commentQo
);
buildUserInfo
(
commentQo
);
// 消息通知
// 消息通知
ThemeEntity
themeEntity
=
themeService
.
queryByThemeId
(
req
.
getThemeId
());
ThemeEntity
themeEntity
=
themeService
.
queryByThemeId
(
req
.
getThemeId
());
notificationService
.
insert
(
userId
,
themeEntity
.
getAuthorId
(),
NotificationTypeEnum
.
COMMENT
,
commentEntity
.
getCommentId
(),
req
.
getComment
());
if
(
themeEntity
==
null
)
{
notificationService
.
putNotifyCache
(
themeEntity
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
COMMENT
);
throw
new
BizException
(
ErrorCodeConstant
.
UNREACHABLE
);
}
notificationService
.
insert
(
userId
,
themeEntity
.
getAuthorId
(),
NotificationTypeEnum
.
COMMENT
,
commentEntity
.
getCommentId
(),
req
.
getComment
());
notificationService
.
putNotifyCache
(
themeEntity
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
COMMENT
);
// 评论同步转发并消息通知
if
(
req
.
getSyncForward
()
==
BizConstant
.
SyncForwardType
.
SYNC_FORWARD
)
{
String
themeId
=
themeService
.
commentSyncForward
(
req
,
userId
);
// 消息通知
ThemeEntity
commentTheme
=
themeService
.
queryByThemeId
(
req
.
getThemeId
());
notificationService
.
insertForward
(
userId
,
commentTheme
.
getAuthorId
(),
commentTheme
.
getThemeId
(),
""
,
req
.
getComment
(),
themeId
);
notificationService
.
putNotifyCache
(
commentTheme
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
FORWARD
);
}
return
commentQo
;
return
commentQo
;
}
}
...
@@ -122,7 +138,7 @@ public class CommentManager {
...
@@ -122,7 +138,7 @@ public class CommentManager {
private
void
buildUserInfo
(
CommentQo
commentQo
)
{
private
void
buildUserInfo
(
CommentQo
commentQo
)
{
String
authorId
=
commentQo
.
getAuthorId
();
String
authorId
=
commentQo
.
getAuthorId
();
UserInfoResp
userInfo
=
redisCache
.
getObject
(
StringUtils
.
joinWith
(
"_"
,
CACHE_FEIGN_USER_INFO
,
authorId
),
UserInfoResp
userInfo
=
redisCache
.
getObject
(
StringUtils
.
joinWith
(
"_"
,
CACHE_FEIGN_USER_INFO
,
authorId
),
60
,
()
->
this
.
getUserInfo
(
authorId
)
,
UserInfoResp
.
class
);
60
,
()
->
this
.
getUserInfo
(
authorId
)
,
UserInfoResp
.
class
);
if
(
userInfo
!=
null
)
{
if
(
userInfo
!=
null
)
{
commentQo
.
setUserImg
(
userInfo
.
getHeadImageUrl
());
commentQo
.
setUserImg
(
userInfo
.
getHeadImageUrl
());
commentQo
.
setNickName
(
userInfo
.
getNickName
());
commentQo
.
setNickName
(
userInfo
.
getNickName
());
...
@@ -136,7 +152,7 @@ public class CommentManager {
...
@@ -136,7 +152,7 @@ public class CommentManager {
commentQo
.
setLikeCount
(
0
);
commentQo
.
setLikeCount
(
0
);
}
}
private
UserInfoResp
getUserInfo
(
String
authorId
){
private
UserInfoResp
getUserInfo
(
String
authorId
)
{
CommonResp
<
UserInfoResp
>
userInfoNewCommonResp
=
feignClientForFatools
.
queryUserInfoNew
(
authorId
);
CommonResp
<
UserInfoResp
>
userInfoNewCommonResp
=
feignClientForFatools
.
queryUserInfoNew
(
authorId
);
if
(
userInfoNewCommonResp
.
isNotSuccess
())
{
if
(
userInfoNewCommonResp
.
isNotSuccess
())
{
throw
new
BizException
(
"内部接口调用失败"
);
throw
new
BizException
(
"内部接口调用失败"
);
...
@@ -147,7 +163,12 @@ public class CommentManager {
...
@@ -147,7 +163,12 @@ public class CommentManager {
//点赞评论/取消点赞
//点赞评论/取消点赞
public
void
likeComment
(
LikeCommentReq
req
,
String
userId
)
{
public
void
likeComment
(
LikeCommentReq
req
,
String
userId
)
{
if
(
OperationTypeEnum
.
CONFIRM
.
getCode
().
equals
(
req
.
getType
()))
{
if
(
OperationTypeEnum
.
CONFIRM
.
getCode
().
equals
(
req
.
getType
()))
{
collectionService
.
saveOrUpdate
(
req
.
getCommentId
(),
userId
,
CollectionTypeEnum
.
LIKE_COMMENT
);
boolean
b
=
collectionService
.
saveOrUpdate
(
req
.
getCommentId
(),
userId
,
CollectionTypeEnum
.
LIKE_COMMENT
);
if
(
b
)
{
CommentEntity
commentEntity
=
commentService
.
queryByCommentId
(
req
.
getCommentId
());
notificationService
.
insertLikeComment
(
userId
,
commentEntity
.
getAuthorId
(),
req
.
getCommentId
());
notificationService
.
putNotifyCache
(
commentEntity
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
COMMENT_LIKE
);
}
}
else
if
(
OperationTypeEnum
.
CANCEL
.
getCode
().
equals
(
req
.
getType
()))
{
}
else
if
(
OperationTypeEnum
.
CANCEL
.
getCode
().
equals
(
req
.
getType
()))
{
collectionService
.
delete
(
req
.
getCommentId
(),
userId
,
CollectionTypeEnum
.
LIKE_COMMENT
);
collectionService
.
delete
(
req
.
getCommentId
(),
userId
,
CollectionTypeEnum
.
LIKE_COMMENT
);
...
@@ -168,11 +189,13 @@ public class CommentManager {
...
@@ -168,11 +189,13 @@ public class CommentManager {
//删除评论
//删除评论
public
void
delete
(
String
commentId
,
String
userId
)
{
public
void
delete
(
String
commentId
,
String
userId
)
{
commentService
.
delete
(
commentId
,
userId
);
if
(
StringUtils
.
isBlank
(
commentId
)){
throw
new
BizException
(
"commentId不能为空"
);
}
commentService
.
delete
(
commentId
,
userId
);
CommentEntity
commentEntity
=
commentService
.
queryByIdIncludeDelete
(
commentId
);
CommentEntity
commentEntity
=
commentService
.
queryByIdIncludeDelete
(
commentId
);
ThemeEntity
themeEntity
=
themeService
.
queryByThemeId
(
commentEntity
.
getThemeId
());
ThemeEntity
themeEntity
=
themeService
.
queryByThemeId
(
commentEntity
.
getThemeId
());
notificationService
.
deleteCommentNotify
(
themeEntity
.
getAuthorId
(),
userId
,
commentId
,
commentEntity
.
getCreateTime
());
notificationService
.
deleteCommentNotify
(
themeEntity
.
getAuthorId
(),
userId
,
commentId
,
commentEntity
.
getCreateTime
());
}
}
...
...
community-service/src/main/java/com/tanpu/community/manager/HomePageManager.java
View file @
b8835e19
...
@@ -247,7 +247,7 @@ public class HomePageManager {
...
@@ -247,7 +247,7 @@ public class HomePageManager {
// 第一次关注才有消息通知
// 第一次关注才有消息通知
if
(
followRelService
.
addFollowRel
(
req
.
getFollowUserId
(),
followerId
))
{
if
(
followRelService
.
addFollowRel
(
req
.
getFollowUserId
(),
followerId
))
{
notificationService
.
insert
(
followerId
,
req
.
getFollowUserId
(),
NotificationTypeEnum
.
FOLLOW
,
req
.
getFollowUserId
(),
null
);
notificationService
.
insert
(
followerId
,
req
.
getFollowUserId
(),
NotificationTypeEnum
.
FOLLOW
,
req
.
getFollowUserId
(),
null
);
notificationService
.
putNotifyCache
Follow
(
req
.
getFollowUserId
(),
followerId
);
notificationService
.
putNotifyCache
(
req
.
getFollowUserId
(),
followerId
,
NotificationTypeEnum
.
FOLLOW
);
}
}
}
else
if
(
OperationTypeEnum
.
CANCEL
.
getCode
().
equals
(
req
.
getType
()))
{
}
else
if
(
OperationTypeEnum
.
CANCEL
.
getCode
().
equals
(
req
.
getType
()))
{
followRelService
.
deleteFollowRel
(
req
.
getFollowUserId
(),
followerId
);
followRelService
.
deleteFollowRel
(
req
.
getFollowUserId
(),
followerId
);
...
...
community-service/src/main/java/com/tanpu/community/manager/NotificationManager.java
View file @
b8835e19
...
@@ -79,7 +79,7 @@ public class NotificationManager {
...
@@ -79,7 +79,7 @@ public class NotificationManager {
List
<
ThemeNotifyQo
>
themeNotifyQos
=
ConvertUtil
.
notificationEntitiy2ThemeQos
(
query
);
List
<
ThemeNotifyQo
>
themeNotifyQos
=
ConvertUtil
.
notificationEntitiy2ThemeQos
(
query
);
UserInfoResp
currentUser
=
redisCache
.
getObject
(
StringUtils
.
joinWith
(
"_"
,
CACHE_FEIGN_USER_INFO
,
userId
),
UserInfoResp
currentUser
=
redisCache
.
getObject
(
StringUtils
.
joinWith
(
"_"
,
CACHE_FEIGN_USER_INFO
,
userId
),
60
,
()
->
this
.
getUserInfo
(
userId
),
UserInfoResp
.
class
);
60
,
()
->
this
.
getUserInfo
(
userId
),
UserInfoResp
.
class
);
Set
<
String
>
followUserIds
=
followRelService
.
queryIdolsByFansId
(
userId
).
stream
().
collect
(
Collectors
.
toSet
());
Set
<
String
>
followUserIds
=
followRelService
.
queryIdolsByFansId
(
userId
).
stream
().
collect
(
Collectors
.
toSet
());
for
(
ThemeNotifyQo
themeNotifyQo
:
themeNotifyQos
)
{
for
(
ThemeNotifyQo
themeNotifyQo
:
themeNotifyQos
)
{
// 用户信息
// 用户信息
...
@@ -93,18 +93,28 @@ public class NotificationManager {
...
@@ -93,18 +93,28 @@ public class NotificationManager {
themeNotifyQo
.
setUserInvestorType
(
userInfo
.
getUserInvestorType
());
themeNotifyQo
.
setUserInvestorType
(
userInfo
.
getUserInvestorType
());
themeNotifyQo
.
setBelongUserOrgId
(
userInfo
.
getBelongUserOrgId
());
themeNotifyQo
.
setBelongUserOrgId
(
userInfo
.
getBelongUserOrgId
());
themeNotifyQo
.
setBelongUserOrgName
(
userInfo
.
getBelongUserOrgName
());
themeNotifyQo
.
setBelongUserOrgName
(
userInfo
.
getBelongUserOrgName
());
// 封装引用对象
if
(
StringUtils
.
isNotEmpty
(
themeNotifyQo
.
getFormerThemeId
()))
{
// 评论根据commentEntity找到ThemeId
if
(
NotificationTypeEnum
.
COMMENT
.
getCode
().
equals
(
themeNotifyQo
.
getMessageType
())){
if
(
NotificationTypeEnum
.
COMMENT
.
getCode
().
equals
(
themeNotifyQo
.
getMessageType
())
||
// 评论类型将commentId替换为themeId
NotificationTypeEnum
.
COMMENT_LIKE
.
getCode
().
equals
(
themeNotifyQo
.
getMessageType
()))
{
CommentEntity
commentEntity
=
commentService
.
queryByCommentId
(
themeNotifyQo
.
getFormerThemeId
());
// 评论类型将commentId替换为themeId
CommentEntity
commentEntity
=
commentService
.
queryByCommentId
(
themeNotifyQo
.
getCommentId
());
if
(
commentEntity
!=
null
)
{
themeNotifyQo
.
setFormerThemeId
(
commentEntity
.
getThemeId
());
themeNotifyQo
.
setFormerThemeId
(
commentEntity
.
getThemeId
());
if
(
NotificationTypeEnum
.
COMMENT_LIKE
.
getCode
().
equals
(
themeNotifyQo
.
getMessageType
()))
{
themeNotifyQo
.
setContent
(
commentEntity
.
getContent
());
}
}
}
ThemeEntity
former
=
themeService
.
queryByThemeId
(
themeNotifyQo
.
getFormerThemeId
());
}
// 封装引用对象
if
(
StringUtils
.
isNotEmpty
(
themeNotifyQo
.
getFormerThemeId
()))
{
ThemeEntity
former
=
themeService
.
queryByThemeId
(
themeNotifyQo
.
getFormerThemeId
());
if
(
former
!=
null
)
{
if
(
former
!=
null
)
{
themeNotifyQo
.
setFormerUserName
(
currentUser
.
getNickName
());
themeNotifyQo
.
setFormerUserName
(
currentUser
.
getNickName
());
if
(
StringUtils
.
isNotBlank
(
former
.
getTopicId
())){
if
(
StringUtils
.
isNotBlank
(
former
.
getTopicId
()))
{
// 内部话题
// 内部话题
themeNotifyQo
.
setFormerTopicId
(
former
.
getTopicId
());
themeNotifyQo
.
setFormerTopicId
(
former
.
getTopicId
());
themeNotifyQo
.
setFormerTopicTitle
(
topicService
.
queryTitleById
(
former
.
getTopicId
()));
themeNotifyQo
.
setFormerTopicTitle
(
topicService
.
queryTitleById
(
former
.
getTopicId
()));
...
@@ -113,11 +123,10 @@ public class NotificationManager {
...
@@ -113,11 +123,10 @@ public class NotificationManager {
List
<
ThemeContentQo
>
themeContentQos
=
JsonUtil
.
toBean
(
former
.
getContent
(),
new
TypeReference
<
List
<
ThemeContentQo
>>()
{
List
<
ThemeContentQo
>
themeContentQos
=
JsonUtil
.
toBean
(
former
.
getContent
(),
new
TypeReference
<
List
<
ThemeContentQo
>>()
{
});
});
themeNotifyQo
.
setFormerContent
(
themeContentQos
.
get
(
0
).
getValue
());
themeNotifyQo
.
setFormerContent
(
themeContentQos
.
get
(
0
).
getValue
());
}
}
else
if
(
ThemeTypeEnum
.
LONG_TEXT
.
getCode
().
equals
(
former
.
getThemeType
()))
{
if
(
ThemeTypeEnum
.
LONG_TEXT
.
getCode
().
equals
(
former
.
getThemeType
()))
{
themeNotifyQo
.
setFormerContent
(
former
.
getTitle
());
themeNotifyQo
.
setFormerContent
(
former
.
getTitle
());
}
}
}
else
{
}
else
{
// 引用主题已被删除
// 引用主题已被删除
themeNotifyQo
.
setFormerThemeId
(
null
);
themeNotifyQo
.
setFormerThemeId
(
null
);
}
}
...
@@ -127,7 +136,7 @@ public class NotificationManager {
...
@@ -127,7 +136,7 @@ public class NotificationManager {
themeNotifyQo
.
setTopicTitle
(
topicService
.
queryTitleById
(
themeNotifyQo
.
getTopicId
()));
themeNotifyQo
.
setTopicTitle
(
topicService
.
queryTitleById
(
themeNotifyQo
.
getTopicId
()));
}
}
// 点赞聚合
// 点赞聚合
if
(
themeNotifyQo
.
getLikeUserCount
()
!=
null
&&
themeNotifyQo
.
getLikeUserCount
()>
1
)
{
if
(
themeNotifyQo
.
getLikeUserCount
()
!=
null
&&
themeNotifyQo
.
getLikeUserCount
()
>
1
)
{
List
<
UserBriefInfoQO
>
likeUsers
=
themeNotifyQo
.
getLikeUsers
();
List
<
UserBriefInfoQO
>
likeUsers
=
themeNotifyQo
.
getLikeUsers
();
for
(
UserBriefInfoQO
likeUser
:
likeUsers
)
{
for
(
UserBriefInfoQO
likeUser
:
likeUsers
)
{
UserInfoResp
luser
=
redisCache
.
getObject
(
StringUtils
.
joinWith
(
"_"
,
CACHE_FEIGN_USER_INFO
,
likeUser
.
getUserId
()),
UserInfoResp
luser
=
redisCache
.
getObject
(
StringUtils
.
joinWith
(
"_"
,
CACHE_FEIGN_USER_INFO
,
likeUser
.
getUserId
()),
...
@@ -143,7 +152,7 @@ public class NotificationManager {
...
@@ -143,7 +152,7 @@ public class NotificationManager {
redisCache
.
evict
(
RedisKeyConstant
.
MESSAGE_NOTIFY_COUNT
+
userId
);
redisCache
.
evict
(
RedisKeyConstant
.
MESSAGE_NOTIFY_COUNT
+
userId
);
// 更新查询时间,用于删除评论
// 更新查询时间,用于删除评论
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_QUERY_TIME
+
userId
,
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_QUERY_TIME
+
userId
,
JsonUtil
.
toJson
(
LocalDateTime
.
now
()),
60
*
60
*
24
*
30
);
JsonUtil
.
toJson
(
LocalDateTime
.
now
()),
60
*
60
*
24
*
30
);
return
themeNotifyQos
;
return
themeNotifyQos
;
}
}
...
@@ -166,7 +175,7 @@ public class NotificationManager {
...
@@ -166,7 +175,7 @@ public class NotificationManager {
notificationService
.
insert
(
followRelEntity
.
getFansId
(),
followRelEntity
.
getIdolId
(),
NotificationTypeEnum
.
FOLLOW
notificationService
.
insert
(
followRelEntity
.
getFansId
(),
followRelEntity
.
getIdolId
(),
NotificationTypeEnum
.
FOLLOW
,
followRelEntity
.
getFansId
(),
""
,
followRelEntity
.
getUpdateTime
());
,
followRelEntity
.
getFansId
(),
""
,
followRelEntity
.
getUpdateTime
());
notificationService
.
putNotifyCacheFollow
(
followRelEntity
.
getIdolId
(),
followRelEntity
.
getFansId
(),
followRelEntity
.
getUpdateTime
());
notificationService
.
putNotifyCacheFollow
(
followRelEntity
.
getIdolId
(),
followRelEntity
.
getFansId
(),
followRelEntity
.
getUpdateTime
());
}
}
// 转发
// 转发
List
<
ThemeEntity
>
themeEntities
=
themeService
.
queryAllForward
();
List
<
ThemeEntity
>
themeEntities
=
themeService
.
queryAllForward
();
...
@@ -184,7 +193,7 @@ public class NotificationManager {
...
@@ -184,7 +193,7 @@ public class NotificationManager {
.
topicId
(
themeEntity
.
getTopicId
()).
build
();
.
topicId
(
themeEntity
.
getTopicId
()).
build
();
notificationService
.
insert
(
themeEntity
.
getAuthorId
(),
former
.
getAuthorId
(),
NotificationTypeEnum
.
FORWARD
notificationService
.
insert
(
themeEntity
.
getAuthorId
(),
former
.
getAuthorId
(),
NotificationTypeEnum
.
FORWARD
,
themeEntity
.
getFormerThemeId
(),
JsonUtil
.
toJson
(
content
),
themeEntity
.
getUpdateTime
());
,
themeEntity
.
getFormerThemeId
(),
JsonUtil
.
toJson
(
content
),
themeEntity
.
getUpdateTime
());
notificationService
.
putNotifyCache
(
former
.
getAuthorId
(),
themeEntity
.
getAuthorId
(),
NotificationTypeEnum
.
FORWARD
,
themeEntity
.
getUpdateTime
());
notificationService
.
putNotifyCache
(
former
.
getAuthorId
(),
themeEntity
.
getAuthorId
(),
NotificationTypeEnum
.
FORWARD
,
themeEntity
.
getUpdateTime
());
}
}
// 评论
// 评论
List
<
CommentEntity
>
commentEntities
=
commentService
.
queryAll
();
List
<
CommentEntity
>
commentEntities
=
commentService
.
queryAll
();
...
@@ -227,7 +236,6 @@ public class NotificationManager {
...
@@ -227,7 +236,6 @@ public class NotificationManager {
}
}
private
UserInfoResp
getUserInfo
(
String
authorId
)
{
private
UserInfoResp
getUserInfo
(
String
authorId
)
{
CommonResp
<
UserInfoResp
>
userInfoNewCommonResp
=
feignClientForFatools
.
queryUserInfoNew
(
authorId
);
CommonResp
<
UserInfoResp
>
userInfoNewCommonResp
=
feignClientForFatools
.
queryUserInfoNew
(
authorId
);
if
(
userInfoNewCommonResp
.
isNotSuccess
())
{
if
(
userInfoNewCommonResp
.
isNotSuccess
())
{
...
...
community-service/src/main/java/com/tanpu/community/manager/ThemeManager.java
View file @
b8835e19
...
@@ -32,6 +32,7 @@ import com.tanpu.community.api.beans.vo.ImagesDTO;
...
@@ -32,6 +32,7 @@ import com.tanpu.community.api.beans.vo.ImagesDTO;
import
com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp
;
import
com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp
;
import
com.tanpu.community.api.beans.vo.feign.newsfeed.NewsFeedResReq
;
import
com.tanpu.community.api.beans.vo.feign.newsfeed.NewsFeedResReq
;
import
com.tanpu.community.api.beans.vo.feign.newsfeed.NewsFeedSave4NewCommReq
;
import
com.tanpu.community.api.beans.vo.feign.newsfeed.NewsFeedSave4NewCommReq
;
import
com.tanpu.community.api.constants.BizConstant
;
import
com.tanpu.community.api.enums.BlockTypeEnum
;
import
com.tanpu.community.api.enums.BlockTypeEnum
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.api.enums.NotificationTypeEnum
;
import
com.tanpu.community.api.enums.NotificationTypeEnum
;
...
@@ -205,11 +206,6 @@ public class ThemeManager {
...
@@ -205,11 +206,6 @@ public class ThemeManager {
// 校验参数
// 校验参数
checkAttachment
(
req
.
getContent
());
checkAttachment
(
req
.
getContent
());
// 转播权限校验
// if (1 == req.getSyncToNewComm()) {
// liveRelayCheck(userId, req.getContent());
// }
// 保存主题表
// 保存主题表
ThemeEntity
themeEntity
=
new
ThemeEntity
();
ThemeEntity
themeEntity
=
new
ThemeEntity
();
...
@@ -414,8 +410,11 @@ public class ThemeManager {
...
@@ -414,8 +410,11 @@ public class ThemeManager {
themeService
.
insertTheme
(
themeEntity
);
themeService
.
insertTheme
(
themeEntity
);
// 消息通知
// 消息通知
ThemeEntity
formerTheme
=
themeService
.
queryByThemeId
(
req
.
getFormerThemeId
());
ThemeEntity
formerTheme
=
themeService
.
queryByThemeId
(
req
.
getFormerThemeId
());
notificationService
.
insertForward
(
userId
,
formerTheme
.
getAuthorId
(),
formerTheme
.
getThemeId
(),
req
.
getTopicId
(),
req
.
getContent
().
get
(
0
).
getValue
(),
themeEntity
.
getThemeId
());
if
(
formerTheme
!=
null
)
{
notificationService
.
putNotifyCache
(
formerTheme
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
FORWARD
);
notificationService
.
insertForward
(
userId
,
formerTheme
.
getAuthorId
(),
req
.
getFormerThemeId
(),
req
.
getTopicId
(),
req
.
getContent
().
get
(
0
).
getValue
(),
themeEntity
.
getThemeId
());
notificationService
.
putNotifyCache
(
formerTheme
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
FORWARD
);
}
}
else
{
}
else
{
// 修改
// 修改
...
@@ -423,6 +422,17 @@ public class ThemeManager {
...
@@ -423,6 +422,17 @@ public class ThemeManager {
themeEntity
.
setThemeId
(
req
.
getEditThemeId
());
themeEntity
.
setThemeId
(
req
.
getEditThemeId
());
this
.
evictThemeCache
(
req
.
getEditThemeId
());
this
.
evictThemeCache
(
req
.
getEditThemeId
());
}
}
// 转发同步评论并消息通知
if
(
req
.
getSyncComment
()
==
BizConstant
.
SyncCommentType
.
SYNC_COMMENT
)
{
String
commentId
=
commentService
.
forwardSyncComment
(
req
,
userId
);
ThemeEntity
formerTheme
=
themeService
.
queryByThemeId
(
req
.
getFormerThemeId
());
if
(
formerTheme
!=
null
)
{
notificationService
.
insert
(
userId
,
formerTheme
.
getAuthorId
(),
NotificationTypeEnum
.
COMMENT
,
commentId
,
req
.
getContent
().
get
(
0
).
getValue
());
notificationService
.
putNotifyCache
(
formerTheme
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
COMMENT
);
}
}
try
{
try
{
esService
.
insertOrUpdateTheme
(
ConvertUtil
.
convert
(
themeEntity
));
esService
.
insertOrUpdateTheme
(
ConvertUtil
.
convert
(
themeEntity
));
...
@@ -671,7 +681,7 @@ public class ThemeManager {
...
@@ -671,7 +681,7 @@ public class ThemeManager {
ThemeEntity
themeEntity
=
themeService
.
queryByThemeId
(
req
.
getThemeId
());
ThemeEntity
themeEntity
=
themeService
.
queryByThemeId
(
req
.
getThemeId
());
// 消息通知
// 消息通知
notificationService
.
insertLike
(
userId
,
themeEntity
.
getAuthorId
(),
req
.
getThemeId
());
notificationService
.
insertLike
(
userId
,
themeEntity
.
getAuthorId
(),
req
.
getThemeId
());
notificationService
.
putNotifyCache
(
themeEntity
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
LIKE
);
notificationService
.
putNotifyCache
(
themeEntity
.
getAuthorId
(),
userId
,
NotificationTypeEnum
.
LIKE
);
}
}
}
else
if
(
OperationTypeEnum
.
CANCEL
.
getCode
().
equals
(
req
.
getType
()))
{
}
else
if
(
OperationTypeEnum
.
CANCEL
.
getCode
().
equals
(
req
.
getType
()))
{
...
...
community-service/src/main/java/com/tanpu/community/service/CollectionService.java
View file @
b8835e19
...
@@ -27,14 +27,15 @@ public class CollectionService {
...
@@ -27,14 +27,15 @@ public class CollectionService {
private
CollectionMapper
collectionMapper
;
private
CollectionMapper
collectionMapper
;
// 若不存在则新增,若存在则修改deleteTag
// 若不存在则新增,若存在则修改deleteTag
@Transactional
@Transactional
public
boolean
saveOrUpdate
(
String
t
heme
Id
,
String
userId
,
CollectionTypeEnum
type
)
{
public
boolean
saveOrUpdate
(
String
t
arget
Id
,
String
userId
,
CollectionTypeEnum
type
)
{
// 判断记录是否存在,无论是否删除
// 判断记录是否存在,无论是否删除
LambdaQueryWrapper
<
CollectionEntity
>
queryWrapper
=
new
LambdaQueryWrapper
<
CollectionEntity
>()
LambdaQueryWrapper
<
CollectionEntity
>
queryWrapper
=
new
LambdaQueryWrapper
<
CollectionEntity
>()
.
eq
(
CollectionEntity:
:
getCollectionType
,
type
.
getCode
())
.
eq
(
CollectionEntity:
:
getCollectionType
,
type
.
getCode
())
.
eq
(
CollectionEntity:
:
getUserId
,
userId
)
.
eq
(
CollectionEntity:
:
getUserId
,
userId
)
.
eq
(
CollectionEntity:
:
getTargetId
,
t
heme
Id
);
.
eq
(
CollectionEntity:
:
getTargetId
,
t
arget
Id
);
CollectionEntity
queryCollection
=
collectionMapper
.
selectOne
(
queryWrapper
);
CollectionEntity
queryCollection
=
collectionMapper
.
selectOne
(
queryWrapper
);
if
(
queryCollection
!=
null
)
{
if
(
queryCollection
!=
null
)
{
queryCollection
.
setDeleteTag
(
DeleteTagEnum
.
NOT_DELETED
.
getCode
());
queryCollection
.
setDeleteTag
(
DeleteTagEnum
.
NOT_DELETED
.
getCode
());
...
@@ -45,11 +46,12 @@ public class CollectionService {
...
@@ -45,11 +46,12 @@ public class CollectionService {
CollectionEntity
entity
=
CollectionEntity
.
builder
()
CollectionEntity
entity
=
CollectionEntity
.
builder
()
.
collectionType
(
type
.
getCode
())
.
collectionType
(
type
.
getCode
())
.
userId
(
userId
)
.
userId
(
userId
)
.
targetId
(
t
heme
Id
)
.
targetId
(
t
arget
Id
)
.
collectionTime
(
LocalDateTime
.
now
())
.
collectionTime
(
LocalDateTime
.
now
())
.
build
();
.
build
();
collectionMapper
.
insert
(
entity
);
collectionMapper
.
insert
(
entity
);
return
true
;
return
true
;
}
}
}
}
...
...
community-service/src/main/java/com/tanpu/community/service/CommentService.java
View file @
b8835e19
...
@@ -6,6 +6,7 @@ import com.tanpu.biz.common.enums.community.CommentTypeEnum;
...
@@ -6,6 +6,7 @@ import com.tanpu.biz.common.enums.community.CommentTypeEnum;
import
com.tanpu.biz.common.enums.community.ReportStatusEnum
;
import
com.tanpu.biz.common.enums.community.ReportStatusEnum
;
import
com.tanpu.common.exception.BizException
;
import
com.tanpu.common.exception.BizException
;
import
com.tanpu.common.uuid.UuidGenHelper
;
import
com.tanpu.common.uuid.UuidGenHelper
;
import
com.tanpu.community.api.beans.req.theme.ForwardThemeReq
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.cache.RedisCache
;
import
com.tanpu.community.cache.RedisCache
;
import
com.tanpu.community.dao.entity.community.CommentEntity
;
import
com.tanpu.community.dao.entity.community.CommentEntity
;
...
@@ -44,7 +45,6 @@ public class CommentService {
...
@@ -44,7 +45,6 @@ public class CommentService {
//失效缓存
//失效缓存
evictThemeCache
(
commentEntity
.
getThemeId
());
evictThemeCache
(
commentEntity
.
getThemeId
());
}
}
...
@@ -163,4 +163,19 @@ public class CommentService {
...
@@ -163,4 +163,19 @@ public class CommentService {
public
CommentEntity
queryByCommentId
(
String
commentId
)
{
public
CommentEntity
queryByCommentId
(
String
commentId
)
{
return
commentMapper
.
selectOne
(
new
LambdaQueryWrapper
<
CommentEntity
>().
eq
(
CommentEntity:
:
getCommentId
,
commentId
));
return
commentMapper
.
selectOne
(
new
LambdaQueryWrapper
<
CommentEntity
>().
eq
(
CommentEntity:
:
getCommentId
,
commentId
));
}
}
public
String
forwardSyncComment
(
ForwardThemeReq
req
,
String
userId
)
{
CommentEntity
commentEntity
=
CommentEntity
.
builder
()
.
themeId
(
req
.
getFormerThemeId
())
.
authorId
(
userId
)
.
content
(
req
.
getContent
().
get
(
0
).
getValue
())
.
commentType
(
CommentTypeEnum
.
THEME
.
getCode
())
.
build
();
this
.
insertComment
(
commentEntity
);
return
commentEntity
.
getCommentId
();
}
}
}
community-service/src/main/java/com/tanpu/community/service/NotificationService.java
View file @
b8835e19
...
@@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
@Service
@Service
...
@@ -84,7 +85,7 @@ public class NotificationService {
...
@@ -84,7 +85,7 @@ public class NotificationService {
}
}
@Transactional
public
void
insertLike
(
String
operatorId
,
String
notifierId
,
String
targetId
)
{
public
void
insertLike
(
String
operatorId
,
String
notifierId
,
String
targetId
)
{
NotificationEntity
entity
=
notificationMapper
.
selectOne
(
new
LambdaQueryWrapper
<
NotificationEntity
>()
NotificationEntity
entity
=
notificationMapper
.
selectOne
(
new
LambdaQueryWrapper
<
NotificationEntity
>()
.
eq
(
NotificationEntity:
:
getMessageType
,
NotificationTypeEnum
.
LIKE
.
getCode
())
.
eq
(
NotificationEntity:
:
getMessageType
,
NotificationTypeEnum
.
LIKE
.
getCode
())
...
@@ -112,6 +113,34 @@ public class NotificationService {
...
@@ -112,6 +113,34 @@ public class NotificationService {
}
}
@Transactional
public
void
insertLikeComment
(
String
operatorId
,
String
notifierId
,
String
targetId
)
{
NotificationEntity
entity
=
notificationMapper
.
selectOne
(
new
LambdaQueryWrapper
<
NotificationEntity
>()
.
eq
(
NotificationEntity:
:
getMessageType
,
NotificationTypeEnum
.
COMMENT_LIKE
.
getCode
())
.
eq
(
NotificationEntity:
:
getTargetId
,
targetId
)
.
eq
(
NotificationEntity:
:
getNotifiedUserId
,
notifierId
));
if
(
entity
!=
null
)
{
NotificationLikeDO
notificationLikeDO
=
JsonUtil
.
toBean
(
entity
.
getContent
(),
NotificationLikeDO
.
class
);
notificationLikeDO
.
addItem
(
operatorId
);
entity
.
setContent
(
JsonUtil
.
toJson
(
notificationLikeDO
));
entity
.
setUpdateTime
(
LocalDateTime
.
now
());
notificationMapper
.
updateById
(
entity
);
}
else
{
NotificationLikeDO
notificationLikeDO
=
new
NotificationLikeDO
();
notificationLikeDO
.
addItem
(
operatorId
);
NotificationEntity
build
=
NotificationEntity
.
builder
().
operatorId
(
operatorId
)
.
notificationId
(
uuidGenHelper
.
getUuidStr
())
.
messageType
(
NotificationTypeEnum
.
COMMENT_LIKE
.
getCode
())
.
notifiedUserId
(
notifierId
)
.
content
(
JsonUtil
.
toJson
(
notificationLikeDO
))
.
targetId
(
targetId
)
.
operatorId
(
operatorId
)
.
build
();
insert
(
build
);
}
}
@Transactional
@Transactional
public
void
insert
(
NotificationEntity
entity
)
{
public
void
insert
(
NotificationEntity
entity
)
{
notificationMapper
.
insert
(
entity
);
notificationMapper
.
insert
(
entity
);
...
@@ -136,8 +165,12 @@ public class NotificationService {
...
@@ -136,8 +165,12 @@ public class NotificationService {
.
eq
(
NotificationEntity:
:
getNotificationId
,
lastId
));
.
eq
(
NotificationEntity:
:
getNotificationId
,
lastId
));
queryWrapper
.
lt
(
NotificationEntity:
:
getUpdateTime
,
lastOne
.
getCreateTime
());
queryWrapper
.
lt
(
NotificationEntity:
:
getUpdateTime
,
lastOne
.
getCreateTime
());
}
}
if
(!
NotificationTypeEnum
.
ALL
.
getCode
().
equals
(
type
))
{
if
(!
NotificationTypeEnum
.
ALL
.
getCode
().
equals
(
type
)
&&
!
NotificationTypeEnum
.
LIKE
.
getCode
().
equals
(
type
)
)
{
queryWrapper
.
eq
(
NotificationEntity:
:
getMessageType
,
type
);
queryWrapper
.
eq
(
NotificationEntity:
:
getMessageType
,
type
);
}
else
if
(
NotificationTypeEnum
.
LIKE
.
getCode
().
equals
(
type
))
{
// 类型2点赞返回评论点赞和主题点赞
queryWrapper
.
in
(
NotificationEntity:
:
getMessageType
,
Arrays
.
asList
(
NotificationTypeEnum
.
LIKE
.
getCode
(),
NotificationTypeEnum
.
COMMENT_LIKE
.
getCode
()));
}
}
return
notificationMapper
.
selectList
(
queryWrapper
);
return
notificationMapper
.
selectList
(
queryWrapper
);
}
}
...
@@ -182,28 +215,31 @@ public class NotificationService {
...
@@ -182,28 +215,31 @@ public class NotificationService {
public
void
putNotifyCache
(
String
notifyUserId
,
String
operatorId
,
NotificationTypeEnum
type
)
{
public
void
putNotifyCache
(
String
notifyUserId
,
String
operatorId
,
NotificationTypeEnum
type
)
{
UserInfoResp
userInfo
=
getUserInfo
(
operatorId
);
UserInfoResp
userInfo
=
getUserInfo
(
operatorId
);
redisCache
.
incr
(
RedisKeyConstant
.
MESSAGE_NOTIFY_COUNT
+
notifyUserId
);
redisCache
.
incr
(
RedisKeyConstant
.
MESSAGE_NOTIFY_COUNT
+
notifyUserId
);
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_MSG
+
notifyUserId
,
userInfo
.
getNickName
()
+
type
.
getType
()
+
"了你的内容"
,
60
*
60
*
24
*
30
);
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_TIME
+
notifyUserId
,
TimeUtils
.
format
(
LocalDateTime
.
now
()),
60
*
60
*
24
*
30
);
}
// 消息通知队列缓存
public
void
putNotifyCacheFollow
(
String
notifyUserId
,
String
operatorId
)
{
UserInfoResp
userInfo
=
getUserInfo
(
operatorId
);
redisCache
.
incr
(
RedisKeyConstant
.
MESSAGE_NOTIFY_COUNT
+
notifyUserId
);
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_MSG
+
notifyUserId
,
userInfo
.
getNickName
()
+
"关注了你"
,
60
*
60
*
24
*
30
);
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_TIME
+
notifyUserId
,
TimeUtils
.
format
(
LocalDateTime
.
now
()),
60
*
60
*
24
*
30
);
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_TIME
+
notifyUserId
,
TimeUtils
.
format
(
LocalDateTime
.
now
()),
60
*
60
*
24
*
30
);
if
(
NotificationTypeEnum
.
COMMENT_LIKE
.
equals
(
type
))
{
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_MSG
+
notifyUserId
,
userInfo
.
getNickName
()
+
"点赞了你的评论"
,
60
*
60
*
24
*
30
);
}
else
if
(
NotificationTypeEnum
.
FOLLOW
.
equals
(
type
))
{
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_MSG
+
notifyUserId
,
userInfo
.
getNickName
()
+
"关注了你"
,
60
*
60
*
24
*
30
);
}
else
{
redisCache
.
set
(
RedisKeyConstant
.
MESSAGE_NOTIFY_LAST_MSG
+
notifyUserId
,
userInfo
.
getNickName
()
+
type
.
getType
()
+
"了你的内容"
,
60
*
60
*
24
*
30
);
}
}
}
// 删除评论通知及缓存,并更新
// 删除评论及缓存
public
void
deleteCommentNotify
(
String
notifyUserId
,
String
operatorId
,
String
commentId
,
LocalDateTime
commentTime
)
{
public
void
deleteCommentNotify
(
String
notifyUserId
,
String
operatorId
,
String
commentId
,
LocalDateTime
commentTime
)
{
// 物理删除
// 物理删除
NotificationEntity
commentNotify
=
notificationMapper
.
selectOne
(
new
LambdaQueryWrapper
<
NotificationEntity
>().
eq
(
NotificationEntity:
:
getTargetId
,
commentId
));
NotificationEntity
commentNotify
=
notificationMapper
.
selectOne
(
new
LambdaQueryWrapper
<
NotificationEntity
>()
.
eq
(
NotificationEntity:
:
getTargetId
,
commentId
)
.
eq
(
NotificationEntity:
:
getOperatorId
,
operatorId
)
.
eq
(
NotificationEntity:
:
getNotifiedUserId
,
notifyUserId
)
.
eq
(
NotificationEntity:
:
getMessageType
,
NotificationTypeEnum
.
COMMENT
.
getCode
()));
NotificationEntity
last
=
notificationMapper
.
selectOne
(
new
LambdaQueryWrapper
<
NotificationEntity
>().
eq
(
NotificationEntity:
:
getNotifiedUserId
,
notifyUserId
)
NotificationEntity
last
=
notificationMapper
.
selectOne
(
new
LambdaQueryWrapper
<
NotificationEntity
>().
eq
(
NotificationEntity:
:
getNotifiedUserId
,
notifyUserId
)
.
orderByDesc
(
NotificationEntity:
:
getUpdateTime
)
.
orderByDesc
(
NotificationEntity:
:
getUpdateTime
)
.
last
(
"limit 1"
));
.
last
(
"limit 1"
));
if
(
commentNotify
==
null
||
last
==
null
){
return
;
}
notificationMapper
.
deleteById
(
commentNotify
.
getId
());
notificationMapper
.
deleteById
(
commentNotify
.
getId
());
// 如果删除的评论是最後一條通知,则需要从库中再找一条最新的
// 如果删除的评论是最後一條通知,则需要从库中再找一条最新的
if
(
last
.
getNotificationId
().
equals
(
commentNotify
.
getNotificationId
()))
{
if
(
last
.
getNotificationId
().
equals
(
commentNotify
.
getNotificationId
()))
{
...
@@ -231,7 +267,7 @@ public class NotificationService {
...
@@ -231,7 +267,7 @@ public class NotificationService {
// 处理更新数量
// 处理更新数量
String
lastTime
=
redisCache
.
get
(
RedisKeyConstant
.
MESSAGE_NOTIFY_QUERY_TIME
+
notifyUserId
);
String
lastTime
=
redisCache
.
get
(
RedisKeyConstant
.
MESSAGE_NOTIFY_QUERY_TIME
+
notifyUserId
);
LocalDateTime
lastQueryTime
=
StringUtils
.
isNotBlank
(
lastTime
)?
JsonUtil
.
toBean
(
lastTime
,
LocalDateTime
.
class
):
LocalDateTime
.
now
();
LocalDateTime
lastQueryTime
=
StringUtils
.
isNotBlank
(
lastTime
)
?
JsonUtil
.
toBean
(
lastTime
,
LocalDateTime
.
class
)
:
LocalDateTime
.
now
();
// 如果删除的评论时时间在红点提示时间内,则缓存数-1
// 如果删除的评论时时间在红点提示时间内,则缓存数-1
if
(
StringUtils
.
isBlank
(
lastTime
)
||
TimeUtils
.
lessThan
(
lastQueryTime
,
commentTime
))
{
if
(
StringUtils
.
isBlank
(
lastTime
)
||
TimeUtils
.
lessThan
(
lastQueryTime
,
commentTime
))
{
redisCache
.
decr
(
RedisKeyConstant
.
MESSAGE_NOTIFY_COUNT
+
notifyUserId
);
redisCache
.
decr
(
RedisKeyConstant
.
MESSAGE_NOTIFY_COUNT
+
notifyUserId
);
...
...
community-service/src/main/java/com/tanpu/community/service/ThemeService.java
View file @
b8835e19
...
@@ -2,10 +2,14 @@ package com.tanpu.community.service;
...
@@ -2,10 +2,14 @@ package com.tanpu.community.service;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.tanpu.biz.common.enums.RelTypeEnum
;
import
com.tanpu.biz.common.enums.community.ReportStatusEnum
;
import
com.tanpu.biz.common.enums.community.ReportStatusEnum
;
import
com.tanpu.common.exception.BizException
;
import
com.tanpu.common.exception.BizException
;
import
com.tanpu.common.redis.RedisHelper
;
import
com.tanpu.common.redis.RedisHelper
;
import
com.tanpu.common.util.JsonUtil
;
import
com.tanpu.common.uuid.UuidGenHelper
;
import
com.tanpu.common.uuid.UuidGenHelper
;
import
com.tanpu.community.api.beans.req.comment.CreateCommentReq
;
import
com.tanpu.community.api.beans.req.theme.ThemeContentReq
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.api.enums.ThemeTypeEnum
;
import
com.tanpu.community.api.enums.ThemeTypeEnum
;
import
com.tanpu.community.dao.entity.community.ThemeEntity
;
import
com.tanpu.community.dao.entity.community.ThemeEntity
;
...
@@ -19,6 +23,7 @@ import org.springframework.stereotype.Service;
...
@@ -19,6 +23,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.HashSet
;
...
@@ -275,4 +280,19 @@ public class ThemeService {
...
@@ -275,4 +280,19 @@ public class ThemeService {
.
eq
(
ThemeEntity:
:
getDeleteTag
,
DeleteTagEnum
.
NOT_DELETED
.
getCode
())
.
eq
(
ThemeEntity:
:
getDeleteTag
,
DeleteTagEnum
.
NOT_DELETED
.
getCode
())
.
orderByAsc
(
ThemeEntity:
:
getCreateTime
));
.
orderByAsc
(
ThemeEntity:
:
getCreateTime
));
}
}
public
String
commentSyncForward
(
CreateCommentReq
req
,
String
userId
)
{
// 评论构造theme content
List
<
ThemeContentReq
>
themeContentReqs
=
Arrays
.
asList
(
ThemeContentReq
.
builder
().
type
(
RelTypeEnum
.
TEXT
.
type
).
value
(
req
.
getComment
()).
build
());
ThemeContentReq
.
builder
().
type
(
RelTypeEnum
.
TEXT
.
type
).
value
(
req
.
getComment
()).
build
();
ThemeEntity
themeEntity
=
ThemeEntity
.
builder
()
.
content
(
JsonUtil
.
toJson
(
themeContentReqs
))
.
topicId
(
""
)
.
formerThemeId
(
req
.
getThemeId
())
.
authorId
(
userId
)
.
themeType
(
ThemeTypeEnum
.
FORWARD
.
getCode
())
.
build
();
this
.
insertTheme
(
themeEntity
);
return
themeEntity
.
getThemeId
();
}
}
}
community-service/src/main/java/com/tanpu/community/util/ConvertUtil.java
View file @
b8835e19
...
@@ -250,6 +250,12 @@ public class ConvertUtil {
...
@@ -250,6 +250,12 @@ public class ConvertUtil {
)
{
)
{
themeNotifyQo
.
setFormerThemeId
(
entity
.
getTargetId
());
themeNotifyQo
.
setFormerThemeId
(
entity
.
getTargetId
());
}
}
// 评、点赞评论 评论Id
if
(
entity
.
getMessageType
().
equals
(
NotificationTypeEnum
.
COMMENT_LIKE
.
getCode
())
||
entity
.
getMessageType
().
equals
(
NotificationTypeEnum
.
COMMENT
.
getCode
())
)
{
themeNotifyQo
.
setCommentId
(
entity
.
getTargetId
());
}
// 转发有话题信息
// 转发有话题信息
if
(
entity
.
getMessageType
().
equals
(
NotificationTypeEnum
.
FORWARD
.
getCode
()))
{
if
(
entity
.
getMessageType
().
equals
(
NotificationTypeEnum
.
FORWARD
.
getCode
()))
{
themeNotifyQo
.
setFormerThemeId
(
entity
.
getTargetId
());
themeNotifyQo
.
setFormerThemeId
(
entity
.
getTargetId
());
...
@@ -266,7 +272,8 @@ public class ConvertUtil {
...
@@ -266,7 +272,8 @@ public class ConvertUtil {
}
}
}
}
// 点赞需要聚合头像和人数
// 点赞需要聚合头像和人数
if
(
entity
.
getMessageType
().
equals
(
NotificationTypeEnum
.
LIKE
.
getCode
()))
{
if
(
entity
.
getMessageType
().
equals
(
NotificationTypeEnum
.
LIKE
.
getCode
())
||
entity
.
getMessageType
().
equals
(
NotificationTypeEnum
.
COMMENT_LIKE
.
getCode
()))
{
if
(!
StringUtils
.
isEmpty
(
entity
.
getContent
()))
{
if
(!
StringUtils
.
isEmpty
(
entity
.
getContent
()))
{
try
{
try
{
...
@@ -280,8 +287,6 @@ public class ConvertUtil {
...
@@ -280,8 +287,6 @@ public class ConvertUtil {
}
}
}
}
}
}
return
themeNotifyQo
;
return
themeNotifyQo
;
}
}
...
...
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