电商项目--------------------商品(SKU)规格、价格功能

本文详细介绍了电商项目中商品规格和价格功能的实现,包括商品详情页规格选项的展示,如何根据规格组合查询对应价格。通过SQL左外连接查询、Java后台操作、XML配置以及前端Ajax交互来实现功能。特别地,针对多规格组合选择的bug进行了修复,确保了商品价格的准确计算和展示。文章最后讨论了规格不存在和库存为零的情况处理。
摘要由CSDN通过智能技术生成

目录

1.功能介绍:

2.核心功能实现:


1.功能介绍:

当我们进入商品详情页面时

            ①、商品的规格选项栏,规格选项栏目展示(可选择———部分展示,即已有规格选项

                   默认展示基础价格商品,基础价格=商品默认价格+规格价格(前提:不同规格价格不同

            ②、选择不同规格的组合,展示对应的商品价格

2.核心功能实现:

第一部分:

sql语句逻辑操作实现

-- 查询sku对应的规格以及规格中的规格选项
SELECT
  hg_spec.*,
  hg_spec_option.id  spec_option_id,
  hg_spec_option.option_name,
  hg_spec_option.orders
FROM hg_spec
  LEFT JOIN hg_spec_option
    ON hg_spec.id = hg_spec_option.spec_id
WHERE hg_spec.id IN(SELECT DISTINCT
                      (spec_id)
                    FROM hg_sku_spec
                    WHERE sku_id = 3);

左外连接查询规格表hg_spec,规格选项中间表hg_spec_option中 相应参数,使用in关键字操作(根据商品规格中间表hg_sku_spec查询该商品的所有规格参数

做题思路:为了效果展示明确,可以三表连查获取商品规格的明确信息,也就是对应的id值,同时根据商品的skuId来查询相应的商品规格,但是商品对应多个规格值,所以要子查询出该商品的多个规格的id,利用in关键字查询出当前商品的正确规格

java代码实现(后台操作)

xml文件

	<!-- 实体类与数据库映射 -->
    <resultMap type="Specs" id="specsMap" autoMapping="true">
		<id column="id" property="id" />
		<collection property="specOptions" ofType="SpecOptions"
			column="id" select="selectSpecOptionsBySpecId"></collection>
	</resultMap>

    <!-- 查询sku拥有的spec规格 -->
	<select id="selectBySkuId" resultType="Integer">
		SELECT DISTINCT(spec_id)
		FROM hg_sku_spec WHERE sku_id=#{value}
	</select>

	<!-- 根据规格ids查询 规格下的规格选项 -->
	<select id="selectByIds" resultMap="specsMap">
		SELECT * FROM hg_spec WHERE id IN
		<foreach collection="list" open="(" close=")" separator="," item="id">
			#{id}
		</foreach>
	</select>

service实现类调用

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值