效果展示

总共是两层回复 (回复评论、回复评论下的回复)
数据库设计
评论表(TFW_Comments)和回复内容表(TFW_UserResponse)以及评论回复关系表(TFW_MsgRelation)


立即学习“Java免费学习笔记(深入)”;
数据库设计思路:
注:各位读者自动忽略评论表的服务机构ID字段,这个字段相当于这条评论是在哪个帖子(文章下面)
1、根据文章ID或者是帖子ID查询评论表获取评论(本文的服务机构ID)。第一层(评论)
获取第二层回复(commentsId),需要根据评论ID并且回复类型等于1,在关系表中查询。第二层(评论下的回复)
根据评论ID、回复类型为2、以及回复ID在关系表中获取第三层回复信息。第三层(评论下回复中的回复)注:回复ID是它的上级
实现类源码
@Override
public Map findComments(JSONObject jsonObject) {
data.clear();
String userId = jsonObject.getString("userId");
String role = this.role(jsonObject);
if (role.equals("-1")){
//没有权限
data.put("error","-1");
data.put("msg","当前用户没有权限");
return data;
}
List 其它的代码可以忽略。主要语句有:
获取帖子下的评论
List> info = commentsDao.findComment(jsonObject.getString("fWJLID"),null);
上图根据FWJLID获取评论。(此处可以当成帖子的ID,获取帖子下的评论)一级展示
对应SQL语句(OPT是我的用户表)
select tc.content ,tc.commentsId,convert(varchar(19),tc.startTime,120) as startTime,tc.recipientId ,tc.operatorId,zo.NAME as operatorName,tc.atId,zo.HeadImgUrl as operatorHeadImgUrl
from TFW_Comments tc
left join zd_opt zo on zo.AID = tc.operatorId where tc.FWJLID = 5101查询结果:
支点微信墙F2.0推出了!在前段时间推出的F1.0的基础上,新加了微信摇一摇和启动仪式的功能。修复了微信墙无默认头像的功能,修复了微抽奖的BUG,修复了微信公众平台有时接收信息不回复的功能。(原F1.0功能介绍:现场关注主办方微信公众号,粉丝迅速涨,让大家都High起来吧!互动加粉,触手可得!微信墙文字抽奖,一墙搞定!通过微信平台,你可以实现文字讨论,更能够实现投票,对对碰,交换名片等趣味性和互动

获取评论下的回复
List> userResponse = userResponseDao.findUserResponse(commentsId, null, "","",null);
上图根据commentsid获取评论下的回复。(根据评论ID获取回复)二级展示
对应sql语句
select
tur.userResponseId,tur.operatorId,tur.recipientId,convert(varchar(19),tur.startTime,120) as startTime,tur.userRepContent,tmr.atId as tmrAtId,
tmr.msgRelationId ,tmr.responseType,tmr.replyId,
zo.NAME as operatorName,
zo1.NAME as recipientName,
zo.HeadImgUrl as operatorHeadImgUrl,
zo1.HeadImgUrl as recipientHeadImgUrl
from TFW_MsgRelation tmr
left join TFW_UserResponse tur on tur.userResponseId = tmr.userResponseId
left join zd_opt zo on zo.AID = tur.operatorId
left join zd_opt zo1 on zo1.AID = tur.recipientId where tmr.commentsId = 47查询结果

获取二级回复
twoReply = userResponseDao.findUserResponse(msgRelationId, userResponseId,"1","",null); //二级回复数据
上图是根据评论ID(msgRelationId)和回复ID(userResponseId)去获取二级回复。回复ID也就是父类。就是回复那一条回复的ID。 第三层展示
对应sql
select
tur.userResponseId,tur.operatorId,tur.recipientId,convert(varchar(19),tur.startTime,120) as startTime,tur.userRepContent,tmr.atId as tmrAtId,
tmr.msgRelationId ,tmr.responseType,tmr.replyId,
zo.NAME as operatorName,
zo1.NAME as recipientName,
zo.HeadImgUrl as operatorHeadImgUrl,
zo1.HeadImgUrl as recipientHeadImgUrl
from TFW_MsgRelation tmr
left join TFW_UserResponse tur on tur.userResponseId = tmr.userResponseId
left join zd_opt zo on zo.AID = tur.operatorId
left join zd_opt zo1 on zo1.AID = tur.recipientId where tmr.commentsId = 136 and tmr.replyId = 155查询结果

返回页面展示和返回体展示












