Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
ims-ci-test
Commits
0ccf98d1
提交
0ccf98d1
authored
9月 26, 2023
作者:
张小凤
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
GambitDao(update)
上级
28b9a5a4
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
202 行增加
和
13 行删除
+202
-13
DynamicVO.java
...src/main/java/com/mmc/csf/release/forum/vo/DynamicVO.java
+6
-0
ForumDynamicGambitDTO.java
...com/mmc/csf/release/gambit/dto/ForumDynamicGambitDTO.java
+91
-0
GambitController.java
...java/com/mmc/csf/release/controller/GambitController.java
+4
-2
GambitDao.java
...c/main/java/com/mmc/csf/release/dao/gambit/GambitDao.java
+4
-0
ForumCountDO.java
...n/java/com/mmc/csf/release/entity/forum/ForumCountDO.java
+3
-0
ForumDynamicGambitDO.java
...om/mmc/csf/release/entity/forum/ForumDynamicGambitDO.java
+26
-2
GambitService.java
...ava/com/mmc/csf/release/service/gambit/GambitService.java
+1
-1
GambitServiceImpl.java
...mc/csf/release/service/gambit/impl/GambitServiceImpl.java
+8
-2
DynamicServiceImpl.java
.../com/mmc/csf/release/service/impl/DynamicServiceImpl.java
+8
-2
GambitDao.xml
...se-service/src/main/resources/mapper/gambit/GambitDao.xml
+51
-4
没有找到文件。
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/forum/vo/DynamicVO.java
浏览文件 @
0ccf98d1
...
@@ -85,5 +85,11 @@ public class DynamicVO implements Serializable {
...
@@ -85,5 +85,11 @@ public class DynamicVO implements Serializable {
private
List
<
ForumGambitDTO
>
forumGambitDTOList
;
private
List
<
ForumGambitDTO
>
forumGambitDTOList
;
@ApiModelProperty
(
value
=
"转发数"
)
private
Integer
transpond
;
@ApiModelProperty
(
value
=
"关注状态"
)
private
Boolean
status
;
}
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/gambit/dto/ForumDynamicGambitDTO.java
0 → 100644
浏览文件 @
0ccf98d1
package
com
.
mmc
.
csf
.
release
.
gambit
.
dto
;
import
com.mmc.csf.release.forum.vo.DynamicVO
;
import
com.mmc.csf.release.forum.vo.ForumReviewVO
;
import
com.mmc.csf.release.forum.vo.MediaVO
;
import
com.mmc.csf.release.forum.vo.UserBaseInfoVO
;
import
com.mmc.csf.release.model.group.Create
;
import
com.mmc.csf.release.model.group.Update
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author small
* @Date 2023/9/26 15:32
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
ForumDynamicGambitDTO
{
@ApiModelProperty
(
value
=
"话题名称"
,
example
=
"#深圳暴雨,#深圳大雨"
)
private
List
<
String
>
gambitName
;
@ApiModelProperty
(
value
=
"话题图标"
,
example
=
"小程序给默认值"
)
@NotBlank
(
message
=
"话题图标不能为空"
,
groups
=
{
Create
.
class
,
Update
.
class
})
private
String
gambitIcon
;
@ApiModelProperty
(
value
=
"话题封面"
,
example
=
"小程序给默认封面"
)
@NotBlank
(
message
=
"话题封面不能为空"
,
groups
=
{
Create
.
class
,
Update
.
class
})
private
String
gambitCover
;
@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
;
@ApiModelProperty
(
"评论"
)
private
ForumReviewVO
forumReviewVO
;
@ApiModelProperty
(
value
=
"话题列表"
)
private
List
<
ForumGambitDTO
>
forumGambitDTOList
;
@ApiModelProperty
(
value
=
"转发数"
)
private
Integer
transpond
;
}
release-service/src/main/java/com/mmc/csf/release/controller/GambitController.java
浏览文件 @
0ccf98d1
...
@@ -2,6 +2,7 @@ package com.mmc.csf.release.controller;
...
@@ -2,6 +2,7 @@ package com.mmc.csf.release.controller;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.release.entity.forum.*
;
import
com.mmc.csf.release.entity.forum.*
;
import
com.mmc.csf.release.gambit.dto.ForumDynamicGambitDTO
;
import
com.mmc.csf.release.gambit.dto.ForumGambitDTO
;
import
com.mmc.csf.release.gambit.dto.ForumGambitDTO
;
import
com.mmc.csf.release.gambit.qo.*
;
import
com.mmc.csf.release.gambit.qo.*
;
import
com.mmc.csf.release.gambit.vo.ForumGambitVO
;
import
com.mmc.csf.release.gambit.vo.ForumGambitVO
;
...
@@ -126,7 +127,7 @@ public class GambitController extends BaseController{
...
@@ -126,7 +127,7 @@ public class GambitController extends BaseController{
@ApiOperation
(
value
=
"赞过"
)
@ApiOperation
(
value
=
"赞过"
)
@PostMapping
(
"/liked"
)
@PostMapping
(
"/liked"
)
public
ResultBody
<
ForumDynamicGambitDO
>
liked
(
HttpServletRequest
request
,
@RequestBody
UserTopicDynamicsQO
userTopicDynamicsQO
){
public
ResultBody
<
ForumDynamicGambitD
T
O
>
liked
(
HttpServletRequest
request
,
@RequestBody
UserTopicDynamicsQO
userTopicDynamicsQO
){
return
ResultBody
.
success
(
gambitService
.
liked
(
userTopicDynamicsQO
));
return
ResultBody
.
success
(
gambitService
.
liked
(
userTopicDynamicsQO
));
}
}
...
@@ -146,7 +147,8 @@ public class GambitController extends BaseController{
...
@@ -146,7 +147,8 @@ public class GambitController extends BaseController{
@ApiOperation
(
value
=
"单个用户信息"
)
@ApiOperation
(
value
=
"单个用户信息"
)
@GetMapping
(
"/userMessage"
)
@GetMapping
(
"/userMessage"
)
public
ResultBody
<
ForumCountDO
>
userMessage
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"userAccountId"
)
@RequestParam
Integer
userAccountId
){
public
ResultBody
<
ForumCountDO
>
userMessage
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"userAccountId"
)
@RequestParam
Integer
userAccountId
){
return
gambitService
.
userMessage
(
userAccountId
);
Integer
userId
=
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
();
return
gambitService
.
userMessage
(
userAccountId
,
userId
);
}
}
...
...
release-service/src/main/java/com/mmc/csf/release/dao/gambit/GambitDao.java
浏览文件 @
0ccf98d1
...
@@ -123,4 +123,8 @@ public interface GambitDao {
...
@@ -123,4 +123,8 @@ public interface GambitDao {
ForumReviewVO
selectForumReviewMessage
(
Integer
dynamicId
);
ForumReviewVO
selectForumReviewMessage
(
Integer
dynamicId
);
int
replyCount
(
ForumReviewDO
forumReviewDO
);
int
replyCount
(
ForumReviewDO
forumReviewDO
);
int
selectCountAttention
(
Integer
userId
);
int
selectCountAttentions
(
Integer
userAccountId
,
Integer
userId
);
}
}
release-service/src/main/java/com/mmc/csf/release/entity/forum/ForumCountDO.java
浏览文件 @
0ccf98d1
...
@@ -38,6 +38,9 @@ public class ForumCountDO implements Serializable {
...
@@ -38,6 +38,9 @@ public class ForumCountDO implements Serializable {
@ApiModelProperty
(
value
=
"修改时间"
)
@ApiModelProperty
(
value
=
"修改时间"
)
private
String
updateTime
;
private
String
updateTime
;
@ApiModelProperty
(
value
=
"是否关注"
,
example
=
"true表示已关注 null没有关注"
)
private
Boolean
status
;
}
}
release-service/src/main/java/com/mmc/csf/release/entity/forum/ForumDynamicGambitDO.java
浏览文件 @
0ccf98d1
package
com
.
mmc
.
csf
.
release
.
entity
.
forum
;
package
com
.
mmc
.
csf
.
release
.
entity
.
forum
;
import
com.mmc.csf.release.entity.gambit.ForumGambitDO
;
import
com.mmc.csf.release.entity.gambit.ForumGambitDO
;
import
com.mmc.csf.release.forum.vo.ForumReviewVO
;
import
com.mmc.csf.release.forum.vo.MediaVO
;
import
com.mmc.csf.release.gambit.dto.ForumDynamicGambitDTO
;
import
com.mmc.csf.release.gambit.dto.ForumGambitDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -41,10 +45,30 @@ public class ForumDynamicGambitDO implements Serializable {
...
@@ -41,10 +45,30 @@ public class ForumDynamicGambitDO implements Serializable {
private
List
<
ForumResourceDO
>
forumResourceDOList
;
private
List
<
ForumResourceDO
>
forumResourceDOList
;
@ApiModelProperty
(
"话题"
)
@ApiModelProperty
(
"话题"
)
private
List
<
ForumGambitDO
>
forumGambitDOList
;
private
List
<
ForumGambitD
T
O
>
forumGambitDOList
;
@ApiModelProperty
(
"评论"
)
@ApiModelProperty
(
"评论"
)
private
ForumReviewDO
forumReviewDO
;
private
ForumReviewVO
ForumReviewDO
;
@ApiModelProperty
(
value
=
"媒体资源"
)
private
List
<
MediaVO
>
mediaVO
;
public
ForumDynamicGambitDTO
buildForumDynamicGambitDTO
(){
return
ForumDynamicGambitDTO
.
builder
()
.
description
(
this
.
description
)
.
userAccountId
(
this
.
userAccountId
)
.
likesCount
(
this
.
likesCount
)
.
commentCount
(
this
.
commentsCount
)
.
transpond
(
this
.
transpond
)
.
mediaVO
(
this
.
mediaVO
)
.
forumReviewVO
(
this
.
ForumReviewDO
)
.
forumGambitDTOList
(
this
.
forumGambitDOList
)
.
build
();
}
...
...
release-service/src/main/java/com/mmc/csf/release/service/gambit/GambitService.java
浏览文件 @
0ccf98d1
...
@@ -41,5 +41,5 @@ public interface GambitService {
...
@@ -41,5 +41,5 @@ public interface GambitService {
PageResult
myFansList
(
UserTopicDynamicsQO
userTopicDynamicsQO
);
PageResult
myFansList
(
UserTopicDynamicsQO
userTopicDynamicsQO
);
ResultBody
userMessage
(
Integer
userAccountId
);
ResultBody
userMessage
(
Integer
userAccountId
,
Integer
userId
);
}
}
release-service/src/main/java/com/mmc/csf/release/service/gambit/impl/GambitServiceImpl.java
浏览文件 @
0ccf98d1
...
@@ -9,6 +9,7 @@ import com.mmc.csf.release.dao.gambit.GambitDao;
...
@@ -9,6 +9,7 @@ import com.mmc.csf.release.dao.gambit.GambitDao;
import
com.mmc.csf.release.entity.forum.*
;
import
com.mmc.csf.release.entity.forum.*
;
import
com.mmc.csf.release.entity.gambit.ForumAttentionDO
;
import
com.mmc.csf.release.entity.gambit.ForumAttentionDO
;
import
com.mmc.csf.release.entity.gambit.ForumGambitDO
;
import
com.mmc.csf.release.entity.gambit.ForumGambitDO
;
import
com.mmc.csf.release.gambit.dto.ForumDynamicGambitDTO
;
import
com.mmc.csf.release.gambit.dto.ForumGambitDTO
;
import
com.mmc.csf.release.gambit.dto.ForumGambitDTO
;
import
com.mmc.csf.release.gambit.qo.*
;
import
com.mmc.csf.release.gambit.qo.*
;
import
com.mmc.csf.release.gambit.vo.ForumGambitVO
;
import
com.mmc.csf.release.gambit.vo.ForumGambitVO
;
...
@@ -203,7 +204,8 @@ public class GambitServiceImpl implements GambitService {
...
@@ -203,7 +204,8 @@ public class GambitServiceImpl implements GambitService {
userTopicDynamicsQO
.
buildCurrentPage
();
userTopicDynamicsQO
.
buildCurrentPage
();
int
count
=
gambitDao
.
likedCount
(
userTopicDynamicsQO
);
int
count
=
gambitDao
.
likedCount
(
userTopicDynamicsQO
);
List
<
ForumDynamicGambitDO
>
forumDynamicGambitDOS
=
gambitDao
.
likedList
(
userTopicDynamicsQO
);
List
<
ForumDynamicGambitDO
>
forumDynamicGambitDOS
=
gambitDao
.
likedList
(
userTopicDynamicsQO
);
return
PageResult
.
buildPage
(
pageNo
,
userTopicDynamicsQO
.
getPageSize
(),
count
,
forumDynamicGambitDOS
);
List
<
ForumDynamicGambitDTO
>
collect
=
forumDynamicGambitDOS
.
stream
().
map
(
ForumDynamicGambitDO:
:
buildForumDynamicGambitDTO
).
collect
(
Collectors
.
toList
());
return
PageResult
.
buildPage
(
pageNo
,
userTopicDynamicsQO
.
getPageSize
(),
count
,
collect
);
}
}
@Override
@Override
public
PageResult
myInterestList
(
UserTopicDynamicsQO
userTopicDynamicsQO
)
{
public
PageResult
myInterestList
(
UserTopicDynamicsQO
userTopicDynamicsQO
)
{
...
@@ -226,8 +228,12 @@ public class GambitServiceImpl implements GambitService {
...
@@ -226,8 +228,12 @@ public class GambitServiceImpl implements GambitService {
}
}
@Override
@Override
public
ResultBody
userMessage
(
Integer
userAccountId
)
{
public
ResultBody
userMessage
(
Integer
userAccountId
,
Integer
userId
)
{
ForumCountDO
forumCountDO
=
gambitDao
.
userMessage
(
userAccountId
);
ForumCountDO
forumCountDO
=
gambitDao
.
userMessage
(
userAccountId
);
int
i
=
gambitDao
.
selectCountAttention
(
userId
);
if
(
i
!=
0
){
forumCountDO
.
setStatus
(
true
);
}
return
ResultBody
.
success
(
forumCountDO
);
return
ResultBody
.
success
(
forumCountDO
);
}
}
...
...
release-service/src/main/java/com/mmc/csf/release/service/impl/DynamicServiceImpl.java
浏览文件 @
0ccf98d1
...
@@ -134,7 +134,7 @@ public class DynamicServiceImpl implements DynamicService {
...
@@ -134,7 +134,7 @@ public class DynamicServiceImpl implements DynamicService {
dynamicDao
.
insertforumGambit
(
forumGambitDO
);
dynamicDao
.
insertforumGambit
(
forumGambitDO
);
}
}
if
(
forumGambitDO1
!=
null
){
if
(
forumGambitDO1
!=
null
){
forum
Dynamic
DO
.
setId
(
forumGambitDO1
.
getId
());
forum
Gambit
DO
.
setId
(
forumGambitDO1
.
getId
());
}
}
DynamicGambitDO
dynamicGambitDO
=
new
DynamicGambitDO
(
forumDynamicDO
,
forumGambitDO
);
DynamicGambitDO
dynamicGambitDO
=
new
DynamicGambitDO
(
forumDynamicDO
,
forumGambitDO
);
dynamicDao
.
insertDynamicGambit
(
dynamicGambitDO
);
dynamicDao
.
insertDynamicGambit
(
dynamicGambitDO
);
...
@@ -404,7 +404,13 @@ public class DynamicServiceImpl implements DynamicService {
...
@@ -404,7 +404,13 @@ public class DynamicServiceImpl implements DynamicService {
count
=
dynamicVOList
.
size
();
count
=
dynamicVOList
.
size
();
}
}
for
(
DynamicVO
dynamicVO
:
dynamicVOList
)
{
Integer
userAccountId
=
dynamicVO
.
getUserAccountId
();
int
countAttention
=
gambitDao
.
selectCountAttentions
(
userAccountId
,
userId
);
if
(
countAttention
!=
0
){
dynamicVO
.
setStatus
(
true
);
}
}
return
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
dynamicVOList
);
return
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
dynamicVOList
);
}
}
...
...
release-service/src/main/resources/mapper/gambit/GambitDao.xml
浏览文件 @
0ccf98d1
...
@@ -54,11 +54,14 @@
...
@@ -54,11 +54,14 @@
<collection
property=
"forumResourceDOList"
ofType=
"com.mmc.csf.release.entity.forum.ForumResourceDO"
<collection
property=
"forumResourceDOList"
ofType=
"com.mmc.csf.release.entity.forum.ForumResourceDO"
select=
"selectResourceList"
column=
"{dynamicId=id}"
>
select=
"selectResourceList"
column=
"{dynamicId=id}"
>
</collection>
</collection>
<collection
property=
"forumGambitDOList"
ofType=
"com.mmc.csf.release.
entity.gambit.ForumGambitD
O"
<collection
property=
"forumGambitDOList"
ofType=
"com.mmc.csf.release.
gambit.dto.ForumGambitDT
O"
select=
"selectGambitLists"
column=
"{dynamicId=id}"
>
select=
"selectGambitLists
VO
"
column=
"{dynamicId=id}"
>
</collection>
</collection>
<collection
property=
"forumReviewDO"
ofType=
"com.mmc.csf.release.entity.forum.ForumReviewDO"
<collection
property=
"forumReviewDO"
ofType=
"com.mmc.csf.release.forum.vo.ForumReviewVO"
select=
"selectForumReview"
column=
"{dynamicId=id}"
>
select=
"selectForumReviewVO"
column=
"{dynamicId=id}"
>
</collection>
<collection
property=
"mediaVO"
ofType=
"com.mmc.csf.release.forum.vo.MediaVO"
select=
"selectMediaVO"
column=
"{dynamicId=id}"
>
</collection>
</collection>
</resultMap>
</resultMap>
...
@@ -134,6 +137,26 @@
...
@@ -134,6 +137,26 @@
</select>
</select>
<select
id=
"selectForumReviewVO"
resultType=
"com.mmc.csf.release.forum.vo.ForumReviewVO"
>
SELECT
id,
content,
user_account_id,
like_count,
dynamic_id,
create_time,
update_time,
pid,
review_id
FROM
forum_review
WHERE
dynamic_id = #{dynamicId}
GROUP BY
id
LIMIT 0,1
</select>
<select
id=
"selectForumReviewMessage"
resultType=
"com.mmc.csf.release.forum.vo.ForumReviewVO"
>
<select
id=
"selectForumReviewMessage"
resultType=
"com.mmc.csf.release.forum.vo.ForumReviewVO"
>
SELECT
SELECT
id,
id,
...
@@ -164,10 +187,23 @@
...
@@ -164,10 +187,23 @@
AND fr.review_id = #{id}
AND fr.review_id = #{id}
</select>
</select>
<select
id=
"selectCountAttention"
resultType=
"java.lang.Integer"
>
select count(*) from forum_attention where attention_user_account_id=#{userId}
</select>
<select
id=
"selectCountAttentions"
resultType=
"java.lang.Integer"
>
select count(*) from forum_attention where attention_user_account_id=#{userId} and user_account_id=#{userAccountId}
</select>
<select
id=
"selectResourceList"
resultType=
"com.mmc.csf.release.entity.forum.ForumResourceDO"
>
<select
id=
"selectResourceList"
resultType=
"com.mmc.csf.release.entity.forum.ForumResourceDO"
>
select dynamic_id,resource_url,create_time,update_time,`type` from forum_resource where dynamic_id=#{dynamicId}
select dynamic_id,resource_url,create_time,update_time,`type` from forum_resource where dynamic_id=#{dynamicId}
</select>
</select>
<select
id=
"selectMediaVO"
resultType=
"com.mmc.csf.release.forum.vo.MediaVO"
>
select resource_url as url ,`type` from forum_resource where dynamic_id=#{dynamicId}
</select>
<select
id=
"selectGambitLists"
resultType=
"com.mmc.csf.release.entity.gambit.ForumGambitDO"
>
<select
id=
"selectGambitLists"
resultType=
"com.mmc.csf.release.entity.gambit.ForumGambitDO"
>
SELECT
SELECT
fdg.dynamic_id,
fdg.dynamic_id,
...
@@ -180,6 +216,17 @@
...
@@ -180,6 +216,17 @@
fdg.dynamic_id = #{dynamicId}
fdg.dynamic_id = #{dynamicId}
</select>
</select>
<select
id=
"selectGambitListsVO"
resultType=
"com.mmc.csf.release.gambit.dto.ForumGambitDTO"
>
SELECT
fdg.dynamic_id,
fdg.gambit_id,
fg.gambit_name
FROM
forum_dynamic_gambit fdg
LEFT JOIN forum_gambit fg ON fdg.gambit_id = fg.id
WHERE
fdg.dynamic_id = #{dynamicId}
</select>
<insert
id=
"insertGambit"
parameterType=
"com.mmc.csf.release.entity.gambit.ForumGambitDO"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
<insert
id=
"insertGambit"
parameterType=
"com.mmc.csf.release.entity.gambit.ForumGambitDO"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into forum_gambit(gambit_name,gambit_icon,gambit_cover,gambit_property,
insert into forum_gambit(gambit_name,gambit_icon,gambit_cover,gambit_property,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论