chenshibin 4 жил өмнө
parent
commit
110a67466b

+ 65 - 2
AdminController/ServeManagementController.py

@@ -12,7 +12,7 @@ from boto3.session import Session
 from django.http import JsonResponse, HttpResponseRedirect, HttpResponse, StreamingHttpResponse
 from django.views.generic.base import View
 from Model.models import Device_Info, Role, MenuModel, VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
-    UID_Bucket, ExperienceContextModel, Lang
+    UID_Bucket, ExperienceContextModel, Lang, Device_User, CloudLogModel
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.UidTokenObject import UidTokenObject
@@ -35,7 +35,8 @@ class serveManagement(View):
     def validation(self, request_dict, request, operation):
         language = request_dict.get('language', 'en')
         response = ResponseObject(language, 'pc')
-        if operation == '??':
+        if operation == 'getCloudUserList':
+            return self.getCloudUserList(request_dict, response)
             return 0
         else:
             tko = TokenObject(
@@ -84,6 +85,8 @@ class serveManagement(View):
                 return self.deleteDevicePackage(userID, request_dict, response)
             elif operation == 'experiencereset':  # 重置设备云存体验
                 return self.do_experience_reset(request_dict, userID, response)
+            elif operation == 'getCloudUserList':  # 重置设备云存体验
+                return self.getCloudUserList(request_dict, userID, response)
             else:
                 return response.json(404)
 
@@ -722,3 +725,63 @@ class serveManagement(View):
 
         else:
             return response.json(0, '重置云存体验失败')
+
+
+    def getCloudUserList(self, request_dict, response):
+        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()
+            if uid:
+                ubqs = ubqs.filter(uid__contains=uid)
+
+            if not ubqs.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:
+                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)
+
+
+
+            return response.json(
+                0, {'list': list(listdata), 'total': count})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+