locky 3 лет назад
Родитель
Сommit
bb3f2584cb
1 измененных файлов с 92 добавлено и 1 удалено
  1. 92 1
      AdminController/AiServeController.py

+ 92 - 1
AdminController/AiServeController.py

@@ -2,7 +2,7 @@
 # -*- coding: utf-8 -*-
 
 from django.views.generic.base import View
-from Model.models import Lang, AiStoreMeal, AiService
+from Model.models import Lang, AiStoreMeal, AiService, Order_Model
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -49,6 +49,9 @@ class AiServeView(View):
             # 设备ai套餐相关
             elif operation == 'getDeviceAiMealList':
                 return self.getDeviceAiMealList(request_dict, response)
+            # ai用户信息相关
+            elif operation == 'getAiUserList':
+                return self.getAiUserList(request_dict, response)
             else:
                 return response.json(404)
 
@@ -329,3 +332,91 @@ class AiServeView(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    def getAiUserList(self, request_dict, response):
+        username = request_dict.get('username', None)
+        NickName = request_dict.get('NickName', None)
+        uid = request_dict.get('uid', None)
+        payType = request_dict.get('payType', None)
+        status = request_dict.get('status', None)
+        use_status = request_dict.get('use_status', None)
+        addTimeRange = request_dict.getlist('addTimeRange[]', None)
+
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+        page = int(pageNo)
+        line = int(pageSize)
+
+        try:
+            order_qs = Order_Model.objects.filter(
+                order_type=1).order_by('-addTime')
+            if username or NickName or uid or payType or status or use_status or addTimeRange:
+                if username:
+                    order_qs = order_qs.filter(
+                        userID__username__contains=username)
+                if NickName:
+                    order_qs = order_qs.filter(
+                        userID__NickName__contains=NickName)
+                if uid:
+                    order_qs = order_qs.filter(UID__contains=uid)
+                if payType:
+                    order_qs = order_qs.filter(payType=payType)
+                if status:
+                    order_qs = order_qs.filter(status=status)
+                if use_status:
+                    order_qs = order_qs.filter(use_status=use_status)
+                if addTimeRange:
+                    addStartTime, addEndTime = int(
+                        addTimeRange[0][:-3]), int(addTimeRange[1][:-3])
+                    order_qs = order_qs.filter(
+                        addTime__gte=addStartTime,
+                        addTime__lte=addEndTime)
+                if not order_qs.exists():
+                    return response.json(0, {'list': [], 'total': 0})
+                count = order_qs.count()
+            else:
+                count = Order_Model.objects.filter(order_type=1).count()
+            order_qs = order_qs.values(
+                'userID__username',
+                'userID__NickName',
+                'UID',
+                'channel',
+                'orderID',
+                'desc',
+                'payType',
+                'price',
+                'status',
+                'refunded_amount',
+                'addTime',
+                'updTime',
+            )[(page - 1) * line:page * line]
+            data_list = []
+            for order in order_qs:
+                data_dict = {
+                    'username': order['userID__username'],
+                    'NickName': order['userID__NickName'],
+                    'uid': order['UID'],
+                    'channel': order['channel'],
+                    'orderID': order['orderID'],
+                    'desc': order['desc'],
+                    'payType': order['payType'],
+                    'price': order['price'],
+                    'status': order['status'],
+                    'refunded_amount': order['refunded_amount'],
+                    'addTime': order['addTime'],
+                    'updTime': order['updTime'],
+                }
+                ai_service_qs = AiService.objects.filter(
+                    orders_id=order['orderID']).values(
+                    'endTime', 'use_status')
+                if ai_service_qs.exists():
+                    data_dict['endTime'] = ai_service_qs[0]['endTime']
+                    data_dict['use_status'] = ai_service_qs[0]['use_status']
+                data_list.append(data_dict)
+            return response.json(
+                0, {'list': data_list, 'total': count})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))