Răsfoiți Sursa

查询云存用户信息

locky 4 ani în urmă
părinte
comite
2bde6a9161

+ 107 - 45
AdminController/ServeManagementController.py

@@ -625,8 +625,11 @@ class serveManagement(View):
             if status:
                 omqs = omqs.filter(status=status)
             if timeRange:
-                startTime, endTime = int(timeRange[0][:-3]), int(timeRange[1][:-3])
-                omqs = omqs.filter(addTime__gte=startTime, addTime__lte=endTime)
+                startTime, endTime = int(
+                    timeRange[0][:-3]), int(timeRange[1][:-3])
+                omqs = omqs.filter(
+                    addTime__gte=startTime,
+                    addTime__lte=endTime)
             if not omqs.exists():
                 return response.json(0, [])
 
@@ -726,62 +729,121 @@ class serveManagement(View):
         else:
             return response.json(0, '重置云存体验失败')
 
-
     def getCloudUserList(self, request_dict, response):
+        print('request_dict: ', request_dict)
+
+        # UID_Bucket表查询数据
+        uid = request_dict.get('uid', None)
+        status = request_dict.get('status', None)
+        use_status = request_dict.get('use_status', None)
+        has_unused = request_dict.get('has_unused', None)
+        addTimeRange = request_dict.getlist('addTimeRange[]', None)
+        endTimeRange = request_dict.getlist('endTimeRange[]', None)
+
+        # Order_Model表查询数据
+        username = request_dict.get('username', None)
+        phone = request_dict.get('phone', None)
+        userEmail = request_dict.get('userEmail', None)
+        payType = request_dict.get('payType', None)
+
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
-        uid = request_dict.get('uid', None)
         if not all([pageNo, pageSize]):
             return response.json(444)
-
         page = int(pageNo)
         line = int(pageSize)
+
         try:
-            ubqs = UID_Bucket.objects.all()
+            uid_bucket_qs = UID_Bucket.objects.all()
             if uid:
-                ubqs = ubqs.filter(uid__contains=uid)
-
-            if not ubqs.exists():
+                uid_bucket_qs = uid_bucket_qs.filter(uid__contains=uid)
+            if status:
+                uid_bucket_qs = uid_bucket_qs.filter(status=status)
+            if use_status:
+                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 addTimeRange:
+                addStartTime, addEndTime = int(
+                    addTimeRange[0][:-3]), int(addTimeRange[1][:-3])
+                uid_bucket_qs = uid_bucket_qs.filter(
+                    addTime__gte=addStartTime,
+                    addTime__lte=addEndTime)
+            if endTimeRange:
+                endStartTime, endEndTime = int(
+                    endTimeRange[0][:-3]), int(endTimeRange[1][:-3])
+                uid_bucket_qs = uid_bucket_qs.filter(
+                    addTime__gte=endStartTime,
+                    addTime__lte=endEndTime)
+            if not uid_bucket_qs.exists():
                 return response.json(0, [])
 
-            order_qs = Order_Model.objects.filter(uid_bucket_id__in=ubqs.values('id')).values('userID__userID')
-
-            cg_qs = CloudLogModel.objects.filter(operation='cloudstorage/queryvodlist')
-            listdata = []
-            i = 0
-            count = ubqs.count()
-            ubqs = ubqs[(page - 1) * line:page * line]
-
-            for ub in ubqs:
+            order_qs = Order_Model.objects.filter(
+                uid_bucket_id__in=uid_bucket_qs.values('id'))
+            if username or phone or userEmail or payType:
+                if username:
+                    order_qs = order_qs.filter(userID__username=username)
+                if phone:
+                    order_qs = order_qs.filter(userID__phone__contains=phone)
+                if userEmail:
+                    order_qs = order_qs.filter(
+                        userID__userEmail__contains=userEmail)
+                if payType:
+                    order_qs = order_qs.filter(payType=int(payType))
+                # 过滤套餐关联的UID_Bucket数据
+                uid_bucket_qs = uid_bucket_qs.filter(
+                    id__in=order_qs.values_list(
+                        'uid_bucket_id', flat=True))
+
+            cg_qs = CloudLogModel.objects.filter(
+                operation='cloudstorage/queryvodlist')
+            list_data = []
+            count = uid_bucket_qs.count()
+            uid_bucket_qs = uid_bucket_qs[(page - 1) * line:page * line]
+
+            for uid_bucket in uid_bucket_qs:
                 data = {
-                    'id': ub.id,
-                    'uid': ub.uid,
-                    'channel': ub.channel,
-                    'status': ub.status,
-                    'endTime': time.strftime("%Y--%m--%d %H:%M:%S", time.localtime(ub.endTime)),
-                    'addTime': time.strftime("%Y--%m--%d %H:%M:%S", time.localtime(ub.addTime)),
-                    'use_status': ub.use_status,
-                    'has_unused': ub.has_unused
-                }
-
-                for od in order_qs.filter(uid_bucket_id=ub.id).values('uid_bucket_id','desc','userID__userID','UID','price','payType','userID__username','userID__phone','userID__userEmail','userID__data_joined'):
-                    data['desc'] = od['desc']
-                    data['payType'] = od['payType']
-                    data['price'] = od['price']
-                    data['username'] = od['userID__username']
-                    data['phone'] = od['userID__phone']
-                    data['userEmail'] = od['userID__userEmail']
-                    data['data_joined'] = od['userID__data_joined'].strftime("%Y-%m-%d %H:%M:%S")
-                    data['playcount'] = cg_qs.filter(operation='cloudstorage/queryvodlist', uid=od['UID']).count()
-
-
-                listdata.append(data)
-
-
-
+                    'id': uid_bucket.id,
+                    'uid': uid_bucket.uid,
+                    'channel': uid_bucket.channel,
+                    'status': uid_bucket.status,
+                    'endTime': time.strftime(
+                        "%Y--%m--%d %H:%M:%S",
+                        time.localtime(
+                            uid_bucket.endTime)),
+                    'addTime': time.strftime(
+                        "%Y--%m--%d %H:%M:%S",
+                        time.localtime(
+                            uid_bucket.addTime)),
+                    'use_status': uid_bucket.use_status,
+                    'has_unused': uid_bucket.has_unused}
+
+                for order in order_qs.filter(
+                        uid_bucket_id=uid_bucket.id).values(
+                        'uid_bucket_id',
+                        'desc',
+                        'userID__userID',
+                        'UID',
+                        'price',
+                        'payType',
+                        'userID__username',
+                        'userID__phone',
+                        'userID__userEmail',
+                        'userID__data_joined'):
+                    data['desc'] = order['desc']
+                    data['payType'] = order['payType']
+                    data['price'] = order['price']
+                    data['username'] = order['userID__username']
+                    data['phone'] = order['userID__phone']
+                    data['userEmail'] = order['userID__userEmail']
+                    data['data_joined'] = order['userID__data_joined'].strftime(
+                        "%Y-%m-%d %H:%M:%S")
+                    data['playcount'] = cg_qs.filter(
+                        operation='cloudstorage/queryvodlist', uid=order['UID']).count()
+
+                list_data.append(data)
             return response.json(
-                0, {'list': list(listdata), 'total': count})
+                0, {'list': list_data, 'total': count})
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
-

+ 1 - 1
AdminController/UserManageController.py

@@ -339,7 +339,7 @@ class UserManagement(View):
                             return response.json(104)
 
             else:
-                device_user_qs = Device_User.objects.filter().all()  # 查询全部
+                device_user_qs = Device_User.objects.filter()  # 查询全部
             total = len(device_user_qs)
             device_users = device_user_qs[(page - 1) * line:page * line]
             user_list = []