Browse Source

添加订单查询接口

tanghongbin 4 năm trước cách đây
mục cha
commit
eaa315c3b5
3 tập tin đã thay đổi với 56 bổ sung1 xóa
  1. 51 0
      Controller/OrderContrller.py
  2. 1 1
      Model/models.py
  3. 4 0
      Object/ResponseObject.py

+ 51 - 0
Controller/OrderContrller.py

@@ -62,6 +62,10 @@ class OrderView(View):
             return self.do_admin_query(request_dict, userID, response)
         elif operation == 'detail':
             return self.do_detail(request_dict, userID, response)
+        elif operation == 'queryByStatus':
+            return self.do_query_order_by_status(request_dict, userID, response)
+        elif operation == 'orderDetail':
+            return self.do_query_order_detail(request_dict, userID, response)
         else:
             return response.json(444, 'error path')
 
@@ -157,3 +161,50 @@ class OrderView(View):
 
         else:
             return response.json(404)
+
+    def do_query_order_by_status(self, request_dict, userID, response):
+        status = request_dict.get('status', None)
+        page = request_dict.get('page', None)
+        line = request_dict.get('line', None)
+
+        if status and page and line:
+            order_qs = None
+            status = int(status)
+            if status == -1: # 获取所有订单
+                order_qs = Order_Model.objects.filter(userID__userID=userID)
+            elif status == 0: # 获取【代付款】订单
+                order_qs = Order_Model.objects.filter(userID__userID=userID, status=0)
+            elif status == 1:
+                order_qs = Order_Model.objects.filter(userID__userID=userID, status=1)
+
+            if order_qs is None or not order_qs.exists():
+                return response.json(0, {'data': [], 'count': 0})
+
+            page = int(page)
+            line = int(line)
+            start = (page - 1) * line
+            end = status + line
+            count = order_qs.count()
+            order_qs = order_qs[start:end].values("orderID", "UID", "channel", "desc", "price",
+                                                  "currency", "addTime", "payType", "rank__day", "rank__price",
+                                                  "status", 'channel', "rank__title", "currency")
+            return response.json(0, {'data': list(order_qs), 'count': count})
+        else:
+            return response.json(444)
+
+    def do_query_order_detail(self, request_dict, userID, response):
+        orderID = request_dict.get('orderID', None)
+
+        if orderID:
+            order_qs = Order_Model.objects.filter(orderID=orderID, userID__userID=userID)
+            if order_qs.exists():
+                print(order_qs)
+                order = order_qs.values("orderID", "UID", "channel", "desc", "price",
+                                        "currency", "addTime", "endTime", "payType",
+                                        "rank__day", "rank__price", "status", 'channel', "rank__title", "currency")[0]
+
+                return response.json(0, {'data': order})
+            else:
+                return response.json(173)
+        else:
+            return response.json(444)

+ 1 - 1
Model/models.py

@@ -523,7 +523,7 @@ class Order_Model(models.Model):
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
     endTime = models.IntegerField(verbose_name='结束时间', default=0)
-    status = models.SmallIntegerField(default=0, verbose_name='付款状态')  # 0:否,1:成功
+    status = models.SmallIntegerField(default=0, verbose_name='付款状态')  # 0:待支付,1:成功,2:取消,3:已退款
     payType = models.SmallIntegerField(default=0, verbose_name='付款类型0:paypal,1:alipay')
     payTime = models.IntegerField(verbose_name='支付成功时间', default=0)
     rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='套餐类型')

+ 4 - 0
Object/ResponseObject.py

@@ -56,6 +56,8 @@ class ResponseObject(object):
             712: 'Area needs to be consistent',
             713: 'Storage rules cannot be changed during the validity period',
             717: 'Authorization expires',
+            800: 'Order does not exist',
+            802: 'The order has been completed and cannot be cancelled',
             900: 'There is no information about this version!',
             901: 'Getting URL failure!',
             902: 'No update!',
@@ -119,6 +121,8 @@ class ResponseObject(object):
             712: '区域不一致',
             713: '有效期内不可更改存储规则',
             717: '授权过期',
+            800: '订单不存在',
+            802: '订单已完成,不能撤销',
             900: '版本信息不存在',
             901: '获取链接失败',
             902: '无更新!',