1.订单页面共分为3个部分。1、订单准备页面:创建两张数据库表,一张是订单表,一张是订单产品表,一对多关系,方便存储和管理订单数据。information(request.user)从后台获取用户的地址信息(未删除)显示给前端;然后需要获取用户的购物车信息(勾选的商品和件数),也就是上面构造的new_cart_dict={},根据sku得到商品的价格,然后乘以商品的总价产品加上运费得到总订单金额;另外,用户需要选择送货地址和支付方式,才能响应下一个页面,即订单展示页面;2、订单展示页面:2.1从前端接收两个数据,即收货地址和支付方式,获取用户信息。2.2生成订单id(日期+时间+用户id);2.3初始化订单数量0订单金额0;2.4整理订单状态(如果是货到付款,订单状态为待发货,如果是支付宝,则显示为待付款);2.5.订单商品信息(我们从redis中获取选中的商品信息)2.5.1连接到redis2.5.2获取hash2.5.3获取set2.5.4类型转换,将转换过程中选择的数据重新组织{sku_id:count,sku_id:count}2.5.5获取选中的商品id[1,2,3]2.5.6遍历id2.5.7查询count2.5.8判断库存是否小于订单,如果不是则继续,如果不是则继续2.5.9减少MySQL中sku的库存值,增加spu和sku的销售值2.5.10保存商品信息,示例如下:OrderGoods.objects.create(order=order,sku=sku,count=count,price=sku.price)2.5.11累计总金额和总数量2.6。保存修改订单信息3.订单成功页面:响应信息如下:context={'order_id':order_id,'payment_amount':payment_amount,'pay_method':pay_method}
