谷粒商城实战笔记-72-商品服务-API-属性分组-获取分类属性分组

news2025/2/24 13:18:56

文章目录

  • 一,后端接口开发
    • Controller层修改接口
    • 接口测试
  • 二,前端开发

这一节的内容是开发获取分类属性分组的接口。

一,后端接口开发

Controller层修改接口

修改AttrGroupController接口。

	@RequestMapping("/list/{catelogId}")
    public R list(@RequestParam Map<String, Object> params,@PathVariable("catelogId") Long catelogId){
        PageUtils page = attrGroupService.queryPage(params, catelogId);

        return R.ok().put("page", page);
    }

AttrGroupService新增一个接口。

	public PageUtils queryPage(Map<String, Object> params, Long catelogId) {
        if (catelogId == null) {
            IPage<AttrGroupEntity> page = this.page(new Query<AttrGroupEntity>().getPage(params), new QueryWrapper<>());
            return new PageUtils(page);
        }

        String key = (String)params.get("key");
        QueryWrapper<AttrGroupEntity> wrapper = new QueryWrapper<>();
        if (!StrUtil.isEmpty(key)) {
            wrapper.and((obj)->{
                obj.eq("attr_group_id",key).or().like("attr_group_name",key);
            });
        }

        IPage<AttrGroupEntity> page = this.page(new Query<AttrGroupEntity>().getPage(params), wrapper);
        return new PageUtils(page);

    }

params参数中包含分页信息。

如果 catelogId 为空 (null):

if (catelogId == null) {
    IPage<AttrGroupEntity> page = this.page(new Query<AttrGroupEntity>().getPage(params), new QueryWrapper<>());
    return new PageUtils(page);
}
  • 如果 catelogId 没有提供,则使用从 params 获取的分页信息检索所有的分类分组信息记录。

如果 catelogId 不为空:

  • 在这种情况下,我们还需要检查 params 中是否存在一个名为 “key” 的键。

    String key = (String)params.get("key");
    

    key是用户在前端输入的搜索关键字。
    在这里插入图片描述

  • 使用 QueryWrapper 构建查询条件:

    QueryWrapper<AttrGroupEntity> wrapper = new QueryWrapper<>();
    if (!StrUtil.isEmpty(key)) {
        wrapper.and((obj) -> {
            obj.eq("attr_group_id", key).or().like("attr_group_name", key);
        });
    }
    
    • 如果 key 存在且不为空,则使用 wrapper.and 添加查询条件,查询 attr_group_id 等于 key 或者 attr_group_name 包含 key 的记录。

接口测试

在postman中验证接口是否正常响应。

localhost:88/api/product/attrgroup/list/1/?page=1&&key=aa

在这里插入图片描述

二,前端开发

当点击左侧三级分类后,子组件向父组件发送数据,父组件接收到数据,向后台发出请求。

在前端attrgroup.vue组件的子组件自定义时间响应函数中做如下修改。

在这里插入图片描述

//感知树节点被点击
    treenodeclick(data, node, component) {
      if (node.level == 3) {
        this.catId = data.catId;
        this.getDataList(); //重新查询
      }
    },
    getAllDataList(){
      this.catId = 0;
      this.getDataList();
    },
    // 获取数据列表
    getDataList() {
      this.dataListLoading = true;
      this.$http({
        url: this.$http.adornUrl(`/product/attrgroup/list/${this.catId}`),
        method: "get",
        params: this.$http.adornParams({
          page: this.pageIndex,
          limit: this.pageSize,
          key: this.dataForm.key
        })
      }).then(({ data }) => {
        if (data && data.code === 0) {
          this.dataList = data.page.list;
          this.totalPage = data.page.totalCount;
        } else {
          this.dataList = [];
          this.totalPage = 0;
        }
        this.dataListLoading = false;
      });
    },

这三个函数用来处理前端界面上的数据获取和更新操作。

  1. treenodeclick(data, node, component)

    • 功能: 当用户点击左侧三级分类树树中的某个节点时,触发此自定义事件响应函数。
    • 逻辑:
      • 如果点击的节点级别(level)为3,则认为这是一个具体的分类节点。
      • 设置 this.catId 为被点击节点的分类ID。
      • 调用 getDataList() 方法以根据新的分类ID重新加载分组列表。
  2. getAllDataList()

    • 功能: 获取所有的分组数据。
    • 逻辑:
      • this.catId 设置为0,获取所有分类的数据。
      • 调用 getDataList() 方法来获取分组列表。
  3. getDataList()

    • 功能: 发起HTTP请求以获取分组列表。
    • 逻辑:
      • 使用 $http 发送GET请求到服务器端点 /product/attrgroup/list/${this.catId}
      • 请求参数包括页面索引 (page), 页面大小 (limit), 和关键词 (key)。

前端获取到数据后即展示在页面,页面效果如下。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1954295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linuxnat网络配置

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ☁️运维工程师的职责&#xff1a;监…

python—pandas基础(3)

文章目录 虚拟变量变换数值变量分段数据分组基于拆分进行筛选分组汇总使用 agg 函数进行汇总引用自定义函数 长宽格式转换长宽型格式的自由互转 多个数据源的合并数据的横向合并concat 命令一维的Series拼接df对象拼接两个df对象拼接&#xff0c;按列进行拼接两个df对象拼接&am…

55事务、批处理、CBLOB

day55 事务 MySQL&#xff1a;每一条语句都属于独立事务,默认自动管理提交的。 如果需要把多条语句当成一个整体&#xff0c;那么就需要把多条语句放在一个事务里面 开启事务&#xff1a;start transaction 提交事务&#xff1a;commit; 回滚事务&#xff1a;rollback 封装事务…

【安装笔记-20240727-Windows-OpenWrt 23.05 docker 安装 wordpress】

安装笔记-系列文章目录 安装笔记-20240727-Windows-OpenWrt 23.05 docker 安装 wordpress 文章目录 安装笔记-系列文章目录安装笔记-20240727-Windows-OpenWrt 23.05 docker 安装 wordpress 前言一、调试环境操作系统&#xff1a;Windows 10 专业版调试环境 二、安装步骤测试版…

基于SpringBoot的商业航班执飞飞机机型信息管理

目录 前言 一、数据库模型的设计与实现 1、表结构设计 2、数据去重和消歧 二、后台应用程序设计 1、实体类设计 2、业务层及控制层设计与实现 3、视图层的实现 三、系统成果展示 1、飞机机型管理列表 2、机型信息编辑 四、总结 前言 在之前的信息中&#xff0c;我们对…

流媒体服务器二:RTMP协议详解 以及 RTMP学习到什么程度算是合格?

一个问题&#xff1f; 在上一节我们使用SRS搭建了RTMP环境&#xff0c;那么在企业开发中&#xff0c;是否使用第三方的RTMP服务器&#xff08;例如上一节的SRS&#xff09;就可以了呢&#xff1f;或者说&#xff1a;作为一个音视频开发人员&#xff0c;就会配置就OK了呢&#…

windows USB 设备驱动开发-创建安装 Winusb.sys 的驱动程序包

要将 WinUSB 用作设备的功能驱动程序&#xff0c;请创建一个驱动程序包。 驱动程序包必须包含以下文件&#xff1a; WinUSB 辅助安装程序 (Winusbcoinstaller.dll)&#xff1b;KMDF 辅助安装程序 (WdfcoinstallerXXX.dll)&#xff1b;一个 .inf 文件&#xff0c;用于将 Winusb…

MYSQL 第三次作业

1、第三次作业 01、SELECT * FROM student; SELECT * FROM score; 02、SELECT * FROM student LIMIT 1, 3; 03、SELECT * FROM student WHERE department IN (计算机系, 英语系); 04、SELECT * FROM student WHERE birth_year > 1998; 05、SELECT department, COUNT(*) as c…

Corel VideoStudio 会声会影2023旗舰版视频软件

使用新版 Corel VideoStudio 会声会影2023是 一次激活永久使用。 享受有趣轻松的视频编辑体验。通过数百种滤镜、效果、标题、过渡和图形 — 包括新增面部追踪贴纸 — 探索拖放创意。运用直观的工具和即时项目模板&#xff0c;几分钟即可创建出色的视频&#xff01;探索有趣简单…

【JUC】CAS(轻量级加锁)

文章目录 原子类没有CAS之前使用CAS之后CAS是什么&#xff1f;compareAndSet 源码 CAS底层原理&#xff1f;谈谈对Unsafe类的理解&#xff1f;Unsafei是线程不安全的&#xff0c;AtomicInteger.getAndIncrement()如何保证原子性&#xff1f; 源码分析底层汇编语言面试回答 原子…

OriginPro 2024b (学习版) 绘制3D坐标下 边际直方图

OriginPro 2024b (学习版) 绘制3D坐标下 边际直方图 时间 2024年7月27日 1.导入数据 需要3列数据&#xff0c;分别作为x,y,z, 其中z值随便设置。快速设置z值的方法&#xff1a;在第4行“F(x)”输入1&#xff0c;这一列的值全设置为1了。 设置x,y,z的方法如下&#xff1a;点击…

【机器学习】周志华《机器学习》西瓜书勘误:按章节排序整理(截至2024年1月第45次印刷)

文章目录 按章节排序第 1 章 绪论第 2 章 模型评估与选择第 3 章 线性模型第 4 章 决策树第 5 章 神经网络第 6 章 支持向量机第 7 章 贝叶斯分类器第 8 章 集成学习第 9 章 聚类第10章 降维与度量学习第11章 特征选择与稀疏学习第12章 计算学习理论第13章 半监督学习第14章 概…

使用两台虚拟机分别部署前端和后端项目

使用两台虚拟机分别部署前端和后端项目 1 部署方案2 准备两台虚拟机&#xff0c;并配置网络环境3 部署后端项目3.1 打包服务3.2 上传jar包到服务器3.3 集成Systemd3.3.1 移动端服务集成Systemd3.3.2 后台管理系统集成Systemd 4 配置域名映射5 部署前端项目5.1 移动端5.1.1 打包…

JVM系列(二) -类的加载过程

一、背景介绍 我们知道 Java 是先通过编译器将.java类文件转成.class字节码文件&#xff0c;然后再通过虚拟机将.class字节码文件加载到内存中来实现应用程序的运行。 那么虚拟机是什么时候加载class文件&#xff1f;如何加载class文件&#xff1f;class文件进入到虚拟机后发…

ARCH和GARCH模型★★

该博客为个人学习清风建模的学习笔记&#xff0c;部分课程可以在B站&#xff1a;【强烈推荐】清风&#xff1a;数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili 该节是针对时间序列分析中对证券指数分析不能使用传统时间序列模型做出的模型&a…

C++ 基础(类和对象下)

目录 一. 再探构造函数 1.1. 初始化列表&#xff08;尽量使用列表初始化&#xff09; 二. static成员 2.1static成员初始化 三.友元 3.1友元&#xff1a;提供了⼀种 突破类访问限定符封装的方式. 四.内部类 4.1如果⼀个类定义在另⼀个类的内部&#xff0c;这个内部类就叫…

数据结构第三讲:单链表的实现

数据结构第三讲&#xff1a;单链表的实现 1.什么是单链表2. 节点3.单链表的实现3.1节点的结构3.2打印单链表3.3申请一个新节点3.4单链表尾部插入3.5单链表头部插入3.6单链表的尾部删除3.7单链表头部删除3.8查找3.9在指定位置之前插入数据3.10在指定位置之后插入数据3.11删除pos…

全国区块链职业技能大赛样题第9套前端源码

后端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746050 前端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746216 智能合约+数据库表设计:https://blog.csdn.net/Qhx20040819/article/details/140746646 登录 ​ 用户管理

Java httpclient请求form-data格式,并设置boundary代码实现

文章目录 form-data 数据请求格式样例报错信息: **MissingServletRequestParameterException**解决方法报错信息: **no multipart boundary was found** 解决方法Java代码实现【错误】使用 UrlEncodedFormEntity 、BasicNameValuePair 请求失败&#xff08;error&#xff09;【…

【计算机毕业设计】850汽车售后服务信息管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…