电商项目——商品详情——第八章——中篇

电商项目——全文检索-ElasticSearch——第一章——中篇
电商项目——商城业务-商品上架——第二章——中篇
电商项目——商城业务-首页——第三章——中篇
电商项目——性能压测——第四章——中篇
电商项目——缓存——第五章——中篇
电商项目——商城业务-检索服务——第六章——中篇
电商项目——商城业务-异步——第七章——中篇
电商项目——商品详情——第八章——中篇
电商项目——认证服务——第九章——中篇
电商项目——购物车——第十章——中篇
电商项目——消息队列——第十一章——中篇
电商项目——订单服务——第十二章——中篇
电商项目——分布式事务——第十三章——中篇

在这里插入图片描述

1:环境搭建

前面我们复习了异步和线程池里的内容,接下来我们就编写商城业务里面的商品详情功能;
第一步:编写域名,指定映射到虚拟机的ip地址中
在这里插入图片描述
第二步:配置网关

      - id: mall_host_route
        uri: lb://mall-product
        predicates:
          - Host=zlj.mall.com,item.mall.com  

第三步:实现动静分离(使用nginx)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四步:写一个controller进行测试
mall-product
ItemController

@Controller
public class ItemController {
   

    @RequestMapping("/{skuId}.html")
    public String itemPage(@PathVariable("skuId") Long skuId){
   

        return "item";
    }
}

测试:mall-search,在list.html页面中点击,如下的图片可以进行成功跳转到item.html页面中
在这里插入图片描述
mall-search
list.html

                            <p class="da">
                                <a th:href="|http://item.mall.com/${product.skuId}.html|">
                                    <img th:src="${product.getSkuImg()}" class="dim">
                                </a>
                            </p>

跳转成功
在这里插入图片描述

2:模型抽取

封装一个vo,(返回给页面)和生成一个查询传进来的skuid找到对应的属性值的方法
mall-product
SkuItemVo

@Data
public class SkuItemVo {
   

    //1:sku基本信息获取 pms_sku_info
    SkuInfoEntity info;

    //2:sku图片信息 pms_sku_images(自定义封装)
    List<SkuImagesEntity> images;

    //3:获取spu的销售属性组合
    List<SkuItemSaleAttrsVo> saleAttr;

    //4:获取spu的介绍
    SpuInfoDescEntity desp;

    //5:获取spu的规格参数信息(自定义封装)

    List<SpuItemAttrGroupVo> groupAttrs;

    @Data
    public static class SkuItemSaleAttrsVo{
   
        private Long attrId;
        private String attrName;
        private List<String> attrValues;
    }

    @Data
    public static class SpuItemAttrGroupVo{
   

        private String groupName;
        private List<SpuBaseAttrVo> atts;
    }

    @Data
    public static class SpuBaseAttrVo{
   
        private String attrName;
        private List<String> attrValues;
    }
}

ItemController

@Controller
public class ItemController {
   

    @Autowired
    SkuInfoService skuInfoService;
    @RequestMapping("/{skuId}.html")
    public String itemPage(@PathVariable("skuId") Long skuId){
   

        System.out.println("准备查询"+skuId+"详情");
        SkuItemVo vo= skuInfoService.item(skuId);
        return "item";
    }
}

SkuInfoService :代码大致框架

    @Override
    public SkuItemVo item(Long skuId) {
   

        SkuItemVo skuItemVo=new SkuItemVo();
        //1:sku基本信息获取 pms_sku_info

        //2:sku图片信息 pms_sku_images

        //3:获取spu的销售属性组合

        //4:获取spu的介绍

        //5:获取spu的规格参数信息
        

        return null;
    }

3:规格参数

mall-product
SkuInfoService

    @Override
    public SkuItemVo item(Long skuId) {
   

        SkuItemVo skuItemVo=new SkuItemVo()
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值