商城项目(2.0版本) day06

一、Item商品详情

1.1 商品详情的介绍

1 电商的前台系统和后台系统区别
前台页面更丰富、前台消费者用户、前台系统压力更大、前台系统多用缓存负载均衡,数据的一致性

后台页面更专业、后台管理人员或商家、后台系统压力更小、后台系统直连数据库,数据的一致性

2电商的前台系统和后台系统联系
数据结构是同一套,后台系统的一些设置可以控制前台系统的运行方式

1.2 商品详情的介绍

1 首页(静态化)
2 检索页(搜索引擎)
3 详情页(缓存、切换、推荐)
4 购物车页(cookie、redis)
5 结算页(订单页)(一致性校验、安全)
6 支付页(安全、对接支付平台)

二、Item代码实现

2.1 项目的结构示意图

在这里插入图片描述

这里 我们没有创建一个 Item-service 层来处理 Item-web的请求.
因为 我们发现 在Manage-service 中 有这个service的创建,所以我们 在Manage-service 中添加新的接口,这就是soa面向服务的设计。

2.2 Thymeleaf
2.2.1 Thymeleaf在工程中的使用

1 创建一个item-web的商品详情工程
2 配置item-web,pom,properites
3 引入thymeleaf的依赖,thymeleaf是springboot的原生渲染模板,它使用的是html的扩展标签,需要在页面上声明thymeleaf的模板约束

在这里插入图片描述

4 为thymeleaf加入松校验、热部署

!-- thymeleaf支持包、可以设置松校验、热部署 -->
<dependency>
    <groupId>net.sourceforge.nekohtml</groupId>
    <artifactId>nekohtml</artifactId>
</dependency>

<dependency>
    <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
</dependency>

<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>batik-ext</artifactId>
</dependency>

配置

# 关闭thymeleaf的缓存(热部署)
spring.thymeleaf.cache=false
# 松校验
spring.thymeleaf.mode=LEGACYHTML5

5 在th模板中使用js并且在js中使用th的标签表达式传参

在这里插入图片描述

6 将静态页面引入项目

在这里插入图片描述

2.2.2 Thymeleaf的一些其他的语法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、功能实现

3.1 数据模型

根据销售属性切换一个sku的其他兄弟姐妹
Pms_sku_info pms_sku_image

Pms_sku_sale_attr_value
Pms_spu_sale_attr
Pms_spu_sale_attr_value

3.2 如何实现这些数据模型对应的业务功能

A页面得到销售属性列表(当前sku对应spu的id)
Pms_spu_sale_attr
Pms_spu_sale_attr_value

SELECT
	*
FROM
	pms_product_sale_attr sa,
	pms_product_sale_attr_value sav
WHERE
	sa.product_id = sav.product_id
AND sa.sale_attr_id = sav.sale_attr_id
and sa.product_id = ?


SELECT
	sa.*, sav.*, if(ssav.sku_id,1,0) as isChecked
FROM
	pms_product_sale_attr sa
INNER JOIN pms_product_sale_attr_value sav ON sa.product_id = sav.product_id
AND sa.sale_attr_id = sav.sale_attr_id
AND sa.product_id = 66
LEFT JOIN pms_sku_sale_attr_value ssav ON sav.id = ssav.sale_attr_value_id
AND ssav.sku_id = 108

B页面根据销售属性的选择的组合,定位到关联的sku
通过页面被选择属性值id
查询中间表pms_sku_sale_attr_value
得到skuId

SELECT
	sku_id
FROM
	pms_sku_sale_attr_value ssav
WHERE
	ssav.sale_attr_id IN (销售属性id1,销售属性id2)
AND ssav.sale_attr_value_id IN (销售属性值id1,销售属性值id2)

C 根据skuId查询到sku对象返回到页面
D功能优化
在用户进入某一个spu领域后,将该spu所包含的sku们和这些sku对应的销售属性值
生成一个k是销售属性值组合,v是skuId的hash表格,放到页面上
k:239|243 v:106
k:239|244 v:107
k:240|245 v:108
在用户选择完销售属性之后,根据hash的组合找到对应的skuid

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值