目录
商城业务-商品详情-环境搭建
商城业务-商品详情-模型抽取
商城业务-商品详情-规格参数
商城业务-商品详情-销售属性组合
商城业务-商品详情-详情页渲染
商城业务-商品详情-销售属性渲染
商城业务-商品详情-sku组合切换
商城业务-商品详情-异步编排优化
商城业务-商品详情-环境搭建
京东搜索页的域名为:search.jd.com
京东详情页的域名为:item.jd.com
①为商品详情页配置域名
②nginx中之前已经配置Ok
cd mydata/nginx/conf.d
cat gulimall.conf
③配置网关
④ 上传静态资源
将 shangpinxiangqing.html 复制 product 服务中的 templates,并修改名字为item.html
将静态资源上传至nginx中
点击上传按钮
1.在nginx中的html文件夹下创建item文件夹
2. 上传静态资源
3. 修改静态资源请求路径 (CTRL+R)
选中href=",CTRL+R进行替换
⑤编写Controller
请求路径中带有skuId:skuId.html
⑥搜索页跳转详情页功能编写
右击检查,精确查找
thymeleaf中的||包含的为字符串
商城业务-商品详情-模型抽取
①获取sku的基本信息,数据来自于pms_sku_info表
②sku的图片信息,数据来自于 pms_sku_images表
③spu下的sku组合信息
④spu的介绍,数据来源于pms_spu_info_desc表
⑤spu的规格参数
编写Vo
由于使用内部类,编写sql时获取不到内部类,因此,将内部类抽取出来
商城业务-商品详情-规格参数
编写接口
①获取sku的基本信息,数据来自于pms_sku_info表
②sku的图片信息,数据来自于 pms_sku_images表
③ spu的介绍,数据来源于pms_spu_info_desc表
④spu的规格参数
通过catalogId查询关联的属性组,通过属性组查询关联的属性,通过关联的属性查询商品规格参数
说明:数据库字段名与实体类属性名不一致时,需要通过起别名或者编写resultMap进行一一映射
进行测试:
商城业务-商品详情-销售属性组合
通过spuId获取每个skuId,通过skuId获取销售属性组合
mysql中的group_concat函数详解:mysql之group_concat函数详解_Garfield_cat_cat的博客-CSDN博客_group_concat函数详解
商城业务-商品详情-详情页渲染
加入名称空间
1.渲染标题
2.默认图片展示
3.价格显示
整数保留3位,小数保留2位
4.有货无货信息显示,默认有货
5.所有图片的展示
6.渲染销售属性
${#strings.listSplit(namesStr,',')} // returns List<String>
7.商品描述
8.规格参数显示
取出超链接否则跳转出错
商城业务-商品详情-销售属性渲染
下面要实现的功能就是点击商品的销售属性自动进行一个跳转:
如何确定选择skuId呢?
具有粉色属性的skuId集合与256GB内存的skuId集合作交集
sql语句如下:
改写封装的销售属性的Vo:
改写sql语句:
改写之前写的页面 :
回显功能显示:
①拥有该属性值的skuId集合包含当前查询的skuId时,将class设置为checked
②为被选中的属性值设置样式
未被选中样式:
被选中样式:
当页面加载完成后,将所有css设置为未被选中样式,然后checked为选中样式
商城业务-商品详情-sku组合切换
1.为点击的元素添加上自定义的属性,为了识别是刚被点击的
2.封装当前被点击元素的skuIds
3. 去掉同一行中的checked
4.封装其它被选中元素的skuIds
5. 求交集
6. 路径跳转
商城业务-商品详情-异步编排优化
1.编写业务线程池配置类
①导入编写配置文件的提示依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>
②编写配置类
③ 配置配置文件
④ 编写线程池
⑤异步编排
3、4、5操作需要1操作完成之后才能执行
注入线程池对象