商城中的购物车怎么做?(一)

[亡魂溺海] 提交于 2019-12-10 22:49:35

it is public knowledge that 购物车在电商项目中是必定要出现的,那么,购物车到底应该怎么做呢?大致思路是什么呢?
下面以笔者的一个小购物车的demo为例,用来示范一下购物车创建的大致思路!

一,项目搭建
首先建议创建一个cart专用的服务器,cart_web,cart_service,cart_interface.

二.逻辑分析
首先,购物车分为两部分组成:
商家信息(sellerName,sellerId)和商品信息(itemList是一个集合)
在这里插入图片描述

  • 1. 购物车添加分为两种情况:

    未登录时:
    将购物车的商品添加到cookie缓存中
    登录后:
    将购物车商品添加到redis中,并且合并cookie中的数据,最后再将cookie清空。

  • 添加商品的逻辑
    要进行两次循环判断,首先判断添加的商品的商家信息,原有购物车中是否有这个商家的商品,如果没有,则直接创建一个新的商家,商品信息。如果有,则判断已有的商品的规格信息和添加的新商品是否为统一规格型号,如果是同一规格型号,则直接在数量上和价格上添加,如果不是同一规格型号,则直接创建一个新的itemList集合进行添加。
    在这里插入图片描述
    3.查看购物车信息
    分为两种情况:
    如果未登录,则从cookie中查看购物车信息
    如果已经登录,则从redis中读取,并且合并cookie中缓存,一起展示出来,同时清除cookie。

三.代码编写

  • 查看购物车列表的功能:
    不管是否登,都先从cookie中取一下,然后再判断cookie中是否存在,若果没有,就给他一个空集合,在判断是否登录,如果未登录,就直接显示出来cookie中的商品,如果登录了,就从redis中查找,并且合并两个,再把cookie删除,统一保存到redis中。
    在这里插入图片描述
    如果登录,从redis中查找信息方法:
    service层中实现
    合并cookie和redis:
    在这里插入图片描述

  • 添加方法:

    controller层:
    saveListToRedis内容: 在这里插入图片描述

service层实现: 在这里插入图片描述
其中两个判断是否有此商家和是否为同一型号的两个小方法:
在这里插入图片描述
在这里插入图片描述
如果都没有,则创建一个新的订单信息:
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!