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


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

一,后端接口开发

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)。

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

在这里插入图片描述

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用中提供的信息,谷粒商城是一个B2C模式的电商平台,主要销售自营商品给客户。B2C模式指的是商对客的模式,即商家直接向消费者销售商品服务谷粒商城使用微服务架构,这是一种将应用程序拆分成独立且可独立开发、部署和扩展的小型服务的架构。引用还提到谷粒商城的技术涵盖微服务架构、分布式、全栈、集群、部署和自动化运维等方面。 因此,从前慢-谷粒商城篇章6主要讨论的可能是谷粒商城的技术方面,包括微服务架构、分布式、全栈、集群、部署和自动化运维等内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [从前慢-谷粒商城篇章1](https://blog.csdn.net/m0_67391121/article/details/125383572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [2020年谷粒商城md笔记](https://download.csdn.net/download/ZHUXIUQINGIT/12543161)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值