up:: SpringBoot电商项目用户模块总结
说明:
(1) 本篇博客的目的: 了解【商品分类模块】的开发内容;熟悉【商品分类模块】的5个接口;
(2) 可以看下【SpringBoot电商项目模块和功能介绍】和【SpringBoot电商项目项目演示】;能够帮助自己更熟悉【商品分类模块】;
一:【商品分类模块】部分的内容:
(1)模块介绍;
(2)编码;
(3)自测;
(4)总结;
二:【商品分类模块】开发内容分析;
通过【SpringBoot电商项目模块和功能介绍】和【SpringBoot电商项目项目演示】这两篇博客,可以帮助梳理【商品分类模块】的开发内容;
【商品分类模块】:前台和后台都会用到这个模块;
1.【商品分类模块】:前台中的应用;
(1)【商品分类模块】:前台模块介绍;
说明:
(0) 一般商品会分类的;比如食品类,食品类下面会有水果类别,水果类别下面又有进口水果类别和非进口水果类别;
(1) 多级目录:在项目中,我们也会采用多级目录的形式,去开发;
(2) 递归查询:涉及多级目录的时候,会使用到递归查询;(即,如何在查完一个目录后,去查它的子目录,这是递归查询所要解决的问题;)
(3) 缓存:一般来说,商品分类变化的没那么勤,比如几天才会发生变动;对于这种场景,就非常适合使用缓存;这儿我们会使用redis,把当前商品分类的内容,作为缓存给保存下来;这样一来,每次用户来访问的时候,就不需要都去查询数据库了,大大提升了效率;
(2)【商品分类模块】:前台实际演示;
(3)【商品分类模块】:前台接口文档;
(4)【商品分类模块】:前台总结;
【商品分类模块】前台部分,比较简单;难点就是【多级目录的递归查询】,【使用redis缓存】;
2.【商品分类模块】:后台中的应用;
(1)【商品分类模块】:后台模块介绍;
说明:
(0) 【前台的商品分类】更多的是一种展示、一种缓存;【后台的商品分类】就不同了;
(1) 分类列表:首先,我们要对商品分类进行一个列表的开发;
(2) 然后,后台管理员需要拥有增加分类、修改分类、删除分类的能力;
(2)【商品分类模块】:后台实际演示;
(3)【商品分类模块】:后台接口文档;
(4)【商品分类模块】:后台总结;
【商品分类模块】后台这儿,主要是开发四个接口;
三:【商品分类模块】接口文档:详细介绍;
(1)后台:【增加目录分类】接口;
(2)后台:【更新目录分类】接口;
(3)后台:【删除分类】接口;
(4)后台:【分类列表(平铺)】接口;
该接口返回内容:
{
"status": 10000,
"msg": "SUCCESS",
"data": {
"total": 19,
"list": [
{
"id": 3,
"name": "新鲜水果",
"type": 1,
"parentId": 0,
"orderNum": 1,
"createTime": "2019-12-17T17:17:00.000+0000",
"updateTime": "2019-12-28T09:11:26.000+0000"
},
{
"id": 5,
"name": "海鲜水产",
"type": 1,
"parentId": 0,
"orderNum": 2,
"createTime": "2019-12-17T17:17:00.000+0000",
"updateTime": "2019-12-28T08:25:20.000+0000"
},
{
"id": 6,
"name": "精选肉类",
"type": 1,
"parentId": 0,
"orderNum": 3,
"createTime": "2019-12-17T17:17:00.000+0000",
"updateTime": "2019-12-28T08:25:21.000+0000"
},
{
"id": 9,
"name": "冷饮冻食",
"type": 1,
"parentId": 0,
"orderNum": 4,
"createTime": "2019-12-20T05:45:28.000+0000",
"updateTime": "2019-12-28T08:25:22.000+0000"
},
{
"id": 10,
"name": "蔬菜蛋品",
"type": 1,
"parentId": 0,
"orderNum": 5,
"createTime": "2019-12-20T05:45:28.000+0000",
"updateTime": "2019-12-28T08:25:23.000+0000"
},
{
"id": 27,
"name": "美味菌菇",
"type": 1,
"parentId": 0,
"orderNum": 7,
"createTime": "2019-12-20T05:45:28.000+0000",
"updateTime": "2020-02-10T15:20:36.000+0000"
},
{
"id": 4,
"name": "橘子橙子",
"type": 2,
"parentId": 3,
"orderNum": 1,
"createTime": "2019-12-17T17:17:00.000+0000",
"updateTime": "2019-12-28T08:25:10.000+0000"
},
{
"id": 7,
"name": "螃蟹",
"type": 2,
"parentId": 5,
"orderNum": 1,
"createTime": "2019-12-17T17:17:00.000+0000",
"updateTime": "2019-12-28T08:25:15.000+0000"
},
{
"id": 17,
"name": "冰淇淋",
"type": 2,
"parentId": 9,
"orderNum": 1,
"createTime": "2019-12-17T17:17:00.000+0000",
"updateTime": "2019-12-28T08:25:18.000+0000"
},
{
"id": 16,
"name": "牛羊肉",
"type": 2,
"parentId": 6,
"orderNum": 1,
"createTime": "2019-12-17T17:17:00.000+0000",
"updateTime": "2019-12-28T08:25:18.000+0000"
}
],
"pageNum": 1,
"pageSize": 10,
"size": 10,
"startRow": 1,
"endRow": 10,
"pages": 2,
"prePage": 0,
"nextPage": 2,
"isFirstPage": true,
"isLastPage": false,
"hasPreviousPage": false,
"hasNextPage": true,
"navigatePages": 8,
"navigatepageNums": [ 1, 2 ],
"navigateFirstPage": 1,
"navigateLastPage": 2
}
}
通过接口返回内容,可以知道: 【分类列表(平铺)】接口,没有区分类别,是无差别的查询imooc_mall_category表;
(5)前台:【分类列表(递归)】接口;
该接口返回内容:
{
"status": 10000,
"msg": "SUCCESS",
"data": [
{
"id": 3,
"name": "新鲜水果",
"type": 1,
"parentId": 0,
"orderNum": 1,
"childCategory": [
{
"id": 4,
"name": "橘子橙子",
"type": 2,
"parentId": 3,
"orderNum": 1,
"childCategory": [
{
"id": 19,
"name": "果冻橙",
"type": 3,
"parentId": 4,
"orderNum": 1,
"childCategory": []
}
]
},
{
"id": 11,
"name": "草莓",
"type": 2,
"parentId": 3,
"orderNum": 2,
"childCategory": []
},
{
"id": 12,
"name": "奇异果",
"type": 2,
"parentId": 3,
"orderNum": 3,
"childCategory": []
},
{
"id": 14,
"name": "车厘子",
"type": 2,
"parentId": 3,
"orderNum": 4,
"childCategory": []
},
{
"id": 28,
"name": "其他水果",
"type": 2,
"parentId": 3,
"orderNum": 4,
"childCategory": []
}
]
},
{
"id": 5,
"name": "海鲜水产",
"type": 1,
"parentId": 0,
"orderNum": 2,
"childCategory": [
{
"id": 7,
"name": "螃蟹",
"type": 2,
"parentId": 5,
"orderNum": 1,
"childCategory": []
},
{
"id": 8,
"name": "鱼类",
"type": 2,
"parentId": 5,
"orderNum": 2,
"childCategory": []
},
{
"id": 13,
"name": "海参",
"type": 2,
"parentId": 5,
"orderNum": 3,
"childCategory": []
}
]
},
{
"id": 6,
"name": "精选肉类",
"type": 1,
"parentId": 0,
"orderNum": 3,
"childCategory": [
{
"id": 16,
"name": "牛羊肉",
"type": 2,
"parentId": 6,
"orderNum": 1,
"childCategory": []
}
]
},
{
"id": 9,
"name": "冷饮冻食",
"type": 1,
"parentId": 0,
"orderNum": 4,
"childCategory": [
{
"id": 17,
"name": "冰淇淋",
"type": 2,
"parentId": 9,
"orderNum": 1,
"childCategory": []
}
]
},
{
"id": 10,
"name": "蔬菜蛋品",
"type": 1,
"parentId": 0,
"orderNum": 5,
"childCategory": [
{
"id": 18,
"name": "蔬菜综合",
"type": 2,
"parentId": 10,
"orderNum": 1,
"childCategory": []
}
]
},
{
"id": 27,
"name": "美味菌菇",
"type": 1,
"parentId": 0,
"orderNum": 7,
"childCategory": [
{
"id": 15,
"name": "火锅食材",
"type": 2,
"parentId": 27,
"orderNum": 5,
"childCategory": []
}
]
}
]
}
通过接口返回内容,可以知道: 【分类列表(递归)】接口,在查询的时候,需要兼顾分类的层级,按照分类的层级,递归的查询出来,以便在前台目录的进行显示: