微服务项目之电商--12.商品分类查询分析和书写业务代理实现商品类型查询

目录

一、商品分类查询

1、导入数据

商品分类的数据结构 

书写业务代理实现商品类型查询


一、商品分类查询

  • 一个商品分类下有很多商品

  • 一个商品分类下有很多品牌

  • 而一个品牌,可能属于不同的分类

  • 一个品牌下也会有很多商品

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扫描

测试

 

访问出现问题

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值