瀏覽代碼

新增序列号字段/序列号筛查功能

guanhailong 2 年之前
父節點
當前提交
a310a2ab0e
共有 2 個文件被更改,包括 71 次插入34 次删除
  1. 37 3
      AdminController/AiServeController.py
  2. 34 31
      AdminController/ServeManagementController.py

+ 37 - 3
AdminController/AiServeController.py

@@ -5,7 +5,7 @@ import time
 from django.db.models import F
 from django.views.generic.base import View
 
-from Model.models import Lang, AiStoreMeal, AiService, Order_Model, Device_User, CountryModel, UidSetModel
+from Model.models import Lang, AiStoreMeal, AiService, Order_Model, Device_User, CountryModel, UidSetModel, Device_Info
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -305,6 +305,7 @@ class AiServeView(View):
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
         uid = request_dict.get('uid', None)
+        serialNumber = request_dict.get('serialNumber', None)
         if not all([pageNo, pageSize]):
             return response.json(444)
 
@@ -314,6 +315,10 @@ class AiServeView(View):
             ai_service_qs = AiService.objects.all()
             if uid:
                 ai_service_qs = ai_service_qs.filter(uid__contains=uid)
+            if serialNumber:
+                device_info_qs = Device_Info.objects.filter(serial_number=serialNumber).values('UID')
+                uid = device_info_qs[0]['UID'] if device_info_qs.exists() else 'N/A'
+                ai_service_qs = ai_service_qs.filter(uid__icontains=uid)
 
             if not ai_service_qs.exists():
                 return response.json(0, [])
@@ -331,8 +336,27 @@ class AiServeView(View):
                 'addTime',
                 'updTime', 'user_name').order_by('-addTime')
             ai_service_qs = ai_service_qs[(page - 1) * line:page * line]
+            ai_service_list = []
+            for ai_service in ai_service_qs:
+                data = {
+                    'id': ai_service['id'],
+                    'uid': ai_service['uid'],
+                    'channel': ai_service['channel'],
+                    'use_status': ai_service['use_status'],
+                    'detect_status': ai_service['detect_status'],
+                    'detect_group': ai_service['detect_group'],
+                    'endTime': ai_service['endTime'],
+                    'addTime': ai_service['addTime'],
+                    'updTime': ai_service['updTime'],
+                    'user_name': ai_service['user_name'],
+                    'serial_number': 'N/A'
+                }
+                device_info_qs = Device_Info.objects.filter(UID=ai_service['uid']).values('serial_number')
+                if device_info_qs.exists():
+                    data['serial_number'] = device_info_qs[0]['serial_number'] if device_info_qs[0]['serial_number'] else 'N/A'
+                ai_service_list.append(data)
             return response.json(
-                0, {'list': list(ai_service_qs), 'total': count})
+                0, {'list': ai_service_list, 'total': count})
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
@@ -344,6 +368,7 @@ class AiServeView(View):
         payType = request_dict.get('payType', None)
         status = request_dict.get('status', None)
         use_status = request_dict.get('use_status', None)
+        serialNumber = request_dict.get('serialNumber', None)
         addTimeRange = request_dict.getlist('addTimeRange[]', None)
 
         pageNo = request_dict.get('pageNo', None)
@@ -356,7 +381,7 @@ class AiServeView(View):
         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 or NickName or uid or payType or status or use_status or addTimeRange or serialNumber:
                 if username:
                     order_qs = order_qs.filter(
                         userID__username__contains=username)
@@ -371,6 +396,10 @@ class AiServeView(View):
                     order_qs = order_qs.filter(status=status)
                 if use_status:
                     order_qs = order_qs.filter(use_status=use_status)
+                if serialNumber:
+                    device_info_qs = Device_Info.objects.filter(serial_number=serialNumber).values('UID')
+                    uid = device_info_qs[0]['UID'] if device_info_qs.exists() else 'N/A'
+                    order_qs = order_qs.filter(UID=uid)
                 if addTimeRange:
                     addStartTime, addEndTime = int(
                         addTimeRange[0][:-3]), int(addTimeRange[1][:-3])
@@ -430,6 +459,11 @@ class AiServeView(View):
                 if ai_service_qs.exists():
                     data_dict['endTime'] = ai_service_qs[0]['endTime']
                     data_dict['use_status'] = ai_service_qs[0]['use_status']
+                data_dict['serial_number'] = 'N/A'
+                device_info_qs = Device_Info.objects.filter(UID=order['UID']).values('serial_number')
+                if device_info_qs.exists():
+                    data_dict['serial_number'] = device_info_qs[0]['serial_number'] if device_info_qs[0][
+                        'serial_number'] else 'N/A'
                 data_list.append(data_dict)
             return response.json(
                 0, {'list': data_list, 'total': count})

+ 34 - 31
AdminController/ServeManagementController.py

@@ -80,8 +80,6 @@ class serveManagement(View):
                 return self.getCdkList(userID, request_dict, response)
             elif operation == 'createCdk':
                 return self.createCdk(request_dict, response)
-            elif operation == 'getVodStoreMeal':
-                return self.getVodStoreMeal(response)
             elif operation == 'deleteCdk':
                 return self.deleteCdk(request_dict, response)
             elif operation == 'downloadCDK':
@@ -575,39 +573,23 @@ class serveManagement(View):
             print(e)
             return response.json(500, repr(e))
 
-    def getVodStoreMeal(self, response):
-        try:
-            store_meal = Store_Meal.objects.filter(Q(is_show=0), ~Q(commodity_code='paypal_cycle'),
-                                                   Q(lang__lang='cn')).values('id', 'lang__title', 'lang__content')
-            if not store_meal.exists():
-                return response.json(0, [])
-            store_meal_list = []
-            for item in store_meal:
-                store_meal_list.append({'id': item['id'], 'title': item['lang__title'] + '--' + item['lang__content']})
-            return response.json(0, store_meal_list)
-        except Exception as e:
-            return response.json(500, repr(e))
-
     def createCdk(self, request_dict, response):
         cdk_num = request_dict.get("cdknum", None)
         mold = request_dict.get('mold', None)
         order = request_dict.get('order', None)
-        rank = request_dict.get('rank', None)
-        if not all([cdk_num, rank]):
-            return response.json(444, {'error param': 'cdknum or rank'})
-        store_meal = Store_Meal.objects.filter(id=rank)
-        # sm_qs = Store_Meal.objects.filter(
-        #     pay_type__payment='cdk_pay', bucket__mold=mold, is_show=0)
-        if not store_meal.exists():
-            return response.json(173)
         cdk_list = []
+        sm_qs = Store_Meal.objects.filter(
+            pay_type__payment='cdk_pay', bucket__mold=mold, is_show=0)
+        if not sm_qs.exists():
+            return response.json(173)
+        rank = sm_qs[0].id
         for i in range(int(cdk_num)):
-            now_time = int(time.time())
+            nowTime = int(time.time())
             cdk = hashlib.md5((str(uuid.uuid1()) +
-                               str(now_time)).encode('utf-8')).hexdigest()
+                               str(nowTime)).encode('utf-8')).hexdigest()
             cdk_model = CDKcontextModel(
                 cdk=cdk,
-                create_time=now_time,
+                create_time=nowTime,
                 valid_time=0,
                 is_activate=0,
                 is_down=0,
@@ -666,6 +648,7 @@ class serveManagement(View):
         status = request_dict.get('status', None)
         timeRange = request_dict.getlist('timeRange[]', None)
         orderType = request_dict.get('orderType', None)
+        serialNumber = request_dict.get('serialNumber', None)
 
         if not all([pageNo, pageSize]):
             return response.json(444)
@@ -691,6 +674,10 @@ class serveManagement(View):
                 omqs = omqs.filter(status=status)
             if orderType:
                 omqs = omqs.filter(order_type=int(orderType))
+            if serialNumber:
+                device_info_qs = Device_Info.objects.filter(serial_number=serialNumber).values('UID')
+                uid = device_info_qs[0]['UID'] if device_info_qs.exists() else 'N/A'
+                omqs = omqs.filter(UID=uid)
             if timeRange:
                 startTime, endTime = int(
                     timeRange[0][:-3]), int(timeRange[1][:-3])
@@ -729,27 +716,32 @@ class serveManagement(View):
                     'order_type': order['order_type'],
                 }
                 #  订单显示(或不显示)停用/退款功能
-                if order['order_type'] == 0:  # 云存
+                if order['order_type'] == 0: # 云存
                     uid_bucket = UID_Bucket.objects.filter(uid=order['UID']).values('use_status')
                     user_status = uid_bucket[0]['use_status'] if uid_bucket.exists() else ''
                     if user_status != '':
                         data['user_status'] = user_status
                     else:
                         data['user_status'] = 2
-                elif order['order_type'] == 1:  # ai
+                elif order['order_type'] == 1: # ai
                     ai_service_qs = AiService.objects.filter(
                         Q(orders_id=order['orderID']) & ~Q(use_status=2))
                     if ai_service_qs.exists():
                         data['user_status'] = 1
                     else:
                         data['user_status'] = 2
-                elif order['order_type'] == 2:  # 联通4G
+                elif order['order_type'] == 2: # 联通4G
                     unicom_combor_order_qs = UnicomComboOrderInfo.objects.filter(
                         Q(order_id=order['orderID']) & ~Q(status=2))
                     if unicom_combor_order_qs.exists():
                         data['user_status'] = 1
                     else:
                         data['user_status'] = 2
+                #  添加序列号
+                data['serial_number'] = 'N/A'
+                device_info_qs =  Device_Info.objects.filter(UID=order['UID']).values('serial_number')
+                if device_info_qs.exists():
+                    data['serial_number'] = device_info_qs[0]['serial_number'] if device_info_qs[0]['serial_number'] else 'N/A'
                 #  添加PayPal交易号字段
                 data['trade_no'] = 'N/A'
                 if data['payType'] == 1:
@@ -977,6 +969,9 @@ class serveManagement(View):
         # 日志表查询
         logTimeRange = request_dict.getlist('logTimeRange[]', None)
 
+        # 序列号查询
+        serialNumber = request_dict.get('serialNumber', None)
+
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
         if not all([pageNo, pageSize]):
@@ -994,6 +989,10 @@ class serveManagement(View):
                 uid_bucket_qs = uid_bucket_qs.filter(use_status=use_status)
             if has_unused:
                 uid_bucket_qs = uid_bucket_qs.filter(has_unused=has_unused)
+            if serialNumber:
+                device_info_qs = Device_Info.objects.filter(serial_number=serialNumber).values('UID')
+                uid = device_info_qs[0]['UID'] if device_info_qs.exists() else 'N/A'
+                uid_bucket_qs = uid_bucket_qs.filter(uid__icontains=uid)
             if addTimeRange:
                 addStartTime, addEndTime = int(
                     addTimeRange[0][:-3]), int(addTimeRange[1][:-3])
@@ -1096,9 +1095,13 @@ class serveManagement(View):
                         'phone': order['userID__phone'],
                         'userEmail': order['userID__userEmail'],
                         'data_joined': order['userID__data_joined'].strftime("%Y-%m-%d %H:%M:%S"),
-                        'playcount': cg_qs.filter(operation='cloudstorage/queryvodlist', uid=order['UID']).count()
+                        'playcount': cg_qs.filter(operation='cloudstorage/queryvodlist', uid=order['UID']).count(),
+                        'serial_number': 'N/A'
                     }
-
+                    device_info_qs = Device_Info.objects.filter(UID=uid).values('serial_number')
+                    if device_info_qs.exists():
+                        data['serial_number'] = device_info_qs[0]['serial_number'] if device_info_qs[0][
+                            'serial_number'] else 'N/A'
                     if uid in uid_set_dict:
                         data['ucode'] = uid_set_dict[uid]['ucode']
                         data['version'] = uid_set_dict[uid]['version']