Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
ims-ci-test
Commits
e1e9d6d9
提交
e1e9d6d9
authored
6月 26, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
论坛相关
上级
7debfc0d
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
405 行增加
和
329 行删除
+405
-329
DynamicInfoDTO.java
...in/java/com/mmc/csf/release/forum/dto/DynamicInfoDTO.java
+6
-1
DynamicQO.java
...src/main/java/com/mmc/csf/release/forum/qo/DynamicQO.java
+22
-15
CommentAndReplyVO.java
.../java/com/mmc/csf/release/forum/vo/CommentAndReplyVO.java
+18
-19
CommentVO.java
...src/main/java/com/mmc/csf/release/forum/vo/CommentVO.java
+10
-10
DynamicVO.java
...src/main/java/com/mmc/csf/release/forum/vo/DynamicVO.java
+40
-28
MediaVO.java
...l/src/main/java/com/mmc/csf/release/forum/vo/MediaVO.java
+8
-7
UserBaseInfoVO.java
...ain/java/com/mmc/csf/release/forum/vo/UserBaseInfoVO.java
+16
-14
DynamicController.java
...ava/com/mmc/csf/release/controller/DynamicController.java
+38
-49
CommentDAO.java
...ice/src/main/java/com/mmc/csf/release/dao/CommentDAO.java
+54
-44
DynamicDAO.java
...ice/src/main/java/com/mmc/csf/release/dao/DynamicDAO.java
+12
-5
BaseDO.java
...c/main/java/com/mmc/csf/release/entity/common/BaseDO.java
+23
-0
ForumCommentDO.java
...java/com/mmc/csf/release/entity/forum/ForumCommentDO.java
+3
-12
ForumDynamicDO.java
...java/com/mmc/csf/release/entity/forum/ForumDynamicDO.java
+22
-20
ForumResourceDO.java
...ava/com/mmc/csf/release/entity/forum/ForumResourceDO.java
+10
-7
ForumEnum.java
...ce/src/main/java/com/mmc/csf/release/enums/ForumEnum.java
+35
-0
DynamicService.java
...main/java/com/mmc/csf/release/service/DynamicService.java
+43
-66
BackstageForumServiceImpl.java
...c/csf/release/service/impl/BackstageForumServiceImpl.java
+9
-25
DynamicServiceImpl.java
.../com/mmc/csf/release/service/impl/DynamicServiceImpl.java
+0
-0
DynamicMapper.xml
...service/src/main/resources/mapper/forum/DynamicMapper.xml
+36
-7
没有找到文件。
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/dto/DynamicInfoDTO.java
浏览文件 @
e1e9d6d9
...
...
@@ -8,6 +8,8 @@ import lombok.Builder;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @Author LW
*
...
...
@@ -25,11 +27,14 @@ public class DynamicInfoDTO {
private
String
description
;
@ApiModelProperty
(
value
=
"图片/视频"
)
private
MediaVO
mediaVO
;
private
List
<
MediaVO
>
mediaVO
;
@ApiModelProperty
(
value
=
"show: 0显示 1隐藏"
)
private
Integer
show
;
@ApiModelProperty
(
value
=
"发布动态用户信息"
)
private
UserBaseInfoVO
userBaseInfo
;
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userAccountId
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/qo/DynamicQO.java
浏览文件 @
e1e9d6d9
...
...
@@ -10,22 +10,29 @@ import java.io.Serializable;
/**
* @Author LW
*
@date 2023/6/19 11:12
* 概要:
*
*
@date 2023/6/19 11:12
概要:
*/
@Data
public
class
DynamicQO
implements
Serializable
{
@ApiModelProperty
(
value
=
"关键字"
,
required
=
true
,
example
=
"作者"
)
private
String
keyword
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
{
Page
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
,
required
=
true
,
example
=
"10"
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
{
Page
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageSize
;
public
void
buildCurrentPage
()
{
this
.
pageNo
=
(
pageNo
-
1
)
*
pageSize
;
}
@ApiModelProperty
(
value
=
"关键字"
,
required
=
false
,
example
=
"作者"
)
private
String
keyword
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
{
Page
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
,
required
=
true
,
example
=
"10"
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
{
Page
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageSize
;
public
void
buildCurrentPage
()
{
this
.
pageNo
=
(
pageNo
-
1
)
*
pageSize
;
}
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/vo/CommentAndReplyVO.java
浏览文件 @
e1e9d6d9
...
...
@@ -12,29 +12,28 @@ import java.util.List;
/**
* @Author LW
*
@date 2023/5/15 10:29
* 概要:评论信息参数
*
*
@date 2023/5/15 10:29
概要:评论信息参数
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
CommentAndReplyVO
implements
Serializable
{
@ApiModelProperty
(
value
=
"评论id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"动态id"
)
private
Integer
dynamicId
;
@ApiModelProperty
(
value
=
"父级评论id"
)
private
Integer
parentId
;
@ApiModelProperty
(
value
=
"动态发布人的id"
)
private
Integer
userId
;
@ApiModelProperty
(
value
=
"用户信息"
)
private
UserBaseInfoVO
userBaseInfoVO
;
@ApiModelProperty
(
value
=
"评论内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"评论点赞数"
)
private
Integer
likesCount
;
@ApiModelProperty
(
value
=
"评论时间"
)
private
Date
createTime
;
private
List
<
CommentAndReplyVO
>
children
;
@ApiModelProperty
(
value
=
"评论id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"用户信息"
)
private
UserBaseInfoVO
userBaseInfoVO
;
@ApiModelProperty
(
value
=
"评论内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"评论点赞数"
)
private
Integer
likesCount
;
@ApiModelProperty
(
value
=
"评论时间"
)
private
Date
createTime
;
private
List
<
CommentAndReplyVO
>
children
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/vo/CommentVO.java
浏览文件 @
e1e9d6d9
...
...
@@ -10,20 +10,20 @@ import java.io.Serializable;
/**
* @Author LW
*
@date 2023/5/15 10:29
* 概要:评论信息参数
*
*
@date 2023/5/15 10:29
概要:评论信息参数
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
CommentVO
implements
Serializable
{
@ApiModelProperty
(
value
=
"评论id
"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"动态id"
)
private
Integer
dynamicId
;
@ApiModelProperty
(
value
=
"父级评论id(不传则是评论动态 传了则是回复评论)"
)
private
Integer
parentId
;
@ApiModelProperty
(
value
=
"评论内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"根节点路径
"
)
private
String
rootPath
;
@ApiModelProperty
(
value
=
"动态id"
)
private
Integer
dynamicId
;
@ApiModelProperty
(
value
=
"评论内容"
)
private
String
content
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/vo/DynamicVO.java
浏览文件 @
e1e9d6d9
...
...
@@ -13,38 +13,50 @@ import java.util.List;
/**
* @Author LW
*
@date 2023/5/15 10:29
* 概要:动态信息参数
*
*
@date 2023/5/15 10:29
概要:动态信息参数
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
DynamicVO
implements
Serializable
{
@ApiModelProperty
(
value
=
"发布动态用户信息"
)
private
UserBaseInfoVO
userBaseInfo
;
@ApiModelProperty
(
value
=
"动态id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"动态标题"
)
private
String
title
;
@ApiModelProperty
(
value
=
"动态描述"
)
private
String
description
;
@ApiModelProperty
(
value
=
"位置信息"
)
private
String
location
;
@ApiModelProperty
(
value
=
"纬度"
)
private
BigDecimal
lat
;
@ApiModelProperty
(
value
=
"经度"
)
private
BigDecimal
lon
;
@ApiModelProperty
(
value
=
"图片/视频"
)
private
MediaVO
mediaVO
;
@ApiModelProperty
(
value
=
"点赞数"
)
private
Integer
likesCount
;
@ApiModelProperty
(
value
=
"评论数"
)
private
Integer
commentCount
;
@ApiModelProperty
(
value
=
"是否点赞"
)
private
Boolean
likes
;
@ApiModelProperty
(
value
=
"动态发布时间"
)
private
Date
dynamicPublishTime
;
@ApiModelProperty
(
value
=
"评论信息"
)
private
List
<
CommentAndReplyVO
>
commentAndReplyVO
;
@ApiModelProperty
(
value
=
"发布动态用户信息"
)
private
UserBaseInfoVO
userBaseInfo
;
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"动态id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"动态描述"
)
private
String
description
;
@ApiModelProperty
(
value
=
"位置信息"
)
private
String
location
;
@ApiModelProperty
(
value
=
"纬度"
)
private
BigDecimal
lat
;
@ApiModelProperty
(
value
=
"经度"
)
private
BigDecimal
lon
;
@ApiModelProperty
(
value
=
"媒体资源"
)
private
List
<
MediaVO
>
mediaVO
;
@ApiModelProperty
(
value
=
"点赞数"
)
private
Integer
likesCount
;
@ApiModelProperty
(
value
=
"评论数"
)
private
Integer
commentCount
;
@ApiModelProperty
(
value
=
"是否点赞"
)
private
Boolean
likes
;
@ApiModelProperty
(
value
=
"动态发布时间"
)
private
Date
dynamicPublishTime
;
@ApiModelProperty
(
value
=
"评论信息"
)
private
List
<
DynamicVO
>
commentAndReplyVO
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/vo/MediaVO.java
浏览文件 @
e1e9d6d9
...
...
@@ -2,24 +2,25 @@ package com.mmc.csf.release.forum.vo;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @Author LW
*
@date 2023/5/16 10:42
* 概要:图片或影像
*
*
@date 2023/5/16 10:42
概要:图片或影像
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
MediaVO
implements
Serializable
{
@ApiModelProperty
(
"图片"
)
private
List
<
String
>
picture
;
@ApiModelProperty
(
"视频"
)
private
String
videoUrl
;
@ApiModelProperty
(
"url"
)
private
String
url
;
@ApiModelProperty
(
"类型: 0:图片 1:视频"
)
private
Integer
type
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/vo/UserBaseInfoVO.java
浏览文件 @
e1e9d6d9
...
...
@@ -9,23 +9,25 @@ import java.io.Serializable;
/**
* @Author LW
*
@date 2023/5/29 15:30
* 概要:
*
*
@date 2023/5/29 15:30
概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
UserBaseInfoVO
implements
Serializable
{
@ApiModelProperty
(
value
=
"用户id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"用户昵称"
)
private
String
nickName
;
@ApiModelProperty
(
value
=
"用户头像"
)
private
String
userImg
;
@ApiModelProperty
(
value
=
"用户名称"
)
private
String
userName
;
@ApiModelProperty
(
value
=
"手机号"
)
private
String
phone
;
@ApiModelProperty
(
value
=
"UID"
)
private
String
uid
;
@ApiModelProperty
(
value
=
"用户昵称"
)
private
String
nickName
;
@ApiModelProperty
(
value
=
"用户头像"
)
private
String
userImg
;
@ApiModelProperty
(
value
=
"用户名称"
)
private
String
userName
;
@ApiModelProperty
(
value
=
"手机号"
)
private
String
phone
;
@ApiModelProperty
(
value
=
"UID"
)
private
String
uid
;
}
release-service/src/main/java/com/mmc/csf/release/controller/DynamicController.java
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
controller
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.release.forum.vo.CommentAndReplyVO
;
import
com.mmc.csf.release.forum.vo.CommentVO
;
import
com.mmc.csf.release.forum.vo.DynamicVO
;
import
com.mmc.csf.release.service.DynamicService
;
...
...
@@ -13,63 +12,53 @@ import javax.servlet.http.HttpServletRequest;
/**
* @Author LW
*
@date 2023/5/15 10:29
* 概要:动态信息控制层
*
*
@date 2023/5/15 10:29
概要:动态信息控制层
*/
@Api
(
tags
=
{
"web-小程序-论坛社区-模块"
})
@RestController
@RequestMapping
(
"/dynamic"
)
public
class
DynamicController
extends
BaseController
{
@Resource
private
DynamicService
dynamicService
;
@Resource
private
DynamicService
dynamicService
;
@ApiOperation
(
value
=
"动态发布"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/publish"
)
public
ResultBody
publishDynamic
(
@RequestBody
DynamicVO
dynamicVO
,
HttpServletRequest
request
)
{
return
dynamicService
.
insertDynamic
(
dynamicVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
@ApiOperation
(
value
=
"动态发布"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/publish"
)
public
ResultBody
publishDynamic
(
@RequestBody
DynamicVO
dynamicVO
,
HttpServletRequest
request
)
{
return
dynamicService
.
insertDynamic
(
dynamicVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
@ApiOperation
(
value
=
"点赞或取消点赞"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"/likeOrCancel"
)
public
ResultBody
likeOrCancel
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"动态id"
)
@RequestParam
Integer
dynamicId
)
{
return
dynamicService
.
likeDynamic
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
dynamicId
);
}
@ApiOperation
(
value
=
"点赞或取消点赞"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"/likeOrCancel"
)
public
ResultBody
likeOrCancel
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"动态id"
)
@RequestParam
Integer
dynamicId
)
{
return
dynamicService
.
likeDynamic
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
dynamicId
);
}
@ApiOperation
(
value
=
"评论动态或回复评论"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/comment"
)
public
ResultBody
commentDynamic
(
@RequestBody
CommentVO
commentVO
,
HttpServletRequest
request
)
{
return
dynamicService
.
commentDynamic
(
commentVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
@ApiOperation
(
value
=
"评论动态或回复评论"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/comment"
)
public
ResultBody
commentDynamic
(
@RequestBody
CommentVO
commentVO
,
HttpServletRequest
request
)
{
return
dynamicService
.
commentDynamic
(
commentVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
@ApiOperation
(
value
=
"删除评论"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@DeleteMapping
(
"/removeComment"
)
public
ResultBody
removeComment
(
@RequestParam
Integer
id
)
{
return
dynamicService
.
deleteComment
(
id
);
}
@ApiOperation
(
value
=
"删除评论"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@DeleteMapping
(
"/removeComment"
)
public
ResultBody
removeComment
(
@RequestParam
Integer
id
)
{
return
dynamicService
.
deleteComment
(
id
);
}
@ApiOperation
(
value
=
"根据动态查看评论"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
CommentAndReplyVO
.
class
)})
@GetMapping
(
"/byDynamic"
)
public
ResultBody
getCommentsByDynamic
(
@RequestParam
Integer
dynamicId
,
HttpServletRequest
request
)
{
return
ResultBody
.
success
(
dynamicService
.
getCommentAndReply
(
dynamicId
,
request
));
}
@ApiOperation
(
value
=
"动态详情"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
DynamicVO
.
class
)})
@GetMapping
(
"/dynamicDetails"
)
public
ResultBody
dynamicDetails
(
@RequestParam
Integer
dynamicId
,
HttpServletRequest
request
)
{
return
dynamicService
.
dynamicDetails
(
dynamicId
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
request
);
}
@ApiOperation
(
value
=
"动态列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
DynamicVO
.
class
)})
@GetMapping
(
"/dynamicList"
)
public
ResultBody
dynamicList
(
@RequestParam
Integer
pageNo
,
@RequestParam
Integer
pageSize
,
HttpServletRequest
request
)
{
return
ResultBody
.
success
(
dynamicService
.
dynamicList
(
pageNo
,
pageSize
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
request
));
}
@ApiOperation
(
value
=
"动态详情"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
DynamicVO
.
class
)})
@GetMapping
(
"/dynamicDetails"
)
public
ResultBody
dynamicDetails
(
@RequestParam
Integer
dynamicId
,
HttpServletRequest
request
)
{
return
dynamicService
.
dynamicDetails
(
dynamicId
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
request
);
}
}
release-service/src/main/java/com/mmc/csf/release/dao/CommentDAO.java
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
dao
;
import
com.mmc.csf.release.entity.forum.ForumDynamicDO
;
import
com.mmc.csf.release.forum.vo.CommentAndReplyVO
;
import
com.mmc.csf.release.forum.vo.CommentVO
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -9,52 +10,61 @@ import java.util.List;
/**
* @Author LW
*
@date 2023/5/15 10:29
* 概要:动态评论数据访问层
*
*
@date 2023/5/15 10:29
概要:动态评论数据访问层
*/
@Mapper
public
interface
CommentDAO
{
/**
* 插入评论
*
* @param userId 用户id
* @param dynamicId 动态id
* @param content 内容
*/
void
insertComment
(
@Param
(
"userId"
)
int
userId
,
@Param
(
"dynamicId"
)
int
dynamicId
,
@Param
(
"content"
)
String
content
);
/**
* 删除评论
*
* @param id id
* @return int
*/
int
deleteComment
(
int
id
);
/**
* 插入回复评论
*
* @param userId 用户id
* @param dynamicId 动态id
* @param content 内容
* @param parentId 父id
*/
void
insertReplyComment
(
@Param
(
"userId"
)
int
userId
,
@Param
(
"dynamicId"
)
int
dynamicId
,
@Param
(
"content"
)
String
content
,
@Param
(
"parentId"
)
Integer
parentId
);
/**
* 查询评论列表
*
* @param dynamicId 动态id
* @return {@link List}<{@link CommentAndReplyVO}>
*/
List
<
CommentAndReplyVO
>
selectCommentList
(
@Param
(
"dynamicId"
)
Integer
dynamicId
);
/**
* 查询子评论列表
*
* @param parentIds 父id
* @return {@link List}<{@link CommentVO}>
*/
List
<
CommentVO
>
selectSubCommentList
(
List
<
Integer
>
parentIds
);
/**
* 插入评论
*
* @param userId 用户id
* @param dynamicId 动态id
* @param content 内容
*/
void
insertComment
(
@Param
(
"userId"
)
int
userId
,
@Param
(
"dynamicId"
)
int
dynamicId
,
@Param
(
"content"
)
String
content
);
/**
* 删除评论
*
* @param id id
* @return int
*/
int
deleteComment
(
int
id
);
/**
* 插入回复评论
*
* @param userId 用户id
* @param dynamicId 动态id
* @param content 内容
* @param parentId 父id
*/
void
insertReplyComment
(
@Param
(
"userId"
)
int
userId
,
@Param
(
"dynamicId"
)
int
dynamicId
,
@Param
(
"content"
)
String
content
,
@Param
(
"parentId"
)
Integer
parentId
);
/**
* 查询评论列表
*
* @param dynamicId 动态id
* @return {@link List}<{@link CommentAndReplyVO}>
*/
List
<
CommentAndReplyVO
>
selectCommentList
(
@Param
(
"dynamicId"
)
Integer
dynamicId
);
/**
* 查询子评论列表
*
* @param parentIds 父id
* @return {@link List}<{@link CommentVO}>
*/
List
<
CommentVO
>
selectSubCommentList
(
List
<
Integer
>
parentIds
);
List
<
ForumDynamicDO
>
findByRoot
(
Integer
dynamicId
);
}
release-service/src/main/java/com/mmc/csf/release/dao/DynamicDAO.java
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
dao
;
import
com.mmc.csf.release.entity.forum.ForumDynamicDO
;
import
com.mmc.csf.release.entity.forum.Forum
Imag
eDO
;
import
com.mmc.csf.release.entity.forum.Forum
Resourc
eDO
;
import
com.mmc.csf.release.entity.forum.ForumVideoDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -92,9 +92,9 @@ public interface DynamicDAO {
* 列表动态图片
*
* @param ids id
* @return {@link List}<{@link Forum
Imag
eDO}>
* @return {@link List}<{@link Forum
Resourc
eDO}>
*/
List
<
Forum
Imag
eDO
>
listDynamicPicture
(
List
<
Integer
>
ids
);
List
<
Forum
Resourc
eDO
>
listDynamicPicture
(
List
<
Integer
>
ids
);
/**
* 动态视频列表
...
...
@@ -108,9 +108,9 @@ public interface DynamicDAO {
* 动态图片
*
* @param dynamicId 动态id
* @return {@link List}<{@link Forum
Imag
eDO}>
* @return {@link List}<{@link Forum
Resourc
eDO}>
*/
List
<
Forum
Imag
eDO
>
dynamicPicture
(
Integer
dynamicId
);
List
<
Forum
Resourc
eDO
>
dynamicPicture
(
Integer
dynamicId
);
/**
* 动态视频
...
...
@@ -119,4 +119,11 @@ public interface DynamicDAO {
* @return {@link ForumVideoDO}
*/
ForumVideoDO
dynamicVideo
(
Integer
dynamicId
);
void
insertResource
(
@Param
(
"dynamicId"
)
Integer
dynamicId
,
@Param
(
"type"
)
int
type
,
@Param
(
"url"
)
String
url
);
List
<
ForumResourceDO
>
listDynamicResources
(
Integer
dynamicId
);
List
<
ForumDynamicDO
>
getDynamicComment
(
String
dynamicId
);
}
release-service/src/main/java/com/mmc/csf/release/entity/common/BaseDO.java
0 → 100644
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
entity
.
common
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Author LW
*
* @date 2023/6/21 10:47 概要:基础实体
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
BaseDO
implements
Serializable
{
private
Integer
id
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
deleted
;
}
release-service/src/main/java/com/mmc/csf/release/entity/forum/ForumCommentDO.java
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
entity
.
forum
;
import
com.mmc.csf.release.entity.common.BaseDO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 评论表(ForumCommentDO)实体类
...
...
@@ -18,22 +18,13 @@ import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
class
ForumCommentDO
implements
Serializable
{
public
class
ForumCommentDO
extends
BaseDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
768897358613182410L
;
/** 评论id */
private
Integer
id
;
/** 用户id,外键,关联user表 */
private
Integer
userId
;
// todo userAccountId
private
Integer
userAccountId
;
/** 动态id,外键,关联dynamic表 */
private
Integer
dynamicId
;
/** 评论内容 */
private
String
content
;
/** 点赞数量 */
private
Integer
likesCount
;
/** 创建时间 */
private
Date
createTime
;
/** 修改时间 */
private
Date
updateTime
;
/** 是否删除,0表示未删除,1表示已删除 */
private
Integer
deleted
;
}
release-service/src/main/java/com/mmc/csf/release/entity/forum/ForumDynamicDO.java
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
entity
.
forum
;
import
com.mmc.csf.release.entity.common.BaseDO
;
import
com.mmc.csf.release.forum.dto.DynamicInfoDTO
;
import
com.mmc.csf.release.forum.vo.DynamicVO
;
import
lombok.AllArgsConstructor
;
...
...
@@ -9,7 +10,6 @@ import lombok.experimental.Accessors;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 动态信息表(ForumDynamicDO)实体类
...
...
@@ -21,16 +21,12 @@ import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
class
ForumDynamicDO
implements
Serializable
{
public
class
ForumDynamicDO
extends
BaseDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
570379773690905364L
;
/** 主键,自增长 */
private
Integer
id
;
/** 版本字段pid */
private
Integer
pid
;
// todo 修改为 version
/** 动态标题 */
private
String
title
;
// todo 删除
/** 版本字段 */
private
Integer
version
;
/** 发布用户ID */
private
Integer
user
Id
;
// todo 改userAccountId
private
Integer
user
AccountId
;
/** 动态描述 */
private
String
description
;
/** 发布动态具体位置 */
...
...
@@ -43,15 +39,10 @@ public class ForumDynamicDO implements Serializable {
private
Integer
likesCount
;
/** 评论数 */
private
Integer
commentsCount
;
/** 创建时间 */
private
Date
createTime
;
/** 修改时间 */
private
Date
updateTime
;
/** 是否删除,默认为0表示未删除 */
private
Integer
deleted
;
/** 记录父节点id */
private
String
rootPath
;
public
ForumDynamicDO
(
DynamicVO
dynamicVO
)
{
this
.
title
=
dynamicVO
.
getTitle
();
this
.
description
=
dynamicVO
.
getDescription
();
this
.
location
=
dynamicVO
.
getLocation
();
this
.
lat
=
dynamicVO
.
getLat
();
...
...
@@ -60,19 +51,30 @@ public class ForumDynamicDO implements Serializable {
public
DynamicVO
buildDynamicVO
()
{
return
DynamicVO
.
builder
()
.
id
(
id
)
.
id
(
this
.
getId
())
.
userAccountId
(
userAccountId
)
.
description
(
description
)
.
commentCount
(
commentsCount
)
.
likesCount
(
likesCount
)
.
lat
(
lat
)
.
lon
(
lon
)
.
location
(
location
)
.
title
(
title
)
.
dynamicPublishTime
(
createTime
)
.
dynamicPublishTime
(
this
.
getCreateTime
())
.
build
();
}
public
DynamicInfoDTO
buildDynamicInfoDTO
()
{
return
DynamicInfoDTO
.
builder
().
id
(
id
).
description
(
description
).
show
(
deleted
).
build
();
return
DynamicInfoDTO
.
builder
()
.
id
(
this
.
getId
())
.
userAccountId
(
userAccountId
)
.
description
(
description
)
.
show
(
this
.
getDeleted
())
.
build
();
}
public
void
defaultInfo
()
{
this
.
lon
=
null
;
this
.
lat
=
null
;
this
.
location
=
null
;
}
}
release-service/src/main/java/com/mmc/csf/release/entity/forum/Forum
Imag
eDO.java
→
release-service/src/main/java/com/mmc/csf/release/entity/forum/Forum
Resourc
eDO.java
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
entity
.
forum
;
import
com.mmc.csf.release.forum.vo.MediaVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -9,7 +10,7 @@ import java.io.Serializable;
import
java.util.Date
;
/**
* 动态图片表(Forum
Imag
eDO)实体类
* 动态图片表(Forum
Resourc
eDO)实体类
*
* @author lw
* @since 2023-05-16 09:57:50
...
...
@@ -18,18 +19,20 @@ import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
class
Forum
Imag
eDO
implements
Serializable
{
public
class
Forum
Resourc
eDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
678578415154893126L
;
/** 主键,自增长 */
private
Integer
id
;
// todo 删除
/** 动态ID,必填 */
private
Integer
dynamicId
;
/** 图片URL,必填 */
private
String
u
rl
;
private
String
resourceU
rl
;
/** 创建时间 */
private
Date
createTime
;
/** 修改时间 */
private
Date
updateTime
;
/** 是否删除,默认为0表示未删除 */
private
Integer
deleted
;
// todo 删除
/** 类型 */
private
Integer
type
;
public
MediaVO
buildMedia
()
{
return
MediaVO
.
builder
().
type
(
type
).
url
(
resourceUrl
).
build
();
}
}
release-service/src/main/java/com/mmc/csf/release/enums/ForumEnum.java
0 → 100644
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
enums
;
/**
* @Author LW
*
* @date 2023/6/21 17:15 概要:论坛枚举
*/
public
enum
ForumEnum
{
PICTURE
(
0
,
"图片"
),
VIDEO
(
1
,
"视频"
);
private
Integer
code
;
private
String
name
;
ForumEnum
(
Integer
code
,
String
name
)
{
this
.
code
=
code
;
this
.
name
=
name
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
Integer
getCode
()
{
return
this
.
code
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getName
()
{
return
this
.
name
;
}
}
release-service/src/main/java/com/mmc/csf/release/service/DynamicService.java
浏览文件 @
e1e9d6d9
package
com
.
mmc
.
csf
.
release
.
service
;
import
com.mmc.csf.common.util.page.PageResult
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.release.forum.vo.CommentAndReplyVO
;
import
com.mmc.csf.release.forum.vo.CommentVO
;
import
com.mmc.csf.release.forum.vo.DynamicVO
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
* @Author LW
*
@date 2023/5/15 10:29
* 概要:动态信息service层
*
*
@date 2023/5/15 10:29
概要:动态信息service层
*/
public
interface
DynamicService
{
/**
* 插入动态
*
* @param dynamicVO 动态
* @return {@link ResultBody}
*/
ResultBody
insertDynamic
(
DynamicVO
dynamicVO
,
Integer
userAccountId
);
/**
* 点赞动态
*
* @param userId 用户id
* @param dynamicId 动态id
* @return {@link ResultBody}
*/
ResultBody
likeDynamic
(
Integer
userId
,
Integer
dynamicId
);
/**
* 评论动态
*
* @param commentVO 评论信息
* @return {@link ResultBody}
*/
ResultBody
commentDynamic
(
CommentVO
commentVO
,
Integer
userAccountId
);
/**
* 删除评论
*
* @param id id
* @return {@link ResultBody}
*/
ResultBody
deleteComment
(
Integer
id
);
/**
* 根据动态查看评论
*
* @param dynamicId 动态id
* @param request
* @return {@link List}<{@link CommentVO}>
*/
List
<
CommentAndReplyVO
>
getCommentAndReply
(
Integer
dynamicId
,
HttpServletRequest
request
);
/**
* 动态列表
*
* @param pageNo 页面
* @param pageSize 页面大小
* @param userId
* @param request
* @return {@link List}<{@link DynamicVO}>
*/
PageResult
dynamicList
(
Integer
pageNo
,
Integer
pageSize
,
Integer
userId
,
HttpServletRequest
request
);
/**
* 动态细节
*
* @param dynamicId 动态id
* @param userId 用户id
* @return {@link ResultBody}
*/
ResultBody
dynamicDetails
(
Integer
dynamicId
,
Integer
userId
,
HttpServletRequest
request
);
/**
* 插入动态
*
* @param dynamicVO 动态
* @return {@link ResultBody}
*/
ResultBody
insertDynamic
(
DynamicVO
dynamicVO
,
Integer
userAccountId
);
/**
* 点赞动态
*
* @param userId 用户id
* @param dynamicId 动态id
* @return {@link ResultBody}
*/
ResultBody
likeDynamic
(
Integer
userId
,
Integer
dynamicId
);
/**
* 评论动态
*
* @param commentVO 评论信息
* @return {@link ResultBody}
*/
ResultBody
commentDynamic
(
CommentVO
commentVO
,
Integer
userAccountId
);
/**
* 删除评论
*
* @param id id
* @return {@link ResultBody}
*/
ResultBody
deleteComment
(
Integer
id
);
/**
* 动态细节
*
* @param dynamicId 动态id
* @param userId 用户id
* @return {@link ResultBody}
*/
ResultBody
dynamicDetails
(
Integer
dynamicId
,
Integer
userId
,
HttpServletRequest
request
);
}
release-service/src/main/java/com/mmc/csf/release/service/impl/BackstageForumServiceImpl.java
浏览文件 @
e1e9d6d9
...
...
@@ -2,18 +2,16 @@ package com.mmc.csf.release.service.impl;
import
com.mmc.csf.common.util.page.PageResult
;
import
com.mmc.csf.infomation.dto.UserAccountSimpleDTO
;
import
com.mmc.csf.release.auth.qo.BUserAccountQO
;
import
com.mmc.csf.release.auth.qo.UserAccountQO
;
import
com.mmc.csf.release.constant.TokenConstant
;
import
com.mmc.csf.release.dao.BackstageForumDao
;
import
com.mmc.csf.release.dao.DynamicDAO
;
import
com.mmc.csf.release.entity.forum.ForumDynamicDO
;
import
com.mmc.csf.release.entity.forum.Forum
Imag
eDO
;
import
com.mmc.csf.release.entity.forum.Forum
Resourc
eDO
;
import
com.mmc.csf.release.entity.forum.ForumVideoDO
;
import
com.mmc.csf.release.feign.UserAppApi
;
import
com.mmc.csf.release.forum.dto.DynamicInfoDTO
;
import
com.mmc.csf.release.forum.qo.DynamicQO
;
import
com.mmc.csf.release.forum.vo.MediaVO
;
import
com.mmc.csf.release.forum.vo.UserBaseInfoVO
;
import
com.mmc.csf.release.service.BackstageForumService
;
import
org.apache.commons.collections4.CollectionUtils
;
...
...
@@ -47,7 +45,7 @@ public class BackstageForumServiceImpl implements BackstageForumService {
userAccountQO
.
setKeyword
(
dynamic
.
getKeyword
());
// 获取筛选的用户id
List
<
UserAccountSimpleDTO
>
userAccountSimpleDTOS
=
userAppApi
.
feignListAppUserAccount
(
userAccountQO
,
request
.
getHeader
(
TokenConstant
.
TOKEN
));
userAppApi
.
feignListAppUserAccount
(
userAccountQO
,
request
.
getHeader
(
TokenConstant
.
TOKEN
));
if
(
CollectionUtils
.
isNotEmpty
(
userAccountSimpleDTOS
))
{
// 获取用户id
userIds
=
...
...
@@ -71,20 +69,20 @@ public class BackstageForumServiceImpl implements BackstageForumService {
List
<
Integer
>
ids
=
dynamicList
.
stream
().
map
(
ForumDynamicDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 根据id集合查询图片
List
<
Forum
Imag
eDO
>
forumImageList
=
dynamicDAO
.
listDynamicPicture
(
ids
);
Map
<
Integer
,
List
<
Forum
Imag
eDO
>>
ImageMap
=
forumImageList
.
stream
().
collect
(
Collectors
.
groupingBy
(
Forum
Imag
eDO:
:
getDynamicId
));
List
<
Forum
Resourc
eDO
>
forumImageList
=
dynamicDAO
.
listDynamicPicture
(
ids
);
Map
<
Integer
,
List
<
Forum
Resourc
eDO
>>
ImageMap
=
forumImageList
.
stream
().
collect
(
Collectors
.
groupingBy
(
Forum
Resourc
eDO:
:
getDynamicId
));
// 获取视频信息
List
<
ForumVideoDO
>
forumVideoList
=
dynamicDAO
.
listDynamicVideo
(
ids
);
// 获取查询到的列表用户信息
// 获取用户信息
Set
<
Integer
>
ListUserIds
=
dynamicList
.
stream
().
map
(
ForumDynamicDO:
:
getUserId
).
collect
(
Collectors
.
toSet
());
dynamicList
.
stream
().
map
(
ForumDynamicDO:
:
getUser
Account
Id
).
collect
(
Collectors
.
toSet
());
List
<
Integer
>
userIdList
=
new
ArrayList
<>(
ListUserIds
);
UserAccountQO
accountQO
=
new
UserAccountQO
();
accountQO
.
setUserIds
(
userIdList
);
List
<
UserAccountSimpleDTO
>
userAccountSimpleList
=
userAppApi
.
feignListAppUserAccount
(
accountQO
,
request
.
getHeader
(
TokenConstant
.
TOKEN
));
userAppApi
.
feignListAppUserAccount
(
accountQO
,
request
.
getHeader
(
TokenConstant
.
TOKEN
));
Map
<
Integer
,
UserAccountSimpleDTO
>
userAccountInfoMap
=
userAccountSimpleList
.
stream
()
.
collect
(
Collectors
.
toMap
(
UserAccountSimpleDTO:
:
getId
,
Function
.
identity
()));
...
...
@@ -93,23 +91,10 @@ public class BackstageForumServiceImpl implements BackstageForumService {
.
map
(
d
->
{
DynamicInfoDTO
dynamicInfoDTO
=
d
.
buildDynamicInfoDTO
();
MediaVO
mediaVO
=
new
MediaVO
();
if
(
CollectionUtils
.
isNotEmpty
(
ImageMap
.
get
(
d
.
getId
())))
{
mediaVO
.
setPicture
(
ImageMap
.
get
(
d
.
getId
()).
stream
()
.
map
(
ForumImageDO:
:
getUrl
)
.
collect
(
Collectors
.
toList
()));
}
for
(
ForumVideoDO
forumVideoDO
:
forumVideoList
)
{
if
(
forumVideoDO
.
getDynamicId
().
equals
(
d
.
getId
()))
{
mediaVO
.
setVideoUrl
(
forumVideoDO
.
getUrl
());
break
;
}
}
UserAccountSimpleDTO
userAccountSimpleDTO
=
userAccountInfoMap
.
get
(
d
.
getUserId
());
UserAccountSimpleDTO
userAccountSimpleDTO
=
userAccountInfoMap
.
get
(
d
.
getUserAccountId
());
if
(
userAccountSimpleDTO
!=
null
)
{
UserBaseInfoVO
userBaseInfoVO
=
new
UserBaseInfoVO
();
userBaseInfoVO
.
setId
(
d
.
getUserId
());
userBaseInfoVO
.
setNickName
(
userAccountSimpleDTO
.
getNickName
());
userBaseInfoVO
.
setUserImg
(
userAccountSimpleDTO
.
getUserImg
());
userBaseInfoVO
.
setUserName
(
userAccountSimpleDTO
.
getUserName
());
...
...
@@ -117,7 +102,6 @@ public class BackstageForumServiceImpl implements BackstageForumService {
userBaseInfoVO
.
setUid
(
userAccountSimpleDTO
.
getUid
());
dynamicInfoDTO
.
setUserBaseInfo
(
userBaseInfoVO
);
}
dynamicInfoDTO
.
setMediaVO
(
mediaVO
);
return
dynamicInfoDTO
;
})
.
collect
(
Collectors
.
toList
());
...
...
release-service/src/main/java/com/mmc/csf/release/service/impl/DynamicServiceImpl.java
浏览文件 @
e1e9d6d9
差异被折叠。
点击展开。
release-service/src/main/resources/mapper/forum/DynamicMapper.xml
浏览文件 @
e1e9d6d9
...
...
@@ -14,8 +14,12 @@
</insert>
<insert
id=
"insertDynamic"
keyProperty=
"id"
useGeneratedKeys=
"true"
parameterType=
"com.mmc.csf.release.entity.forum.ForumDynamicDO"
>
INSERT INTO forum_dynamic(title, user_id, description, location, lat, lon)
VALUES (#{title}, #{userId}, #{description}, #{location}, #{lat}, #{lon})
INSERT INTO forum_dynamic(user_account_id, description, location, lat, lon, root_path)
VALUES (#{userAccountId}, #{description}, #{location}, #{lat}, #{lon}, #{rootPath})
</insert>
<insert
id=
"insertResource"
>
insert into forum_resource(dynamic_id, resource_url, `type`)
values (#{dynamicId}, #{url}, #{type})
</insert>
<update
id=
"updateDynamicLikeCount"
>
update forum_dynamic
...
...
@@ -40,9 +44,9 @@
</update>
<select
id=
"getDynamicInfo"
resultType=
"com.mmc.csf.release.entity.forum.ForumDynamicDO"
>
select id,
pid
,
title
,
user_id
,
version
,
user_account_id
,
root_path
,
description,
location,
lat,
...
...
@@ -77,7 +81,7 @@
LIMIT #{itemIndex}, #{pageSize}
</select>
<select
id=
"listDynamicPicture"
resultType=
"com.mmc.csf.release.entity.forum.Forum
Imag
eDO"
>
<select
id=
"listDynamicPicture"
resultType=
"com.mmc.csf.release.entity.forum.Forum
Resourc
eDO"
>
select id, url , dynamic_id
from forum_image
where
...
...
@@ -95,7 +99,7 @@
#{item}
</foreach>
</select>
<select
id=
"dynamicPicture"
resultType=
"com.mmc.csf.release.entity.forum.Forum
Imag
eDO"
>
<select
id=
"dynamicPicture"
resultType=
"com.mmc.csf.release.entity.forum.Forum
Resourc
eDO"
>
select id,
dynamic_id,
url
...
...
@@ -111,4 +115,28 @@
where dynamic_id = #{dynamicId}
and is_deleted = 0
</select>
<select
id=
"listDynamicResources"
resultType=
"com.mmc.csf.release.entity.forum.ForumResourceDO"
>
select resource_url,
`type`,
create_time,
update_time
from forum_resource
where dynamic_id = #{dynamicId}
</select>
<select
id=
"getDynamicComment"
resultType=
"com.mmc.csf.release.entity.forum.ForumDynamicDO"
>
select id,
version,
user_account_id,
root_path,
description,
location,
lat,
lon,
likes_count,
comments_count,
create_time
from forum_dynamic
where root_path = #{dynamicId}
and is_deleted = 0
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论