1.首先我们来看一下点击品牌新增然后提交:
- 我们可以看到请求的路径还是brand,所以我们可以在BrandController.class下写一个接收post请求的方法。
2.我们再看看发送请求的字段:
- 我们可以发现,里面除了cids之外,其他的就是我们Brand.class的实体类。
- 这个cids其实就是品牌分类表的id,就是为了我们存储这个品牌信息时候,一块将它属于哪个品牌下的信息一块存储。
- 所以我们需要使用qs工具来将字段分开,方便我们处理。
3.添加前端引用qs工具处理json对象:
- 打开item-manage-web下的src/pages/item/BrandForm.vue添加如下代码:
4.然后我们再测试: - 被成功分开了,不再是json对象
5.dao层代码: - 打开mapper/BrandMapper.class添加如下代码
/**
* 新增品牌
* @param brand
* @param cids
* @return
*/
@PostMapping
public ResponseEntity<Void> saveBrand(Brand brand, @RequestParam("cids") List<Long> cids){
this.brandService.saveBrand(brand,cids);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
6.service层代码:
- 打开service/BrandService.class添加如下代码
/**
* 新增品牌
* @param brand
* @param cids
*/
@Transactional //增加事务
public void saveBrand(Brand brand,List<Long> cids){
//先新增brand
this.brandMapper.insertSelective(brand);
//再新增中间表
cids.forEach(cid -> {
this.brandMapper.insertCategoryAndBrand(cid,brand.getId());
});
}
7.控制层代码:
- 打开controller/BrandController.class添加如下代码
/**
* 新增品牌
* @param brand
* @param cids
* @return
*/
@PostMapping
public ResponseEntity<Void> saveBrand(Brand brand, @RequestParam("cids") List<Long> cids){
this.brandService.saveBrand(brand,cids);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
8.然后重新启动商品微服务的引导类:
- 新增品牌:
- 保存成功
- 我们去数据库中看一下有没有。
- 品牌页:
- 小红前面的id为自动生成的品牌记录id。
- 中间表页:
- 对应的57和61就是在选择品牌所属分类时候所选品牌的对应id。