前台商品列表接口

2023-10-27


controller层把查询条件封装在productListReq对象中

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

在这里插入图片描述
servier层再把查询封装在ProductListQuery对象中。
在这里插入图片描述
在这里插入图片描述
在sql语句中传入的就是ProductListQuery.keyword和ProductListQuery.categoryIds属性(关键字和商品种类id)

  1. 搜索功能和平铺展示通过sql的过滤实现
    就是模糊查询和遍历筛选categoryIds
    在这里插入图片描述
    在这里插入图片描述

  2. 排序就是通过PageHelper.startPage实现

搜索功能

1 入参判空

2 加%通配符

3 sql语句like关键字

复杂查询再构建一个ProductListQuery对象
在这里插入图片描述
在这里插入图片描述

平铺展示该商品类别及其子类别下的所有商品

目录处理∶如果查某个目录下的商品,不仅是需要查出来该目录的,还需要查出来子目录的所有商品。

  1. 使用递归拿到某一个目录Id下的所有子目录id的List
    在这里插入图片描述
    (问题是这个List是嵌套的List,我们需要取所有的id并展开为一个list)

  2. 用查询嵌套列表的方式把内容(categoryVOList)查出来。
    (递归)

在这里插入图片描述
把查的id都放到categoryIds列表中。

  1. 最后,在sql语句进行查询商品的时候用目录id进行过滤。。。
    在这里插入图片描述

完整代码如下:

在这里插入图片描述
取具有层级结构(包含子目录)的目录查询结果categoryVOList的所有id,并保存到categoryIds列表中。
递归调用getCategoryIds
categoryVO.getChildCategory()是保存当前节点的子节点列表
将当前categoryVO的id和他的子节点id都加入到categoryIds中。
在这里插入图片描述
在这里插入图片描述
sql按照商品类别id过滤商品
在这里插入图片描述

排序功能

为了安全性,排序规则需要我们指定,用户输入的排序规则不符合就不执行排序。
order by的规则是我们定义的枚举。
在这里插入图片描述
规则在Constant类定义
在这里插入图片描述

测试

查询、排序

在这里插入图片描述

按照类别展示该类别和他子类别下的所有商品

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

查询类别3和他所有子类别的商品

catagory表的parent_idid是父子结构对应;
catagory表的id对应product表的category_id.
商品模块+前台+list的web接口 传入的categoryId是catagory表的parentId。。。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

{
    "status": 10000,
    "msg": "SUCCESS",
    "data": {
        "total": 8,
        "list": [
            {
                "id": 37,
                "name": "进口牛油果 中果6粒装 单果约130-160g",
                "image": "http://111.231.103.117:8081/images/niuyouguo.jpg",
                "detail": "商品名称:京觅进口牛油果 6个装商品编号:3628240商品毛重:1.2kg商品产地:秘鲁、智利、墨西哥重量:1000g以下国产/进口:进口",
                "categoryId": 28,
                "price": 222,
                "stock": 222,
                "status": 1,
                "createTime": "2019-12-28T16:06:34.000+0000",
                "updateTime": "2020-02-11T00:47:42.000+0000"
            },
            {
                "id": 26,
                "name": "越南进口红心火龙果 4个装 红肉中果 单果约330-420g",
                "image": "http://111.231.103.117:8081/images/hongxinhuolongguo.jpg",
                "detail": "商品毛重:1.79kg商品产地:越南重量:1000-1999g类别:红心火龙果包装:简装国产/进口:进口",
                "categoryId": 28,
                "price": 222,
                "stock": 222,
                "status": 1,
                "createTime": "2019-12-28T16:06:34.000+0000",
                "updateTime": "2020-02-11T00:44:11.000+0000"
            },
            {
                "id": 25,
                "name": "新疆库尔勒克伦生无籽红提 国产新鲜红提葡萄 提子 5斤装",
                "image": "http://111.231.103.117:8081/images/hongti.jpg",
                "detail": "商品毛重:2.5kg商品产地:中国大陆货号:XZL201909002重量:2000-3999g套餐份量:2人份国产/进口:国产是否有机:非有机单箱规格:3个装,4个装,5个装类别:红提包装:简装原产地:中国大陆售卖方式:单品",
                "categoryId": 28,
                "price": 222,
                "stock": 222,
                "status": 1,
                "createTime": "2019-12-28T16:06:34.000+0000",
                "updateTime": "2020-02-11T00:44:05.000+0000"
            },
            {
                "id": 23,
                "name": "澳大利亚直采鲜橙 精品澳橙12粒 单果130-180g",
                "image": "http://111.231.103.117:8081/images/chengzi.jpg",
                "detail": "商品毛重:2.27kg商品产地:澳大利亚类别:脐橙包装:简装国产/进口:进口原产地:澳大利亚",
                "categoryId": 4,
                "price": 12,
                "stock": 12,
                "status": 1,
                "createTime": "2019-12-28T16:02:13.000+0000",
                "updateTime": "2020-02-11T00:40:15.000+0000"
            },
            {
                "id": 36,
                "name": "四川果冻橙 吹弹可破",
                "image": "http://111.231.103.117:8081/images/guodongcheng.jpg",
                "detail": "商品毛重:370.00g商品产地:四川 重量:1000g",
                "categoryId": 19,
                "price": 222,
                "stock": 222,
                "status": 1,
                "createTime": "2019-12-28T16:06:34.000+0000",
                "updateTime": "2020-02-11T00:38:14.000+0000"
            },
            {
                "id": 2,
                "name": "澳洲进口大黑车厘子大樱桃包甜黑樱桃大果多汁 500g 特大果",
                "image": "http://111.231.103.117:8081/images/chelizi2.jpg",
                "detail": "商品毛重:1.0kg货号:608323093445原产地:智利类别:美早热卖时间:1月,11月,12月国产/进口:进口售卖方式:单品",
                "categoryId": 14,
                "price": 50,
                "stock": 100,
                "status": 1,
                "createTime": "2019-12-18T16:08:15.000+0000",
                "updateTime": "2020-02-11T00:08:25.000+0000"
            },
            {
                "id": 17,
                "name": "红颜奶油草莓 约重500g/20-24颗 新鲜水果",
                "image": "http://111.231.103.117:8081/images/caomei2.jpg",
                "detail": "商品毛重:0.58kg商品产地:丹东/南通/武汉类别:红颜草莓包装:简装国产/进口:国产",
                "categoryId": 11,
                "price": 99,
                "stock": 84,
                "status": 1,
                "createTime": "2019-12-18T16:11:13.000+0000",
                "updateTime": "2020-02-10T23:37:48.000+0000"
            },
            {
                "id": 14,
                "name": "Zespri佳沛 新西兰阳光金奇异果 6个装",
                "image": "http://111.231.103.117:8081/images/mihoutao2.jpg",
                "detail": "商品编号:4635056商品毛重:0.71kg商品产地:新西兰类别:金果包装:简装国产/进口:进口原产地:新西兰",
                "categoryId": 12,
                "price": 39,
                "stock": 77,
                "status": 1,
                "createTime": "2019-12-18T16:11:13.000+0000",
                "updateTime": "2020-02-10T23:36:48.000+0000"
            }
        ],
        "pageNum": 1,
        "pageSize": 30,
        "size": 8,
        "startRow": 1,
        "endRow": 8,
        "pages": 1,
        "prePage": 0,
        "nextPage": 0,
        "isFirstPage": true,
        "isLastPage": true,
        "hasPreviousPage": false,
        "hasNextPage": false,
        "navigatePages": 8,
        "navigatepageNums": [
            1
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 1
    }
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前台商品列表接口 的相关文章

随机推荐

  • 2021_lg_03.SQL实战:如何用sql计算用户留存问题

    如何用sql计算用户留存问题 一 留存 1 留存的含义 留存 指基准日到APP的用户在之后的n日当天返回APP的人数 留存率 基准日之后的n天当日返回的用户数 基准日的用户数 100 或者指基准日产生某个行为的用户在之后的第一天 第二天 第
  • 启动docker服务遇到问题:Job for docker.service failed because the control process exited with error code.

    问题 通过systemctl start docker启动docker服务时 遇到了错误 查看docker serviece后发现 原因 之前修改了 etc docker daemon json文件 添加了dns 114 114 114 1
  • PID控制器开发笔记之十一:专家PID控制器的实现

    前面我们讨论了经典的数字PID控制算法及其常见的改进与补偿算法 基本已经覆盖了无模型和简单模型PID控制经典算法的大部 再接下来的我们将讨论智能PID控制 智能PID控制不同于常规意义下的智能控制 是智能算法与PID控制算法的结合 是基于P
  • 【程序员面试金典】找出缺失的整数

    题目描述 数组A包含了0到n的所有整数 但其中缺失了一个 对于这个问题 我们设定限制 使得一次操作无法取得数组number里某个整数的完整内容 唯一的可用操作是询问数组中第i个元素的二进制的第j位 最低位为第0位 该操作的时间复杂度为常数
  • 项目打包工具使用教程(innosetup)

    夏季小学期的时候用VS2015敲了一个关于WinForm的项目 和C 类似 项目完成之后想把它发布成一个可以在win10系统里直接的程序 而且最好有和我们平时安装软件一样 一步步选择 效果图 首先下载innosetup 网址 https p
  • 转载:MATLAB R2018b 安装教程

    MATLAB R2018b 安装教程 LegendLYC 2019 03 26 22 21 50 46687 收藏 116 分类专栏 安装教程 div class div
  • Java实现:猴子吃桃问题

    Java实现 猴子吃桃问题 文章目录 Java实现 猴子吃桃问题 1 问题 2 解决方案 3 实现代码 4 执行结果 5 解决方法说明 穷举法 1 问题 猴子吃桃问题 有一只猴子第一天摘下若干个桃子 当即吃掉了一半 又多吃了一个 第二天又将
  • TypeError:__init__() got an unexpected keyword argument 'xxx'

    如上图所示 出现此类问题通常是打错了一些英文
  • 浙大PAT 2-13. 两个有序序列的中位数 (解题思路)

    2 13 两个有序序列的中位数 时间限制 40 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 已知有两个等长的非降序序列S1 S2 设计函数求S1与S2并集的中位数 有序序列A0 A1 AN 1的
  • 关于如何自定义docker的网络网段

    在修改docker的网段前 请务必关闭所有正在运行中的容器 编辑文件 etc docker daemon json 如果没有则需要创建 cat daemon json default address pools base 172 40 0
  • Powershell - 环境设置

    PowerShell 图标可以在任务栏和开始菜单中找到 只需点击图标 它就会打开 要打开它 只需单击图标 然后将打开以下屏幕 这意味着 PowerShell 已准备好供你使用 PowerShell 版本 最新版本的 PowerShell 是
  • JDK多版本配置及切换版本不生效问题解决

    一 准备工作 首先你要有多个版本的jdk 如果没有请移至 https www oracle com java technologies downloads 下载 具体下载方法可参考 Java同学入职环境安装全讲解 二 配置环境变量 在环境变
  • es6 实现数组的操作

    1 实现数组的去重 1 1 方法一 let arr id 1 name aa id 2 name bb id 3 name cc id 4 name dd id 5 name ee id 1 name aa id 1 name aa id
  • 医疗产业数字化转型现况及方向

    报告以医疗产业的各种应用场景为切入点 分析不同场景下数字化转型程度和路径 通过对医疗产业数字化整体发展现况的解析 探讨医疗产业链中数字化场景应用所带来的机遇及相应挑战 基于已描绘的医疗产业链数字化转型图谱 挖掘在医疗数字化转型浪潮中做出突出
  • 被问 Linux 命令 su 和 sudo 的区别?当场蒙了!

    tanjuntao github io 之前一直对 su 和 sudo 这两个命令犯迷糊 最近专门搜了这方面的资料 总算是把两者的关系以及用法搞清楚了 这篇文章来系统总结一下 1 准备工作 因为本篇博客中涉及到用户切换 所以我需要提前准备好
  • idea插件生成dao类service类controller类以及mapper.xml

    idea插件生成dao类service类controller类以及mapper xml 安装插件Easycode和MybatisX 不用自己写代码 1 Files Settings Plugins 分别搜索Easycode和MybatisX
  • Redis 持久化之 RDB 与 AOF 详解

    Redis 持久化 我们知道Redis的数据是全部存储在内存中的 如果机器突然GG 那么数据就会全部丢失 因此需要有持久化机制来保证数据不会因为宕机而丢失 Redis 为我们提供了两种持久化方案 一种是基于快照 另外一种是基于 AOF 日志
  • Mysql Group Replication 简介及单主模式组复制配置

    一 Mysql Group Replication简介 Mysql Group Replication MGR 是一个全新的高可用和高扩张的MySQL集群服务 高一致性 基于原生复制及paxos协议的组复制技术 以插件方式提供一致数据安全保
  • 在使用命令行环境下Scala读取输入内容时,输入内容不显示问题(未解决)

    在使用命令行环境下Scala读取输入内容时 输入内容不显示问题 如下图 使用键盘输入任意内容但是命令行没有显示任何内容 但是内容又是可以输出的 怀疑是被默认隐藏了 输出结果是如此 我不知道这是本来就这样还是我自己的问题 希望能有大佬可以答疑
  • 前台商品列表接口

    前台商品列表接口 搜索功能 1 入参判空 2 加 通配符 3 sql语句like关键字 平铺展示该商品类别及其子类别下的所有商品 排序功能 测试 查询 排序 按照类别展示该类别和他子类别下的所有商品 查询类别3和他所有子类别的商品 cont