changgou-day03
- 目标
- 理解SKU 和SPU
- 实现商品的添加 商品的修改 (8个表)
1 sku和spu
SPU = Standard Product Unit (标准产品单位)SKU = stock keeping unit( 库存量单位)单品:没有规格(属性)的商品
2 表结构
分类表:1.parent_id =0的时候表示 该分类没有父分类(他是一个顶级分类/一级分类)-- 查询 所有的一级分类的列表数据select * from tb_category where parent_id=0;-- 查询出 图书、音像、电子书刊 的直接子分类的列表select * from tb_category where parent_id=2;
3 需求查询分类的列表
思路:
页面加载的时候发送请求 获取 一级 二级 三级分类的列表展示请求: /category/list/{pid} GET参数:pid 传递要查询的分类的ID作为parent_id来执行SQL返回值:result<List<Category>>select * from tb_category where parent_id=?(你传递过来的id的值,如果是0 标识一级分类)

驼峰命名转换开启mybatis:configuration:map-underscore-to-camel-case: true # 开启驼峰命名 (自动将 下划线转换成大写)



4 品牌列表数据展示
思路:+ 当点击了三级分类之后+ 展示品牌的列表(展示的是点击到的三级分类ID对应的那些品牌的列表数据)select tbb.* from tb_category_brand tcb,tb_brand tbb where tcb.category_id=76 and tbb.id=tcb.brand_id;


思路:
当点击下拉框的时候发送请求 查询 当前第三级分类对应的品牌的列表数据返回前端请求:/brand/category/{id} GET参数:分类的ID (三级分类的ID) Integer返回值:Result<List<Brand>>
5 规格的列表数据展示
思路:
展示 当前点击到的三级分类对应的规格列表数据,并不应该展示所有的规格的列表+ 1.select template_id from tb_category where id=76(之前点击到的三级分类的ID)+ 2.select * from tb_spec where template_id=上边查询到的ID+ 3.返回给前端

请求:
请求: /spec/category/{id} GET参数:三级分类的ID返回值:result<List<spec>>
6.参数列表数据展示
思路:
展示 你点击到的3级分类对应的参数的列表 并不应该展示所有的参数的列表
7 保存商品
1.创建POJO 组合spu和sku的列表属性2.发送请求 该组合POJO 来接收请求体对象3.将数据添加到sku表和spu表中请求路径:/spu/save POST参数:表单数据(Goods来接收)返回值:result true/false
8 雪花算法
是由64位二进制的数据组成(时间戳+工作机器ID+数据中心ID+序列) 共同组成的数字:递增的趋势。数据长度不长,比较适中。
9 测试添加商品
测试添加数据
{"skuList": [{"alertNum": 10,"brandName": "华为","categoryId": 64,"commentNum": 0,"image": "http://www.baidu.com","images": "","name": "华为P30手机","num": 5,"price": 1000,"saleNum": 0,"sn": "No1001","spec": "{\"颜色\":\"红\",\"机身内存\":\"64G\"}","weight": 0},{"alertNum": 10,"brandName": "华为","categoryId": 64,"commentNum": 0,"image": "http://www.baidu.com","images": "","name": "华为P30手机","num": 5,"price": 1000,"saleNum": 0,"sn": "No1001","spec": "{\"颜色\":\"绿\",\"机身内存\":\"64G\"}","weight": 0},{"alertNum": 10,"brandName": "华为","categoryId": 64,"commentNum": 0,"image": "http://www.baidu.com","images": "","name": "华为P30手机","num": 5,"price": 1000,"saleNum": 0,"sn": "No1001","spec": "{\"颜色\":\"绿\",\"机身内存\":\"8G\"}","weight": 0},{"alertNum": 10,"brandName": "华为","categoryId": 64,"commentNum": 0,"image": "http://www.baidu.com","images": "","name": "华为P30手机","num": 5,"price": 1000,"saleNum": 0,"sn": "No1001","spec": "{\"颜色\":\"红\",\"机身内存\":\"8G\"}","weight": 0}],"spu": {"brandId": 8557,"caption": "104期手机大促销","category1Id": 1,"category2Id": 59,"category3Id": 64,"commentNum": 0,"freightId": 0,"images": "http://www.qingcheng.com/image/1.jpg,http://www.qingcheng.com/image/2.jpg","introduction": "华为产品世界最强","isEnableSpec": "1","isMarketable": "1","name": "104期特牛逼的手机","specItems": "{\"颜色\":[\"红\",\"绿\"],\"机身内存\":[\"64G\",\"8G\"]}","paraItems": "{\"赠品\":\"充电器\",\"出厂年份\":\"2019\"}","saleNum": 0,"saleService": "一年包换","sn": "No10001","status": "1","templateId": 42}}
10 修改商品
1 回显数据请求: /spu/goods/{id} GET参数: spu的ID返回值:Result<Goods>2 修改数据 判断是否更新和添加(通过spu的ID 是否有值来判断)请求: /spu/save POST参数:goods返回值:result
