当前位置: 首页 > news >正文

网站的运作方式如何用微信小程序开店

网站的运作方式,如何用微信小程序开店,wordpress123页,室内装修设计下载什么软件这篇文章,我来介绍一下我的项目中的另外一个功能:显示评论和添加评论。 其实这两个功能都不怎么重要,我感觉最重要的应该是用户注册登录功能,这个也了解一下,知道这么一回事儿就好。 首先设计DAO层。 Mapper public …

这篇文章,我来介绍一下我的项目中的另外一个功能:显示评论和添加评论。

其实这两个功能都不怎么重要,我感觉最重要的应该是用户注册登录功能,这个也了解一下,知道这么一回事儿就好。

首先设计DAO层。

@Mapper
public interface CommentMapper {List<Comment> selectCommentsByEntity(int entityType, int entityId, int offset, int limit);//根据实体类型、实体ID以及分页偏移量和限制数量,查询对应实体的评论列表,并返回一个评论对象的列表int selectCountByEntity(int entityType, int entityId);//根据实体类型和实体ID,查询对应实体的评论数量,并返回结果int insertComment(Comment comment);//插入一条评论记录到数据库中,参数为一个评论对象Comment selectCommentById(int id);//根据评论ID,查询并返回对应的评论对象}

这些方法用于对评论表进行常见的数据库操作,例如查询某个实体的评论列表、查询评论数量、插入评论以及根据评论ID查询评论详情。

 

再来设计service层。

public List<Comment> findCommentsByEntity(int entityType, int entityId, int offset, int limit) {return commentMapper.selectCommentsByEntity(entityType, entityId, offset, limit);}public int findCommentCount(int entityType, int entityId) {return commentMapper.selectCountByEntity(entityType, entityId);}@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED)public int addComment(Comment comment) {if (comment == null) {throw new IllegalArgumentException("参数不能为空!");}// 添加评论comment.setContent(HtmlUtils.htmlEscape(comment.getContent()));comment.setContent(sensitiveFilter.filter(comment.getContent()));int rows = commentMapper.insertComment(comment);// 更新帖子评论数量if (comment.getEntityType() == ENTITY_TYPE_POST) {int count = commentMapper.selectCountByEntity(comment.getEntityType(), comment.getEntityId());discussPostService.updateCommentCount(comment.getEntityId(), count);}return rows;}public Comment findCommentById(int id) {return commentMapper.selectCommentById(id);}

上面的代码是一个评论服务类,用于处理与评论相关的业务逻辑。

findCommentCount() 方法用于根据实体类型和实体ID,调用 commentMapper.selectCountByEntity() 方法查询对应实体的评论数量,并返回结果。

addComment() 方法用于添加一条评论。在方法中,首先对评论内容进行处理,使用 HtmlUtils.htmlEscape() 方法进行 HTML 转义,以防止 XSS 攻击,然后使用 sensitiveFilter.filter() 方法过滤敏感词。接下来调用 commentMapper.insertComment() 方法将评论插入到数据库中。

findCommentById() 方法用于根据评论ID查询对应的评论对象,调用 commentMapper.selectCommentById() 方法进行查询,并返回结果。

这些方法结合了评论数据库访问对象(DAO)的方法,处理评论的查询、添加和统计等业务逻辑,并且在添加评论时还会更新帖子的评论数量。

最后写controller层。

 public String addComment(@PathVariable("discussPostId") int discussPostId, Comment comment) {comment.setUserId(hostHolder.getUser().getId());comment.setStatus(0);comment.setCreateTime(new Date());commentService.addComment(comment);// 触发评论事件Event event = new Event().setTopic(TOPIC_COMMENT).setUserId(hostHolder.getUser().getId()).setEntityType(comment.getEntityType()).setEntityId(comment.getEntityId()).setData("postId", discussPostId);if (comment.getEntityType() == ENTITY_TYPE_POST) {DiscussPost target = discussPostService.findDiscussPostById(comment.getEntityId());event.setEntityUserId(target.getUserId());} else if (comment.getEntityType() == ENTITY_TYPE_COMMENT) {Comment target = commentService.findCommentById(comment.getEntityId());event.setEntityUserId(target.getUserId());}eventProducer.fireEvent(event);if (comment.getEntityType() == ENTITY_TYPE_POST) {// 触发发帖事件event = new Event().setTopic(TOPIC_PUBLISH).setUserId(comment.getUserId()).setEntityType(ENTITY_TYPE_POST).setEntityId(discussPostId);eventProducer.fireEvent(event);// 计算帖子分数String redisKey = RedisKeyUtil.getPostScoreKey();redisTemplate.opsForSet().add(redisKey, discussPostId);}return "redirect:/discuss/detail/" + discussPostId;}}

在方法体中,首先设置评论的用户ID为当前登录用户的ID,评论的状态为0(表示正常状态),创建时间为当前时间。然后调用 commentService.addComment() 方法将评论添加到数据库中。

接下来,根据评论的实体类型(帖子或评论),创建一个事件对象 event,设置事件的相关属性,例如话题(topic)、用户ID、实体类型、实体ID等。如果评论的实体类型是帖子,则还会获取该帖子的作者ID,如果是评论,则获取评论的目标对象(评论的回复对象)的作者ID。

最后,返回一个重定向的视图,将页面重定向到帖子详情页,以展示添加评论后的页面效果。

这就是显示评论和添加评论的功能。简单了解一下既可!

http://www.yayakq.cn/news/446119/

相关文章:

  • 怎么做网站中英文版本备案期间网站
  • 做健康食品的网站中国营销网
  • 正规设计兼职网站有哪些襄阳市住房和城乡建设厅网站上
  • 江苏网站建设企业软件开发的软件
  • 营销型集团网站建设基于c 的网站开发
  • 大沥南海网站建设什么网站做的很好
  • 一级a做片免费网站上海建桥学院门户网站
  • 中国石油大学网站建设做网站需要icp吗
  • 个人网站不备案会怎么样延安免费做网站
  • 手表网站建设策划书软文推广的作用
  • 东莞哪家建网站公司好网站里的动态是如何制作
  • jquery网站引导插件电子商务网站建设与管理感想和收获
  • 百度地图网页版在线使用seo兼职招聘
  • vs215开发python网站开发给六人游做网站开发的
  • 成都网站设计开发公司哪个网站可以看免费的电视剧
  • 网站策划常用软件全屋定制设计软件有哪些
  • 合肥建立网站网站的功能规范
  • 网站做404是什么意思抖音广告推广怎么做
  • 肇庆网站制作软件河北石家庄最新数据消息
  • 网站将要准备建设的内容有哪些上海共富新村网站建设
  • 嘉兴市秀洲区住房和建设局网站2017设计工作室做网站
  • 现在建设一个网站需要什么技术wordpress 滑动验证码
  • 青岛上市公司网站建设国外网站如何做seo
  • 浙江嘉兴seo网站优化推广如何做网站优化的内容
  • 网站后台不能上传图片承德市人才信息网
  • 网站建设工程师职责说明营销型网站建设服务商
  • 寒亭网站建设vs怎么做网站
  • 温州建设集团官方网站免费建立个人网站申请
  • 佛山市公司网站建设哪家好做外贸有哪些平台
  • 设计的有趣的网站门户网站推广