目录
一、商品分类查询
-
一个商品分类下有很多商品
-
一个商品分类下有很多品牌
-
而一个品牌,可能属于不同的分类
-
一个品牌下也会有很多商品
1、导入数据
docker启动mysql
导入数据
商品分类的数据结构
由于在商品中中存在级别,所以需要设置父节点,以及自身是否是父节点
CREATE TABLE `tb_category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '类目id',
`name` varchar(20) NOT NULL COMMENT '类目名称',
`parent_id` bigint(20) NOT NULL COMMENT '父类目id,顶级类目填0',
`is_parent` tinyint(1) NOT NULL COMMENT '是否为父节点,0为否,1为是',
`sort` int(4) NOT NULL COMMENT '排序指数,越小越靠前',
PRIMARY KEY (`id`),
KEY `key_parent_id` (`parent_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1424 DEFAULT CHARSET=utf8 COMMENT='商品类目表,类目和商品(spu)是一对多关系,类目与品牌是多对多关系';
分类管理
在配置中我们配置了路径和前缀
为什么要配置前缀是因为我们zuul网关配置了前缀
又因为zuul配置了请求拦截item下所以,所以前端能够直接通过zuul拦截,访问后台
然后zuul就会去eureka拉取服务item-service
我们需要在controller中写的业务
请求返回的格式
书写业务代理实现商品类型查询
编写一个controller一般需要知道四个内容:
-
请求方式:Get
-
请求路径:/api/item/category/list。其中/api是网关前缀,/item是网关的路由映射,真实的路径应该是/category/list
-
请求参数:pid=0,根据tree组件的说明,应该是父节点的id,第一次查询为0,那就是查询一级类目
-
返回结果:??
根据前面tree组件的用法我们知道,返回的应该是json数组:
[
{
"id": 74,
"name": "手机",
"parentId": 0,
"isParent": true,
"sort": 2
},
{
"id": 75,
"name": "家用电器",
"parentId": 0,
"isParent": true,
"sort": 3
}
]
在ly-item-interface项目创建category类
引入相关依赖
在ly-item-service项目
创建categorymapper接口实现Mapper
创建categoryService类
创建categoryController类
传入一个category对象,通过该对象中的非空属性进行查询
在没有查到的情况下返回404,需要在自定义异常处理 那里添加异常
添加mapper扫描
测试
访问出现问题