document
API test

规格维护

POST

Description or Example

# BUG修复 ## 404页面了怎么办? ![image.png](https://cos.easydoc.net/13568421/files/lk9i7jj4.png) # 核心代码 ```java @RequestMapping("/update/{spuId}") public R updateBaseAttr(@PathVariable("spuId") Long spuId, @RequestBody List<ProductAttrValueEntity> productAttrValueEntities) { productAttrValueService.updateBaseAttrBySpuId(spuId, productAttrValueEntities); return R.ok(); } ``` ```java @Override @Transactional public void updateBaseAttrBySpuId(Long spuId, List<ProductAttrValueEntity> productAttrValueEntities) { // 根据spuId将原来的全部删掉 LambdaUpdateWrapper<ProductAttrValueEntity> wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(ProductAttrValueEntity::getSpuId, spuId); this.baseMapper.delete(wrapper); // 必须设置规格参数, 否则更新无效 if (productAttrValueEntities != null && !productAttrValueEntities.isEmpty()) { List<ProductAttrValueEntity> entities = productAttrValueEntities.stream().map(productAttrValueEntity -> productAttrValueEntity.setSpuId(spuId)) .collect(Collectors.toList()); this.saveBatch(entities); }else { throw new RuntimeException("必须设置规格参数"); } } ``` # 扩展知识 ## 更新数据的策略是什么? > 首先明确的是, 一个SPU下可能会有多个规格参数, 如果要对这些规格参数进行修改, 如果在原来的基础上修改, 会非常的麻烦, 所以, 采取了一种更为便捷的方式 > 即, 将原来所有的规格参数都删除了, 以最终跟新的规格参数为准添加