首页 > 其他分享 >给自己复盘的tjxt笔记day5第二部分

给自己复盘的tjxt笔记day5第二部分

时间:2024-08-22 19:24:56浏览次数:11  
标签:replyDTO 回答 day5 question id 评论 reply 复盘 tjxt

评论相关接口(练习)

评论相关接口有四个:

  • 新增回答或评论

  • 分页查询回答或评论

  • 管理端分页查询回答或评论

  • 管理端隐藏或显示回答或评论

新增回答或评论(练习)

设计思路

注意

回复本身只有一个简单属性:

  • 回复内容

一个功能属性:

  • 是否匿名

一个关联属性:

  • 问题id:回答要关联某个问题

如果是针对某个回答发表的评论,则有新的关联属性:

  • 回答id:评论是在哪个回答下面的

  • 目标评论id:当前评论是针对哪一条评论的

  • 目标用户id:当前评论是针对哪一个用户的

我分析理解的是

如果是针对某个回答发表的评论,则有新的关联属性:

  • 回答id:评论是在哪个回答下面的,就是图中小明第一条回复“回答内容回答内容"对应的id

  • 目标评论id:当前评论是针对哪一条评论的,就是就是图中小明评论“说的不对"对应的评论id

  • 目标用户id:当前评论是针对哪一个用户的,就是图中小明评论“说的不对"对应的小明用户id

这个业务代码其实不难,我觉得困难的地方是对评论那三个传入参数的理解和处理

处理思路和框图一致,如果是回复,需要对问题表里面的问题信息先进行修改(最后一次回答的用户和时间)

如果是评论,需要对评论表里面的评论次数进行修改

不管是回复还是评论,都需要根据学生身份修改问题表格里面问题的状态

但是这里有一个疑惑的地方,就是评论下面的评论计算次数时,这个还用加到回复的评论次数里面吗?我感觉是需要的,所以我是计算次数时是嵌套的形式

     @Override
    @Transactional
    public void saveReply(ReplyDTO replyDTO) {
      //1.获取当前用户信息
      Long userId= UserContext.getUser();
      //2.- 对question表的操作
            // 2.1.根据id查询数据
            InteractionQuestion question =interactionQuestionMapper.selectById(replyDTO.getQuestionId());
            // 2.2.数据校验
            if(question == null || question.getHidden()){
                // 没有数据或者是被隐藏了
                return ;
            }
        if(replyDTO.getAnswerId()==0&&replyDTO.getTargetReplyId()==0){
            //2.3.如果是回答,需要在interaction_question中记录最新一次回答的id和回复次数
            question.setLatestAnswerId(userId);
            question.setAnswerTimes(question.getAnswerTimes()+1);
        }
        //- 2.4.判断提交评论的用户是否是学生,如果是标记问题状态为未查看
        if(replyDTO.getIsStudent()==true){
            question.setStatus(QuestionStatus.UN_CHECK);
        }
        // 2.5.更新问题
        question.setUpdateTime(LocalDateTime.now());
        interactionQuestionMapper.updateById(question);

        //3.向reply表进行操作
        // 3.1.数据转换
        InteractionReply reply = BeanUtils.toBean(replyDTO, InteractionReply.class);
        // 3.2.补充数据
        reply.setUserId(userId);
        reply.setCreateTime(LocalDateTime.now());
        reply.setUpdateTime(LocalDateTime.now());
        if(replyDTO.getAnswerId()!=0){
       //3.3 如果是评论ÿ

标签:replyDTO,回答,day5,question,id,评论,reply,复盘,tjxt
From: https://blog.csdn.net/weixin_46321761/article/details/141389295

相关文章

  • 给自己复盘的随想录笔记-移除元素
    双指针法双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。定义快慢指针快指针:寻找新数组的元素,新数组就是不含有目标元素的数组慢指针:指向更新新数组下标的位置相关题目删除有序数组中的重复项解题思路:解法:双指针首先注意数组......
  • 给自己复盘用的随想录笔记day1-二分查找
    二分法使用情景数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。求某一个整数的平方根边界条件写二分法......
  • day5打卡
    有效的字母异位词classSolution{public:boolisAnagram(strings,stringt){intrecord[26]={0};for(inti=0;i<s.size();++i){record[s[i]-'a']++;}for(inti=0;i<t.size();++i){record[t[i]-'a']--;}for(inti=0;i......
  • Linux云计算 |【第二阶段】OPERATION-DAY5
    主要内容:Tomcat概述、Tomcat部署安装、Tomcat应用案例(虚拟主机、地址重写、SSL加密站点、Tomcat日志)、Tomcat集群,maven应用一、Tomcat概述ApacheTomcat(简称Tomcat)是一个开源的JavaServlet容器,由Apache软件基金会开发和维护。它实现了JavaServlet和JavaServerPa......
  • 【STM32】寻迹小车项目复盘
    寻迹小车项目复盘前言复盘简述项目无思路,无大局观描述复盘项目无架构描述复盘下次项目改进思路DEBUG无思路前言博主近日首次完成了一个简单的循迹小车。但让我意外的是,在我上手如此简单的项目时,我的思路却十分混乱,开发过程毫无逻辑,虽说跌跌撞撞的做出来了,但效率低......
  • 【数据结构】详细介绍线性表中的顺序表,带你复盘实现细节,附上顺序表编程练习题
    目录一.线性表二.顺序表 1.静态顺序表与动态顺序表2.动态顺序表的接口实现 2.1顺序表初始化 2.2判断是否需要扩容  2.3 顺序表指定位置插入2.4 顺序表头插2.5 顺序表尾插2.6 顺序表指定位置删除2.7 顺序表头删2.8 顺序表尾删2.9 顺序表查找2.1......
  • 8.12 Day5
    推荐歌曲《我是逆蝶》。ADivideSquare挖掘特殊点:有一个端点在边缘上。如果我们扫x坐标,维护lst横和交叉的竖,非常不好维护,并且TLE。结论:一个交点会至少增加一个区域。证明显然。当然还有一点cornercase。BCowTennisTournament一开始想的是三元环会是怎的,推出的......
  • 系统编程 day5 文件4
    函数time(time_t*tloc),返回值为time_t;可以读取秒数函数ctime(consttime_t*timep),返回值为获得时间字符串首地址,char*可以将秒数转化为年月日时分秒函数localtime structtm*tm_info=localtime(&tm);返回本地实时时间命令函数:软链接函数symlink(传参:被链接,新链接);返......
  • 移行前的复盘:CodeCommit 的重要地位分析
    前言截至7月28日,关于AWSCodeCommit的现状如下:现有账号的现有存储库可以继续使用CodeCommit,不受限制。之前未使用过CodeCommit的账号(或没有现有存储库的账号)无法创建新的存储库。这并不意味着CodeCommit的服务会立即终止。然而,无法创建新存储库这一事实一般可以理解为CodeCo......
  • DAY5 双指针算法
    题目:acwing799给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 n。第二行包含 n个整数(均在 0∼10^5范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤......