首页 > 其他分享 >实战项目-美多商城(七)订单 设计思路整理

实战项目-美多商城(七)订单 设计思路整理

时间:2023-04-27 15:35:59浏览次数:32  
标签:实战 sku 订单 美多 skus freight 序列化 id 商城

模型设计

  • 模型设计: 订单信息应该包含那些字段
- 订单号: order_id

- 下单用户: user

- 下单用户收货地址: address

- 商品总数: total_count

- 商品总价: total_amount

- 运费: freight

- 支付方式(本项目两种): pay_method

	- 支付宝
	- 货到付款

- 订单状态(6种): status

	- 待支付
	- 待发货
	- 待收货
	- 待评价
	- 已完成
	- 已取消
  • 模型设计: 订单商品应该包含那些字段
- 订单号: order

- 商品信息模型: sku

- 购买的商品数量: count

- 购买的商品单价: price

- 其他可选字段
	- 评价: comment
	- 评分: score
	- 是否匿名: is_anonymous
	- 是否评价了: is_commented

提交订单页面分析

  • 展示三块数据

    • 收货地址(可选,之前的接口已写好)

    • 支付方式(可选: 货到付款/支付宝,用户自己选择)

    • 商品列表(不可修改,后端要做的事情就是这个[包含运费字段])

  • 接口行为: 属于完全从db获取数据的行为,所以,序列化器不作校验(views只作用户认证)

  • 构造的数据格式(使用两个序列化器搞定)

{
    "freight":"100.00", # 订单序列化器
    "skus":[ # sku序列化器
        {
            ......
        },
        {
            ......
        },
    ]
}

  • redis存储的数据格式如下
- hash: cart_user_id

	{
		'sku_id_1':count1,
		'sku_id_2':count2,
		'sku_id_3':count3,
	}
	
- set: 

	(sku_id_1,sku_id_2,sku_id_3)
	
- 收集数据思路:
	
	- 获取redis该用户的所有购物车数据

	- 根据sku_id获取 sku_queryset数据集
		- 遍历sku_queryset数据集,为每个 sku_obj新增count属性并赋值
		
	- 手动构造最终的数据集,交给'序列化器'序列化,返回给前端
		{ 
            'freight':freight,
            'skus':skus_queryset
        }

标签:实战,sku,订单,美多,skus,freight,序列化,id,商城
From: https://www.cnblogs.com/qinganning/p/17359027.html

相关文章

  • CutMix&Mixup详解与代码实战
    摘要:本文将通过实践案例带大家掌握CutMix&Mixup。本文分享自华为云社区《CutMix&Mixup详解与代码实战》,作者:李长安。引言最近在回顾之前学到的知识,看到了数据增强部分,对于CutMix以及Mixup这两种数据增强方式发现理解不是很到位,所以这里写了一个项目再去好好看这两种数据增强方......
  • 深度学习--GAN实战
    深度学习--GAN实战DCGANimporttorchfromtorchimportnn,optim,autogradimportnumpyasnpimportvisdomimportrandom#用python-mvisdom.server启动服务h_dim=400batchsz=512viz=visdom.Visdom(use_incoming_socket=False)classGenerator(nn.Module......
  • Wwise入门和实战
    前言游戏开发中音效往往是会被人们忽略的模块,美术表现往往视觉冲击力很强,就能直接感觉出好与不好,但音效模块是一种锦上添花的模块,好的音效设计会使得游戏的体验更加好,我在没有接触Wwise之前也是用的Unity内置的Audio模块,程序的工作就是调用原生的音效而已,几乎没有什么改变,如果我们......
  • playwright网络爬虫实战案例分享
    今日鸡汤不寝听金钥,因风想玉珂。大家好,我是Python进阶者。一、前言前几天在Python白银交流群【HugoLB】分享了一个playwright网络爬虫利器,如下图所示。感觉挺有意思,上手难度也不算太大,这里整理一份小教程分享给大家,后面遇到常规爬不动的网站,不妨试试看这个利器,兴许会事半功倍哦!二......
  • Kotlin实战基础 - 设置点击事件、Activity跳转、传值
    基础过度Kotlin基础入门-变量、方法、对象、继承、接口Kotlin实战基础-设置点击事件、Activity跳转、传值Kotlin实战基础-Activity、Fragment传递参数尚未完整,遇缺再补-点击事件Activity跳转Activity跳转+Intent传值点击事件点击事件是基础功......
  • Django4全栈进阶之路19 项目实战(用户管理):user_delete.html用户删除画面设计
    1、模块:<tbody>{%foruserinuser_list%}<tr><td>{{user.username}}</td><td>{{user.email}}</td>......
  • 深度学习--LSTM网络、使用方法、实战情感分类问题
    深度学习--LSTM网络、使用方法、实战情感分类问题1.LSTM基础长短期记忆网络(LongShort-TermMemory,简称LSTM),是RNN的一种,为了解决RNN存在长期依赖问题而设计出来的。LSTM的基本结构:2.LSTM的具体说明LSTM与RNN的结构相比,在参数更新的过程中,增加了三个门,由左到右分别是遗忘门(也......
  • Django4全栈进阶之路18 项目实战:登录模块设计
    1、编写函数视图,判定用户名密码,验证通过进入home主页,不通过返回登录页面deflogin_view(request):ifrequest.method=='POST':username=request.POST.get('username')password=request.POST.get('password')print(username)......
  • 老杜2023最新Vue实战精讲(三)Vue组件化
    动力节点老杜全新版Vue教程笔记分享给大家学习の地止:https://www.bilibili.com/video/BV17h41137i4视频教程从Vue2开始讲解,一步一个案例,知识点由浅入深,然后很自然的过度到Vue3版本。Vue3是目前企业中使用最多的一个版本。视频中会把每一个Vue的知识点讲解的非常通透,不但举例......
  • Spring Boot 项目代码混淆,实战来了,再也不用担心代码泄露了!
    编译简单就是把代码跑一哈,然后我们的代码.java文件就被编译成了.class文件反编译就是针对编译生成的jar/war包里面的.class文件逆向还原回来,可以看到你的代码写的啥。比较常用的反编译工具JD-GUI,直接把编译好的jar丢进去,大部分都能反编译看到源码:那如果不想给......