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

博客项目-day05(首页导航栏功能补全)

导航

其实之前已经实现过文章和标签分类了
但是这个对应的是导航栏的,多显示个图片
所以新增两个这个请求
在这里插入图片描述

文章分类

在这里插入图片描述
把之前的CategoryVo加个描述属性
在这里插入图片描述
写过这个copyList,直接用就行
在这里插入图片描述

标签分类

和上面的分类查询差不多
不多解释了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分类文章列表

点击这个后
在这里插入图片描述

在这里插入图片描述

查询分类

这个功能简单,点击对应图标上面显示对应的东西需要根据id查询分类数据
在这里插入图片描述
在这里插入图片描述

根据分类查询文章列表

因为前端是用的listArticle那个映射来进行数据传输的
所以我们要改一下文章列表的逻辑
在PageParam新增CategoryId和TagId(下一个功能)标签

在这里插入图片描述

标签文章列表

通过点击这个标签可以显示对应所有文章
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

查询标签信息

在这里插入图片描述

更改listArticle的逻辑

因为我们的tag和article多对多
所以需要先根据tag找到对应的文章id放到一个集合中
然后将这个看我们的ArticleId是否在集合中,只查询集合中的
if (articleIdList.size() > 0){
articleLambdaQueryWrapper.in(Article::getId,articleIdList);
}
在这里插入图片描述
ok
在这里插入图片描述

文章归档

就是通过点击左边的就能找到我们对于年月发布的文章
还是文章列表接口里面加逻辑
在这里插入图片描述

接口
在这里插入图片描述
该一下请求分页参数
在这里插入图片描述
注释掉之前的listArticle不用mp了,直接用myabtis原生操作

@Overridepublic Result listArticle(PageParams pageParams) {Page<Article> page = new Page<>(pageParams.getPage(),pageParams.getPageSize());IPage<Article> articleIPage = this.articleMapper.listArticle(page,pageParams.getCategoryId(),pageParams.getTagId(),pageParams.getYear(),pageParams.getMonth());return Result.success(copyList(articleIPage.getRecords(),true,true,false,false));}

写一下对应的articleMapper.xml
写一下对应映射,不写的话也可以开启驼峰命名即可

<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis配置文件-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.mszlu.blog.dao.mapper.ArticleMapper"><resultMap id="articleMap" type="com.mszlu.blog.dao.pojo.Article"><id column="id" property="id" /><result column="author_id" property="authorId"/><result column="comment_counts" property="commentCounts"/><result column="create_date" property="createDate"/><result column="summary" property="summary"/><result column="title" property="title"/><result column="view_counts" property="viewCounts"/><result column="weight" property="weight"/><result column="body_id" property="bodyId"/><result column="category_id" property="categoryId"/></resultMap><select id="listArticle"  resultMap="articleMap">select * from ms_article<where>1 = 1<if test="categoryId != null">and  category_id = ##{categoryId}</if><if test="year != null and year.length>0 and month != null and month.length>0">and ( FROM_UNIXTIME(create_date/1000,'%Y') = ##{year} and FROM_UNIXTIME(create_date/1000,'%m') = ##{month} )</if><if test="tagId != null">and id in (select article_id from ms_article_tag where tag_id=##{tagId})</if></where>order by create_date desc</select>
</mapper>

效果展示
在这里插入图片描述

http://www.lryc.cn/news/535432.html

相关文章:

  • 防御保护-----前言
  • 力扣刷题(数组篇)
  • 初一说明文:我的护眼灯
  • 【论文阅读】Revisiting the Assumption of Latent Separability for Backdoor Defenses
  • 八一南昌起义纪念塔手绘图纸:一部凝固的工程史诗
  • [hgame 2025 ]week1 pwn/crypto
  • python 获取smpl身高 fbx身高
  • 实战教程:如何利用DeepSeek结合深度学习与NLP技术实现跨模态搜索与个性化推荐
  • 计算机毕业设计Python+卷积神经网络租房推荐系统 租房大屏可视化 租房爬虫 hadoop spark 58同城租房爬虫 房源推荐系统
  • 目标检测模型性能评估:mAP50、mAP50-95、Precision 和 Recall 及测试集质量的重要性
  • AnyPlace:学习机器人操作的泛化目标放置
  • 2025icpc(Ⅱ)网络赛补题 GL
  • 51c大模型~合集112
  • Rust 文件读取:实现我们的 “迷你 grep”
  • 【Unity3D】Jenkins Pipeline流水线自动构建Apk
  • 信息收集-Web应用备案产权Whois反查域名枚举DNS记录证书特征相似查询
  • 结合实际讲NR系列2—— SIB1
  • 绿虫仿真软件如何预测组件衰减对收益的影响?
  • 本地部署DeepSeek集成VSCode创建自己的AI助手
  • 07贪心 + 动态规划(D1_基础学习)
  • redis之数据库
  • 【竞技宝】电竞世界杯:无畏契约首次入选正式项目!
  • Golang GORM系列:GORM 高级查询教程
  • 智能GUI Agent是什么,有什么应用领域
  • k8s优雅操作pod容器组
  • 在 Mac ARM 架构上使用 nvm 安装 Node.js 版本 16.20.2
  • MySQL创建存储过程和存储函数
  • PyQt学习记录03——批量设置水印
  • vivo手机和Windows电脑连接同一个WiFi即可投屏!
  • 芯盾时代数据安全产品体系,筑牢数据安全防线