JAVA全系列 教程
3762个小节阅读:7095.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改商品时,修改商品图片和规格项,我们先删除旧的图片和规格项数据,再插入新的图片和规格项数据。首先我们在GoodsMapper
中添加删除商品下的所有规格项
方法。
xxxxxxxxxx
public interface GoodsMapper extends BaseMapper<Goods> {
// 删除商品下的所有规格项
void deleteGoodsSpecificationOption(Long gid);
}
编写映射文件GoodsMapper.xml
xxxxxxxxxx
<delete id="deleteGoodsSpecificationOption" parameterType="long">
DELETE FROM bz_goods_specification_option WHERE gid = #{gid}
</delete>
编写商品服务接口实现类
xxxxxxxxxx
@Override
public void update(Goods goods) {
// 删除旧图片数据
Long goodsId = goods.getId(); // 商品id
QueryWrapper<GoodsImage> queryWrapper = new QueryWrapper();
queryWrapper.eq("goodsId",goodsId);
goodsImageMapper.delete(queryWrapper);
// 删除旧规格项数据
goodsMapper.deleteGoodsSpecificationOption(goodsId);
// 插入商品数据
goodsMapper.updateById(goods);
// 插入图片数据
List<GoodsImage> images = goods.getImages(); // 商品图片
for (GoodsImage image : images) {
image.setGoodsId(goodsId); // 给图片设置商品id
goodsImageMapper.insert(image); // 插入图片
}
// 插入商品_规格项数据
List<Specification> specifications = goods.getSpecifications(); // 获取规格
List<SpecificationOption> options = new ArrayList(); // 规格项集合
// 遍历规格,获取规格中的所有规格项
for (Specification specification : specifications) {
options.addAll(specification.getSpecificationOptions());
}
// 遍历规格项,插入商品_规格项数据
for (SpecificationOption option : options) {
goodsMapper.addGoodsSpecificationOption(goodsId,option.getId());
}
}
编写商品控制器
xxxxxxxxxx
/**
* 修改商品
*
* @param goods 商品实体
* @return 执行结果
*/
@PutMapping("/update")
public BaseResult update(@RequestBody Goods goods) {
goodsService.update(goods);
return BaseResult.ok();
}
测试接口