广告
返回顶部
首页 > 资讯 > 精选 >java怎么实现评论和回复功能
  • 212
分享到

java怎么实现评论和回复功能

2023-07-02 11:07:26 212人浏览 独家记忆
摘要

这篇文章主要介绍了java怎么实现评论和回复功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java怎么实现评论和回复功能文章都会有所收获,下面我们一起来看看吧。效果展示总共是两层回复 (回复评论、回复评论下

这篇文章主要介绍了java怎么实现评论和回复功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java怎么实现评论和回复功能文章都会有所收获,下面我们一起来看看吧。

效果展示

java怎么实现评论和回复功能

总共是两层回复 (回复评论、回复评论下的回复)

数据库设计

评论表(TFW_Comments)和回复内容表(TFW_UserResponse)以及评论回复关系表(TFW_MsgRelation)

java怎么实现评论和回复功能

java怎么实现评论和回复功能

数据库设计思路:

注:各位读者自动忽略评论表的服务机构ID字段,这个字段相当于这条评论是在哪个帖子(文章下面)

根据文章ID或者是帖子ID查询评论表获取评论(本文的服务机构ID)。第一层(评论)

根据评论ID并且回复类型等于1的去关系表获取第二层的回复(commentsId)。第二层(评论下的回复)

根据评论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);            item.put("countTag",countTag);            //设置点赞状态            msgRelationTag.setTagId(commentsId);            msgRelationTag.setTagType(1);            msgRelationTag.setTagUserId(Integer.parseInt(userId));            MsgRelationTag msgTag = msgRelationDao.findMsgTag(msgRelationTag);            if (msgTag != null) {                item.put("tagStatus",msgTag.getStatus());            }else {                item.put("tagStatus","");            }            //如果有@id            if (item.get("atId") != null){                String content = item.get("content").toString();                StringBuffer tmrAtId = findUserName(item.get("atId").toString());                item.put("content",content+'@'+tmrAtId);            }            //二级回复数据            List<Map<String, Object>> twoReply = new ArrayList<>();            //所有数据            List<Map<String, Object>> userResponse = userResponseDao.findUserResponse(commentsId, null, "","",null);            for (Map userResponseInfo :userResponse){                int userResponseIds = Integer.parseInt(userResponseInfo.get("userResponseId").toString());                //查询点赞次数                countTag = msgRelationDao.findCountTagByTagId(userResponseIds,2);                //设置点赞状态                msgRelationTag.setTagId(userResponseIds);                msgRelationTag.setTagType(2);                msgTag = msgRelationDao.findMsgTag(msgRelationTag);                if (msgTag != null) {userResponseInfo.put("tagStatus",msgTag.getStatus());}else {userResponseInfo.put("tagStatus","");}                userResponseInfo.put("countTag",countTag);                userResponseInfo.put("inputShow",false);                Integer responseType = (Integer) userResponseInfo.get("responseType");                for (Map stairReplyInfo : userResponse){                    Integer  userResponseId = (Integer) stairReplyInfo.get("userResponseId");                    int msgRelationId = Integer.parseInt(stairReplyInfo.get("msgRelationId").toString());                    //接受者id*/                    twoReply = userResponseDao.findUserResponse(msgRelationId, userResponseId,"1","",null); //二级回复数据                    for (Map twoReplyItem : twoReply){                        int twoReplyId = Integer.parseInt(twoReplyItem.get("userResponseId").toString());                        twoReplyItem.put("inputShow",false);                        //查询点赞次数                        countTag = msgRelationDao.findCountTagByTagId(twoReplyId,2);                        twoReplyItem.put("countTag",countTag);                        //设置点赞状态                        msgRelationTag.setTagId(twoReplyId);                        msgTag = msgRelationDao.findMsgTag(msgRelationTag);                        if (msgTag != null) {twoReplyItem.put("tagStatus",msgTag.getStatus());}else {twoReplyItem.put("tagStatus","");}                        String userRepContent = twoReplyItem.get("userRepContent").toString();                        if (twoReplyItem.get("tmrAtId") != null){                            StringBuffer tmrAtId = findUserName(twoReplyItem.get("tmrAtId").toString());                            twoReplyItem.put("userRepContent",userRepContent+'@'+tmrAtId);                        }                     }                    stairReplyInfo.put("twoReply",twoReply);                }            }            item.put("stairReply",userResponse);        }        data.put("data",info);        data.put("error",0);        data.put("msg","查询成功");        return data;    }

其它的代码可以忽略。主要语句有:

获取帖子下的评论

 List<Map<String, Object>> 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

查询结果:

java怎么实现评论和回复功能

 获取评论下的回复

List<Map<String, Object>> 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

查询结果

java怎么实现评论和回复功能

 获取二级回复

 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

查询结果

java怎么实现评论和回复功能

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

java怎么实现评论和回复功能

java怎么实现评论和回复功能

关于“java怎么实现评论和回复功能”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“java怎么实现评论和回复功能”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: java怎么实现评论和回复功能

本文链接: https://www.lsjlt.com/news/341473.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java怎么实现评论和回复功能
    这篇文章主要介绍了java怎么实现评论和回复功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java怎么实现评论和回复功能文章都会有所收获,下面我们一起来看看吧。效果展示总共是两层回复 (回复评论、回复评论下...
    99+
    2023-07-02
  • VUE+Java实现评论回复功能
    背景 最近需要做一个多级评论的功能,技术路线:VUE(Element)+Java(SpringBoot) 效果 后台 SQL Java Controller  @GetMapp...
    99+
    2022-11-13
  • Java单表怎么实现评论回复功能
    这篇文章主要介绍“Java单表怎么实现评论回复功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java单表怎么实现评论回复功能”文章能帮助大家解决问题。1.简介评论功能有多种实现方式:单层型套娃型...
    99+
    2023-07-05
  • Java单表实现评论回复功能
    Java单表实现评论回复功能 1.简介2.功能实现图3.数据库设计4.实体类5.实现思路6.功能实现6.1 Sql入手6.2 业务实现 7.前端实现8.最终成果 1.简介 最近在写...
    99+
    2023-08-31
    java
  • Java递归实现评论多级回复功能
    目录评论实体添加非回复评论递归添加回复评论结果展示:github 源码最近工作需要做一个评论功能,除了展示评论之外,还需要展示评论回复,评论的回复的回复,这里就用到了递归实现评论的多...
    99+
    2022-11-13
  • 怎么使用Java递归实现评论多级回复功能
    这篇文章主要介绍“怎么使用Java递归实现评论多级回复功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Java递归实现评论多级回复功能”文章能帮助大家解决问题。评论实体数据库存储字段: i...
    99+
    2023-07-02
  • java评论、回复功能设计与实现方法
    目录效果展示数据库设计数据库设计思路:实现类源码获取帖子下的评论 获取评论下的回复 获取二级回复总结最近实现了评论和回复、点赞、@的功能。在这里分享一下我的设计思...
    99+
    2022-11-13
  • Springboot+ElementUi实现评论、回复、点赞功能
    目录1.概述2.前端代码1.html2.css3.js4.api调用后台接口3.后端代码1.数据库SQL2.实体类3.daoMapper4.daoMapper实现5.service接...
    99+
    2022-11-13
  • Java单表实现评论回复功能(多种实现方式)
    目录1.简介2.功能实现图3.数据库设计4.实体类5.实现思路6.功能实现6.1 Sql入手6.2 业务实现7.前端实现8.最终成果1.简介 最近在写毕业设计的时候发现需要实现一个评...
    99+
    2023-03-06
    Java评论回复 Java单表评论回复
  • SpringBoot如何实现无限级评论回复功能
    本篇内容介绍了“SpringBoot如何实现无限级评论回复功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 数据库表结构设计表结构:CR...
    99+
    2023-07-05
  • SpringBoot实现评论回复功能(数据库设计)
    前后端分离项目–二手交易平台小程序 SpringBoot----物品点赞功能实现 SpringBoot----物品收藏功能实现 SpringBoot----文件(图片)上传与显示(下...
    99+
    2022-11-12
  • php怎么实现评论功能
    要实现评论功能,可以使用数据库来存储评论内容,并使用PHP来处理用户的评论请求。首先,你需要创建一个数据库表来存储评论数据。可以创建...
    99+
    2023-08-11
    php
  • vue怎么实现文章评论和回复列表
    今天小编给大家分享一下vue怎么实现文章评论和回复列表的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果预览:父组件:<...
    99+
    2023-06-30
  • vue怎么实现发表评论功能
    今天小编给大家分享一下vue怎么实现发表评论功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。具体代码如下:<!DOC...
    99+
    2023-06-30
  • vue实现文章评论和回复列表
    本文实例为大家分享了vue实现文章评论和回复列表的具体代码,供大家参考,具体内容如下 效果预览: 父组件: <template>   <div class="co...
    99+
    2022-11-13
  • 怎么使用ThinkPHP来实现评论功能
    本篇内容介绍了“怎么使用ThinkPHP来实现评论功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是ThinkPHP首先,让我们了解一...
    99+
    2023-07-05
  • WordPress实现回复文章评论后发送邮件通知的功能
    本文实例讲述了WordPress实现回复文章评论后发送邮件通知的功能。分享给大家供大家参考,具体如下: 很多时候,人们都希望在自己的评论被管理员回复后会收到通知。该函数的作用就是回复后自动邮件通知评论者。 把下面的代码加...
    99+
    2022-06-12
    WordPress 回复 文章评论 发送邮件 通知
  • ajax实现发表和读取评论功能
    这篇文章主要介绍“ajax实现发表和读取评论功能”,在日常操作中,相信很多人在ajax实现发表和读取评论功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ajax实现发表和读...
    99+
    2022-10-19
  • 基于Python怎么实现评论区抽奖功能
    这篇文章主要讲解了“基于Python怎么实现评论区抽奖功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Python怎么实现评论区抽奖功能”吧!1. 分析评论接口首先,我们需要找到评论数...
    99+
    2023-06-22
  • 怎么用ASP+Ajax实现无刷新评论功能
    本篇内容介绍了“怎么用ASP+Ajax实现无刷新评论功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&l...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作