购物车

购物车

南笙酒味 提交于 2020-01-30 01:06:32
1.介绍 1. 购物车在不登陆的情况下,也可以使用 需要引入浏览器cookie的操作 2. 购物车在登陆情况下,需要使用Redis和MySQL来存储数据 Redis作为购物车缓存 3. 在缓存情况下,或者用户添加购物车后,允许购物车中的数据和原始数据的不一致 4. 购物车同步问题 什么时候同步 ( 结算、登陆 ) 同步购物车后,是否删除cookie数据 5. 用户在不同客户端同时登陆 如何处理购物车数据`在这里插入代码片 2购物车添加功能 1. 传递参数 ( 商品skuId , 添加数量 ) 2. 根据skuId调用skuService查询商品信息 3. 将商品详细信息分装成购物车信息 4. 判断用户是否登陆 5. 根据用户登陆决定走cookie的分支还是db 购物车数据写入 Cookie : response . addCookie ( cookie ) ; request . getCookies ( ) ; Cookie的跨越问题 setDomain ( ) , getDomain ( ) Db 来源: CSDN 作者: SuperstarSteven 链接: https://blog.csdn.net/SuperstarSteven/article/details/104101011

函数基础实战之ATM和购物车系统

我与影子孤独终老i 提交于 2020-01-29 16:20:50
函数基础实战之ATM和购物车系统 一、系统功能 用户名和密码存放于文件中,格式为:randy|123456 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 [ ['Iphone7', 5800], ['Coffee', 30], ['疙瘩汤', 10], ['Python Book', 99], ['Bike', 199], ['ViVo X9', 2499],] 二、逻辑代码实现 user_dic = {'username': None} user_goods_dic = dict() money = [0] def login(): """登录模块""" print("欢迎来到登录界面!") user_name = input("请输入用户名:").strip() user_pwd = input("请输入密码:").strip() user_info = f'{user_name}:{user_pwd}' # 实现登录验证 with open('user_info', 'r', encoding='utf-8') as fr: data = fr.read() data_list = data

Bookstore系统测试缺陷报告

[亡魂溺海] 提交于 2020-01-28 07:16:44
Bookstore 系统测试缺陷报告 缺陷编号 01.01.0001 发现人 王燕红 记录日期 2016-06-11 所属模块 购物车模块 确认人 王燕红 确认日期 2016-06-11 当前状态 公开 严重度 3 优先级 3 问题概述 用户在加入购物车添加数量为0时,点击购买也能添加进购物车。 问 题 再 现 描 述 登录用户,选择图书分类,; 选择图书C++购买数量为1 ,查看购物车已添加; 选择图书Oracle购物数量为0,购买,查看购物车,书籍已添加; 图书数量选择0时,也可添加进购物车。 问题隔离描述 数量为0 ,可添加进购物车。 日志 2016-06-11 15:11 Opened by Wangyh. 2016-06-11 16:00 Affirmed by Wangyh. 处理过程记录 问题已确认尚待处理 – 王燕红 2016-06-11 开发负责人 王燕红 修复日期 尚未修复 关闭日期 尚未关闭 缺陷编号 01.01.0002 发现人 王燕红 记录日期 2016-06-12 所属模块 购物车模块 确认人 王燕红 确认日期 2016-06-12 当前状态 公开 严重度 3 优先级 3 问题概述 购物车没有进行更新在切换用户的时候。 问 题 再 现 描 述 登录用户1,添加图书进入购物车,查看购物车内容; 登录用户2时,查看购物车内容; 在用户2下添加图书加入购物车;

Session和Cookie实现购物车

限于喜欢 提交于 2020-01-25 13:39:48
来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=342 GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com 使用Session和Cookie实现购物车的比较   购物车相当于现实中超市的购物车,不同的是一个是实体车,一个是虚拟车而已。用户可以在购物网站的不同页面之间跳转,以选购自己喜爱的商品,点击购买时,该商品就自动保存到你的购物车中,重复选购后,最后将选中的所有商品放在购物车中统一到付款台结账,这也是尽量让客户体验到现实生活中购物的感觉。服务器通过追踪每个用户的行动,以保证在结账时每件商品都物有其主。 购物车的功能包括以下几项: 把商品添加到购物车,即订购 删除购物车中已定购的商品 修改购物车中某一本图书的订购数量 清空购物车 显示购物车中商品清单及数量、价格 实现购物车的关键在于服务器识别每一个用户并维持与他们的联系。但是HTTP协议是一种“无状态(Stateless)”的协议,因而服务器不能记住是谁在购买商品,当把商品加入购物车时,服务器也不知道购物车里原先有些什么,使得用户在不同页面间跳转时购物车无法“随身携带”,这都给购物车的实现造成了一定的困难。 目前购物车的实现主要是通过cookie、session或结合数据库的方式。下面分析一下它们的机制及作用。

对于服务端测试的一些经验和思考

浪子不回头ぞ 提交于 2020-01-25 11:05:25
最近随着测试服务端的工作达到一定的量,在工作完成一个阶段之后,细细回想,还是有一些经验可以分享给大家的。 工作的项目中经常会涉及到微服务的重构或者迁移,那么针对这种代码的重构之后,映射到业务层面,测试同学该如何开展工作呢? 示例场景:以前的直接购买走的是paypay的接口,后来加入了购物车的逻辑,可以多件共同购买,走的是placeOrder的接口,但是购物车一期的逻辑,没有针对直接购买的接口做改造,所以直接购买的入口造成了后面对一些相应的优惠券的处理和购物车中使用优惠券逻辑不通的情况;然后购物车二期马上就将直接购买的接口改为placeOrder接口,单个商品的直接购买也会生成一个购物车id,然后使用优惠券的逻辑与购物车中购买逻辑同步一致了;由于版本原因,所以购物车功能之前的端,直接购买走的还是老的paypay的接口。 后面由于stock-service库存微服务的加入,购买租赁的接口都开始调用库存服务,但是由于之前的paypay接口查询库存的方式没有进行改造,所以没有调用库存服务,还是直接查询的表。在测试成都仓关仓的需求中,就要额外执行一些测试场景,还没有购物车功能的低版本,库存的读取是否也正确。 服务端的测试想要测试覆盖全面,需要理解各种接口的归属于哪个微服务,当服务弃用或者重构一个新的服务,影响到的场景或者接口需要有整理的了解和认识,这样在项目中后期的测试中

第六次博客作业:对bookstore项目中的购物车模块进行测试,并写出测试的缺陷报告。

丶灬走出姿态 提交于 2020-01-24 02:44:38
缺陷编号:01.01.0001 发现人:Lmh 记录日期:2016-06-11 所属模块:购物车模块 确认人:Lmh 确认日期:2016-06-11 当前状态:公开 严重度:3 优先级:3 问题概述:重复购买同一本书,数量不会叠加,会更新成第二次购买的数量。 问题再现描述: 1. 执行正常的购买书籍操作,购买数量为 99 。 2. 查看购物车数量为 99 。 3. 返回继续购买同一种书籍,选择购买数量为 88 。 4. 这时查看购物车的该书籍数量会刷新为 88 。 问题隔离描述: 1. 修改购买数量为其他任意数字,问题依旧。 2. 购买其他书籍,问题依旧。 日志: 2016-06-11 11:11 Opened by Lmh 2016-06-11 12:11 Affirmed by Lmh 处理过程记录: 问题已查处并解决。 -- Lmh 2016-06-11 重新测试,通过。 -- Lmh 2016-06-11 开发负责人:Lmh 修复日期:2016-06-11 关闭日期:2016-06-11 缺陷编号:01.01.0002 发现人:Lmh 记录日期:2016-06-11 所属模块:购物车模块 确认人:Lmh 确认日期:2016-06-11 当前状态:公开 严重度:1 优先级:1 问题概述:当购物车里的书籍种类达到两种或者以上,在购物车界面更新书籍数量就会发生错误

用vant-weapp写一个购物车

会有一股神秘感。 提交于 2020-01-23 23:25:01
vant-weapp介绍 vant-weapp是有赞出品的,前端组件库,既然出自有赞之手,必然是尤其适合于做一个商城项目,它移植于vant-ui,后者有的特性大部分都已经实现。vant-ui找了好久,都没有发现购物车业务组件,我就从自家的有赞精选这个小程序的购物车搬一份过来。 参考目标页 官方文档 https://youzan.github.io/vant-weapp 安装 npm i @vant/weapp -S --production 编译 打开微信开发者工具,点击 工具 -> 构建 npm,并勾选 使用 npm 模块 选项,构建完成后,即可引入组件 引入各组件 1.Card 商品卡片组件 先在自己的购物车页面的cart.json配置文件加上如下代码 "usingComponents": { "van-card": "/miniprogram_npm/@vant/weapp/card/index" } 以此类推,依次引入其他组件 2.引入Stepper 步进器组件 3.引入SubmitBar 提交订单栏组件 4.引入SwipeCell 滑动单元格组件 这里有一个坑,右滑删除按钮没有样式,自己加上 .van-swipe-cell__left, .van-swipe-cell__right { display: inline-block; width: 65px; height:

【华为云技术分享】基于小熊派STM32芯片的通过MQTT上报JSON数据到华为物联网平台的自动售货机Demo解析

匆匆过客 提交于 2020-01-22 21:06:33
【摘要】 STM32的工程在文章末尾,可自行下载。 一、工程配置 1、MCU类型选择STM32L431RC 2、烧录器选择OpenOCD,参数 -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg 3、输出目录选择 LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild 4、编译器Makefile选择 targets\STM32L431_BearPi\GCC\Makefile 5、平台参数配置:LiteOS_Lab_STM32\demos\oc_mqtt_demo\oc_mqtt_demo_static\oc_mqtt_static.c 6、WIFI用户名密码配置: LiteOS_Lab_STM32\iot_link\network\tcpip\esp8266_socket\esp8266_socket_imp.h 7、在物联网平台上创建产品,选择MQTT方式 二、部分代码解析 编译烧录程序之前我们需要修改两处代码 第一处打开oc_mqtt_static.c文件,我们需要配置设备连接华为云,物联网平台所需要的参数, 修改第51行CN_MQTT_EP_NOTE_ID 为在华为云,设备接入服务,注册设备时使用的设备识别码,可以在平台中查看, 修改CN_MQTT_EP_DEVICE

京东购物车实现原理

可紊 提交于 2020-01-22 14:20:46
1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录 用户名和密码  问:购物车商品还在吗? 2)用户登陆了用户名密码,添加商品,关闭浏览器再打开后 不登录 用户名和密码  问:购物车商品还在吗? 3)用户登陆了用户名密码,添加商品, 关闭浏览器,然后再打开, 登陆用户名和密码 问:购物车商品还在吗? 4)用户登陆了用户名密码,添加商品, 关闭浏览器 外地老家打开浏览器 登陆用户名和密码 问:购物车商品还在吗? 上面四个问题都是以京东为模板, 那么大家猜猜结果是什么呢? 1)在 2)不在了 3)在 4)在 如果你能够猜到答案, 那么说明你真的很棒, 那么关于这四点是怎么实现的呢? (如果有不认可的小伙伴可以用京东实验一下) 下面我们就来讲解下购物车的原理,最后再来说下具体的code实现. 1)用户没有登录, 添加商品, 此时的商品是被添加到了浏览器的Cookie中, 所以当再次访问时(不登录),商品仍然在Cookie中, 所以购物车中的商品还是存在的. 2)用户登录了,添加商品, 此时会将Cookie中和用户选择的商品都添加到购物车中, 然后删除Cookie中的商品. 所以当用户再次访问(不登录),此时Cookie中的购物车商品已经被删除了, 所以此时购物车中的商品不在了. 3)用户登录, 添加商品,此时商品被添加到数据库做了持久化存储, 再次打开登录用户名和密码,

JS实现购物车

房东的猫 提交于 2020-01-20 22:24:24
JS实现购物车 1.实现思路: (1)在body中定义一个id="list",将所有商品存放在一个列表中,当进入购物车时如果有两个商品被勾选了,需要计算出总共的价钱和商品的件数以及最贵的商品价格; (2)在JS中获取元素属性,分别把它们存放在数组中; (3)点击加号进行商品添加,点击减号进行商品移除; (4)将上一步用两个点击函数来实现添加和移除; (5)在JS中用for循环来计算总价钱和比较最贵的商品; 2.代码思路 1.商品列表: <body> <ul id="list"> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 单价:<em>10元</em> 总计:<span>0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 单价:<em>5元</em> 总计:<span>0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" />