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

评论相关接口(练习)

评论相关接口有四个:

  • 新增回答或评论

  • 分页查询回答或评论

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

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

新增回答或评论(练习)

设计思路

注意

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

  • 回复内容

一个功能属性:

  • 是否匿名

一个关联属性:

  • 问题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 如果是评论ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值