热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

查询购物车列表时的索引

查询购物车记录接口,需要购物车列表(购物车信息)商品表(商品的信息比如商品的名称)套餐表(套餐的名称,套餐的价格,套餐的具体内容)商品图片表(商品图片){code:10000,ms

查询购物车记录接口,需要购物车列表(购物车信息)商品表(商品的信息比如商品的名称)套餐表(套餐的名称,套餐的价格,套餐的具体内容)商品图片表(商品图片)


{
"code": 10000,
"msg": "success",
"data": [
{
"cartId": 76,
"productId": "1",
"skuId": "3",
"userId": "7",
"cartNum": "1",
"cartTime": null,
"productPrice": 8,
"skuProps": "口味:草莓;",
"productName": "奥利奥小饼干",
"url": "ala_1.png",
"originalPrice": 10,
"sellPrice": 8,
"skuName": "奥奥奥分享装",
"stock": 147
}
]
}

而原本的购物车实体类是没有商品信息这些东西的,只有商品的id,所以需要新建购物车实体类


实体类



dao->mapper


这里做了一个索引优化

ALTER TABLE shopping_cart ADD INDEX c_all(cart_id,product_id,sku_id,user_id,cart_num,cart_time,product_price,sku_props)
ALTER TABLE product_img ADD INDEX itemidx (item_id)


这里是要查询购物车列表的全部字段,所以全部字段都需要建立索引,productId是商品表的主键,主键自动建立唯一索引,skuId是套餐表的主键,但是item_id并不是图片表的主键,所以要建立索引


选择购物车列表数据提交订单时,可以用同一个索引


SELECT c.cart_id ,c.product_id ,c.sku_id,
c.user_id,c.cart_num ,c.cart_time,c.product_price,
c.sku_props,s.original_price,s.sell_price,s.sku_name,
p.product_name,i.url,s.stock
FROM shopping_cart c
INNER JOIN product p
INNER JOIN product_img i
INNER JOIN product_sku s
ON s.sku_id=c.sku_id
AND p.product_id=c.product_id
AND i.item_id=c.product_id
WHERE i.is_main=1 AND c.cart_id IN(76,77)

动态sql的编写




Sercive层实现类


@Override
public ResultVo getshopcartsbyCartids(String cids) {//从前端传入到后端的是字符串,
// 在service层进行拼接
String[] arr = cids.split(",");
ListcartIds=new ArrayList<>();
for (String s : arr) {
cartIds.add(Integer.parseInt(s));
}
List shoppingCartList =
shoppingCartMapper.selectShoppingCartByICartIds(cartIds);
return new ResultVo(ResStatus.OK,"success",shoppingCartList);
}


推荐阅读
author-avatar
hitwill
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有