订单管理
1.获取订单表表列表数据
接口分析
请求方式: GET /meiduo_admin/orders/?keyword=<搜索内容>&page=<页码>&pagesize=<页容量>
请求参数: 通过请求头传递jwt token数据。
返回数据: JSON
{ "counts": 39, "list": [ { "order_id": "20181126102807000000004", "create_time": "2018-11-26T18:28:07.470959+08:00" }, { "order_id": "20181126103035000000004", "create_time": "2018-11-26T18:30:35.854982+08:00" }, ...... ], "page": 1, "pages": 8, "pagesize": 5 }
| 返回值 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| count | int | 是 | 订单数据总量 |
| lists | 数组 | 是 | 订单表信息 |
| page | int | 是 | 页码 |
| pages | int | 是 | 总页数 |
| pagesize | int | 是 | 页容量 |
后端实现
class OrdersView(ModelViewSet): serializer_class = OrderSeriazlier queryset = OrderInfo.objects.all() pagination_class = PageNum
序列化器的定义
class OrderSeriazlier(serializers.ModelSerializer): class Meta: model = OrderInfo fields = '__all__'
2.获取订单表详情数据数据
当点击订单详情时,我们需要获取订单详情数据

接口分析
请求方式: GET /meiduo_admin/orders/(?P<pk>\d+)/
请求参数: 通过请求头传递jwt token数据。
返回数据: JSON
{ "order_id": "20181126102807000000004", "user": "zxc000", "total_count": 5, "total_amount": "52061.00", "freight": "10.00", "pay_method": 2, "status": 1, "create_time": "2018-11-26T18:28:07.470959+08:00", "skus": [ { "count": 1, "price": "6499.00", "sku": { "name": "Apple iPhone 8 Plus (A1864) 64GB 金色 移动联通电信4G手机", "default_image_url": "http://image.meiduo.site:8888/group1/M00/00/02/CtM3BVrRZCqAUxp9AAFti6upbx41220032" } }, ...... ] }
| 返回值 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| order_id | int | 是 | 订单id |
| user | str | 是 | 用户名 |
| total_count | int | 是 | 商品总量 |
| total_amount | int | 是 | 总价 |
| freight | int | 是 | 运费 |
| pay_method | int | 是 | 支付方式 |
| status | int | 是 | 订单状态 |
| create_time | date | 是 | 订单日期 |
| skus | 数组 | 是 | 订单商品信息 |
后端实现
class OrdersView(ModelViewSet): serializer_class = OrderSeriazlier queryset = OrderInfo.objects.all() pagination_class = PageNum
序列化器的定义,在返回数据时涉及到三张表的嵌套返回,订单基本信息表,订单商品表,商品sku表
class SKUSerialzier(serializers.ModelSerializer): """ 商品sku表序列化器 """ class Meta: model=SKU fields=('name','default_image') class OrderGoodsSerialziers(serializers.ModelSerializer): """ 订单商品序列化器 """ # 嵌套返回sku表数据 sku=SKUGoodsSerializer(read_only=True) class Meta: model=OrderGoods fields=('count','price','sku') class OrderSeriazlier(serializers.ModelSerializer): """ 订单序列化器 """ # 关联嵌套返回 用户表数据和订单商品表数据 user=serializers.StringRelatedField(read_only=True) skus=OrderGoodsSerialziers(many=True,read_only=True) class Meta: model = OrderInfo fields = '__all__'
3.更新订单表状态数据
点击修改状态,完成订单表状态的修改操作
接口分析
请求方式: PUT /meiduo_admin/orders/(?P<order_id>\d+)/status/
请求参数: 通过请求头传递jwt token数据。
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| status | str | 是 | 订单状态 |
返回数据: JSON
{ "order_id": "20181126102807000000004", "status": 1 }
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| order_id | str | 是 | d订单id |
| status | int | 是 | 订单状态 |
后端实现
class OrdersView(ModelViewSet): serializer_class = OrderSeriazlier queryset = OrderInfo.objects.all() pagination_class = PageNum # 在视图中定义status方法修改订单状态 @action(methods=['put'], detail=True) def status(self, request, pk): # 获取订单对象 order = self.get_object() # 获取要修改的状态值 status = request.data.get('status') # 修改订单状态 order.status = status order.save() # 返回结果 ser = self.get_serializer(order) return Response({ 'order_id': order.order_id, 'status': status })
壬戌之秋,七月既望,苏子与客泛舟游于赤壁之下。清风徐来,水波不兴。举酒属客,诵明月之诗,歌窈窕之章。少焉,月出于东山之上,徘徊于斗牛之间。白露横江,水光接天。纵一苇之所如,凌万顷之茫然。浩浩乎如冯虚御风,而不知其所止;飘飘乎如遗世独立,羽化而登仙。
于是饮酒乐甚,扣舷而歌之。歌曰:“桂棹兮兰桨,击空明兮溯流光。渺渺兮予怀,望美人兮天一方。”客有吹洞箫者,倚歌而和之。其声呜呜然,如怨如慕,如泣如诉,余音袅袅,不绝如缕。舞幽壑之潜蛟,泣孤舟之嫠妇。
苏子愀然,正襟危坐而问客曰:“何为其然也?”客曰:“月明星稀,乌鹊南飞,此非曹孟德之诗乎?西望夏口,东望武昌,山川相缪,郁乎苍苍,此非孟德之困于周郎者乎?方其破荆州,下江陵,顺流而东也,舳舻千里,旌旗蔽空,酾酒临江,横槊赋诗,固一世之雄也,而今安在哉?况吾与子渔樵于江渚之上,侣鱼虾而友麋鹿,驾一叶之扁舟,举匏樽以相属。寄蜉蝣于天地,渺沧海之一粟。哀吾生之须臾,羡长江之无穷。挟飞仙以遨游,抱明月而长终。知不可乎骤得,托遗响于悲风。”
苏子曰:“客亦知夫水与月乎?逝者如斯,而未尝往也;盈虚者如彼,而卒莫消长也。盖将自其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎!且夫天地之间,物各有主,苟非吾之所有,虽一毫而莫取。惟江上之清风,与山间之明月,耳得之而为声,目遇之而成色,取之无禁,用之不竭,是造物者之无尽藏也,而吾与子之所共适。”
客喜而笑,洗盏更酌。肴核既尽,杯盘狼籍。相与枕藉乎舟中,不知东方之既白。

浙公网安备 33010602011771号