随笔 - 35  文章 - 0  评论 - 0  阅读 - 9054

留言(评论)功能实现

思路:

1 展示 两级 父级留言——子级留言 

2 内部数据存储格式 栈的格式—— 一级留言-二级留言-三级等...

3 实现 

  首先将一级留言循环取出来 循环中通过一级留言获取二级留言

并嵌套循环把二级留言放入到一个temp(中间站)中并把它标识属性父级留言id  通过(递归的方法)二级留言获取到3,4,5,n级....等留言 并且把他们都标记一级留言为父级  

 

复制代码
    @Autowired
    MessageMapper messageMapper;

    private List<Message> temp = new ArrayList<>();//中间栈 二级评论

    public List<Message> First(){
        List<Message> firstmessage = messageMapper.findMessageByParentid(-1);//获取一级留言
        if (firstmessage.size()>0) {//判断是否存在留言
            for (Message message : firstmessage) {//循环一级留言
                int firstmid = message.getMid();
                String firstname = message.getUsername();
                Second(firstmid, firstname);//通过一级获取二级留言(参数为父级id和父级name)
                message.setMessages(temp);//子级留言全部存入中间站 把它加到这个父级留言里面
                temp = new ArrayList<Message>();
            }
        }
        return firstmessage;
    }

    public void Second(int pid,String pname){
        List<Message> secondmessage = messageMapper.findMessageByParentid(pid);//通过父级id获取子级留言
        if (secondmessage.size()>0){//判断是否存在子级留言
            for (Message message : secondmessage) {//循环留言
                message.setParentname(pname);//把留言赋值父name
                temp.add(message);//加入到中间站
                Third(message);//获取3-n级留言 参数为二级留言
            }
        }
    }

    public void Third(Message secondmessage){
        List<Message> thirdmessage = messageMapper.findMessageByParentid(secondmessage.getMid());//通过父级id获取子级留言
        String pname = secondmessage.getUsername();//获取父级name
        if (thirdmessage.size()>0){
            for (Message message : thirdmessage) {//循环
                message.setParentname(pname);//把留言赋值父name
                temp.add(message);//加入中间站
                Third(message);//把自己当作父级 递归找出所有子级 结束之后就到第一个函数那里 然后中间站就存放好了所有关于一级留言的子留言
            }
        }
复制代码

 

posted on   ziwang520  阅读(215)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示