JAVA全系列 教程
3762个小节阅读:7090.8k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
在通用模块添加商品服务接口
xxxxxxxxxx
/**
* 商品服务
*/
public interface GoodsService {
// 新增商品
void add(Goods goods);
// 修改商品
void update(Goods goods);
// 根据id查询商品详情
Goods findById(Long id);
// 上架/下架商品
void putAway(Long id,Boolean isMarketable);
// 分页查询
Page<Goods> search(Goods goods, int page, int size);
}
新增商品时,需要新增商品数据,商品图片数据,商品_规格项数据。需要创建GoodsMapper
和GoodsImageMapper
xxxxxxxxxx
public interface GoodsMapper extends BaseMapper<Goods> {
// 添加商品_规格项数据
void addGoodsSpecificationOption(@Param("gid") Long gid, @Param("optionId")Long optionId);
}
public interface GoodsImageMapper extends BaseMapper<GoodsImage> {
}
编写映射文件GoodsMapper.xml
xxxxxxxxxx
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itbaizhan.shopping_goods_service.mapper.GoodsMapper">
<insert id="addGoodsSpecificationOption">
INSERT INTO bz_goods_specification_option VALUES(#{gid},#{optionId})
</insert>
</mapper>
编写商品服务接口实现类
xxxxxxxxxx
@DubboService
public class GoodsServiceImpl implements GoodsService {
@Autowired
private GoodsMapper goodsMapper;
@Autowired
private GoodsImageMapper goodsImageMapper;
@Override
public void add(Goods goods) {
// 插入商品数据
goodsMapper.insert(goods);
// 插入图片数据
Long goodsId = goods.getId(); // 获取商品主键
List<GoodsImage> images = goods.getImages(); // 商品图片
for (GoodsImage image : images) {
image.setGoodsId(goodsId); // 给图片设置商品id
goodsImageMapper.insert(image); //插入图片
}
// 插入商品_规格项数据
// 1.获取规格
List<Specification> specifications = goods.getSpecifications();
// 2.获取规格项
List<SpecificationOption> options = new ArrayList(); //规格项集合
// 遍历规格,获取规格中的所有规格项
for (Specification specification : specifications) {
options.addAll(specification.getSpecificationOptions());
}
// 3.遍历规格项,插入商品_规格项数据
for (SpecificationOption option : options) {
goodsMapper.addGoodsSpecificationOption(goodsId,option.getId());
}
}
}
编写商品控制器
xxxxxxxxxx
/**
* 商品
*/
@RestController
@RequestMapping("/goods")
public class GoodsController {
@DubboReference
private GoodsService goodsService;
/**
* 新增商品
*
* @param goods 商品实体
* @return 执行结果
*/
@PostMapping("/add")
public BaseResult add(@RequestBody Goods goods) {
goodsService.add(goods);
return BaseResult.ok();
}
}
测试接口