文章目录
这一部分是关于商品详情页的内容,商品详情页包含五部分的内容:
- sku基本信息
- sku图片信息
- spu的销售属性
- spu的介绍
- spu的规格参数
由下面几集构成:
- 203-商城业务-商品详情-环境搭建
- 204-商城业务-商品详情-模型抽取
- 205-商城业务-商品详情-规格参数
- 206-商城业务-商品详情-销售属性组合
- 207-商城业务-商品详情-详情页渲染
- 208-商城业务-商品详情-销售属性渲染
- 209-商城业务-商品详情-sku组合切换
- 210-商城业务-商品详情-异步编排优化
一,页面环境搭建
1,上传详情页静态资源到nignx
使用xftp将课程提供的详情页静态资源上传到nginx的html/static/item
目录。
2,拷贝详情页html模板到product模块的templates文件夹下
3,新增ItemController类
在Product模块的web包下,新增ItemController类,在其中添加详情页接口。
@Controller
public class ItemController {
@Resource
private SkuInfoService skuInfoService;
/**
* 展示当前sku的详情
* @param skuId
* @return
*/
@GetMapping("/{skuId}.html")
public String skuItem(@PathVariable("skuId") Long skuId, Model model) throws ExecutionException, InterruptedException {
return "item";
}
}
二,后台接口逻辑实现
这个接口的实现,逻辑也比较复杂,一定要做好两步:
- 先理解业务需求
- 根据需求设计返回给前端的数据结构。
这两步完成之后,编码水到渠成。
@Override
public SkuItemVo item(Long skuId) throws ExecutionException, InterruptedException {
SkuItemVo skuItemVo = new SkuItemVo();
CompletableFuture<SkuInfoEntity> infoFuture = CompletableFuture.supplyAsync(() -> {
// 1、sku基本信息的获取 pms_sku_info
SkuInfoEntity info = this.getById