最近实现了评论和回复、点赞、@的功能。在这里分享一下我的设计思路(先分享评论和回复功能)。希望各位读者给出一些不一样的建议后期改进。
效果展示
总共是两层回复 (回复评论、回复评论下的回复)
数据库设计
评论表(TFW_Comments)和回复内容表(TFW_UserResponse)以及评论回复关系表(TFW_MsgRelation)
数据库设计思路:
注:各位读者自动忽略评论表的服务机构ID字段,这个字段相当于这条评论是在哪个帖子(文章下面)
1、根据文章ID或者是帖子ID查询评论表获取评论(本文的服务机构ID)。第一层(评论)
2、根据评论ID并且回复类型等于1的去关系表获取第二层的回复(commentsId)。第二层(评论下的回复)
3、根据评论ID、回复类型等于2、回复ID去关系表获取第三层回复。第三层(评论下回复中的回复)注:回复ID是它的上级
实现类源码
@Override
public Map<String, Object> 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<Map<String, Object>> info = commentsDao.findComment(jsonObject.getString("fWJLID"),null);
//查询点赞次数
int countTag = 0;
MsgRelationTag msgRelationTag = new MsgRelationTag();
for (Map item : info){
item.put("inputShow",false);
int commentsId = (int) item.get("commentsId");
//查询点赞次数
countTag = msgRelationDao.findCountTagByTagId(commentsId,1);