Browse Source

Merge remote-tracking branch 'origin/bin' into bin

locky 4 years ago
parent
commit
a2723ad8e1

+ 4 - 1
Ansjer/config_local.py

@@ -52,7 +52,10 @@ APNS_CONFIG = {
     },
     'com.ansjer.accloud': {
         'pem_path': 'Ansjer/file/apns_pem/accloud-dev.pem',
-    }
+    },
+    'com.ansjer.customizede': {
+        'pem_path': 'Ansjer/file/apns_pem/ZhouShi-dev.pem',
+    },
 }
 APNS_MODE = 'dev'
 TUTK_PUSH_DOMAIN = 'http://push.iotcplatform.com/tpns'

+ 4 - 1
Ansjer/config_test.py

@@ -61,7 +61,10 @@ APNS_CONFIG = {
     },
     'com.ansjer.accloud': {
         'pem_path': 'Ansjer/file/apns_pem/accloud-dev.pem',
-    }
+    },
+    'com.ansjer.customizede': {
+        'pem_path': 'Ansjer/file/apns_pem/ZhouShi-dev.pem',
+    },
 }
 APNS_MODE = 'dev'
 TUTK_PUSH_DOMAIN = 'http://push.iotcplatform.com/tpns'

+ 68 - 0
Ansjer/file/apns_pem/ZhouShi-dev.pem

@@ -0,0 +1,68 @@
+Bag Attributes
+    friendlyName: Apple Push Services: com.ansjer.customizede
+    localKeyID: F9 76 DF A5 B7 2C 38 04 6E CD FA BF F5 74 9F AD 83 1A E9 8E 
+subject=/UID=com.ansjer.customizede/CN=Apple Push Services: com.ansjer.customizede/OU=772N5HXAR2/O=ZOSI Technology Co. , Ltd/C=CN
+issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
+-----BEGIN CERTIFICATE-----
+MIIGOTCCBSGgAwIBAgIIPI2iB4mqqDEwDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3Js
+ZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3
+aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMjAxMjE5MDY1NDE0WhcNMjIwMTE4MDY1NDE0WjCBpDEmMCQGCgmSJomT8ixk
+AQEMFmNvbS5hbnNqZXIuY3VzdG9taXplZGUxNDAyBgNVBAMMK0FwcGxlIFB1c2gg
+U2VydmljZXM6IGNvbS5hbnNqZXIuY3VzdG9taXplZGUxEzARBgNVBAsMCjc3Mk41
+SFhBUjIxIjAgBgNVBAoMGVpPU0kgVGVjaG5vbG9neSBDby4gLCBMdGQxCzAJBgNV
+BAYTAkNOMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuIhNiP1jkZsf
+HD8nyx6G5DjF4RONEZGMUYph5GFpQSlnY4c1IeHFcNa7qKnvrx3t2ZnIIKaAaMWc
+w+9XiK3KNDpo/A4CEt/Es0Dh5gDze8bG8DK1qORI5XMDUC3r2wRdZ1jSSDcXJ0Fu
+byIkxrOaCe4J0hlJkPbzB/2z9AXMhSh4UhzcHUNMqfWbpzrUCG1nv0woA2MaWrw9
+OiwLy4HckGHXDJEV1eIPsN3v+W5RoP2VJp69gx7M2LH5KcFTvpzhlcXl4elSETgU
+07dqHnoHkSaVVNB8dmPmpHn11Sk8S+fm1qMtNy9PB5gmMaCQt31+YThFp1rl8Zs4
+ERVmbPWtVQIDAQABo4ICeTCCAnUwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSI
+JxcJqbYYYIvs67r2R1nFUlSjtzCCARwGA1UdIASCARMwggEPMIIBCwYJKoZIhvdj
+ZAUBMIH9MIHDBggrBgEFBQcCAjCBtgyBs1JlbGlhbmNlIG9uIHRoaXMgY2VydGlm
+aWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhl
+biBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVz
+ZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNl
+IHN0YXRlbWVudHMuMDUGCCsGAQUFBwIBFilodHRwOi8vd3d3LmFwcGxlLmNvbS9j
+ZXJ0aWZpY2F0ZWF1dGhvcml0eTATBgNVHSUEDDAKBggrBgEFBQcDAjAwBgNVHR8E
+KTAnMCWgI6Ahhh9odHRwOi8vY3JsLmFwcGxlLmNvbS93d2RyY2EuY3JsMB0GA1Ud
+DgQWBBT5dt+ltyw4BG7N+r/1dJ+tgxrpjjAOBgNVHQ8BAf8EBAMCB4AwEAYKKoZI
+hvdjZAYDAQQCBQAwEAYKKoZIhvdjZAYDAgQCBQAwgYkGCiqGSIb3Y2QGAwYEezB5
+DBZjb20uYW5zamVyLmN1c3RvbWl6ZWRlMAUMA2FwcAwbY29tLmFuc2plci5jdXN0
+b21pemVkZS52b2lwMAYMBHZvaXAMI2NvbS5hbnNqZXIuY3VzdG9taXplZGUuY29t
+cGxpY2F0aW9uMA4MDGNvbXBsaWNhdGlvbjANBgkqhkiG9w0BAQsFAAOCAQEAOS3j
+rVNOYYSoEYf7OgUl26ubcAMyYwVHhggxtQw0hR63+pdSXWi2/E5IynEf7qmBmbk/
+wTuIkWXnvR5a+sjJy+f94TM9Qe5bXvSuqQn+3HA0XruuBq1A7OGfbORBBZwwNSWZ
+mEjBd9vNdT3ZDksY2XSLvoKOE8gW7i60u4dE5GYqxe3CnICXLlgKjWZx5xbbMl/m
+W6j6ikKOVCqIG6nA8uUwrbznZQAUfQHblB2Yj58zOpCg/0KLqmtQMQJG4kCnZres
+4FElErUr0aEJXPTLqTHLX3PlvFA7Iwb7alTA8a7AFJYxyB184XoKS7rV8MZLuhdd
+wIggtF2b+92ah39F4w==
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAuIhNiP1jkZsfHD8nyx6G5DjF4RONEZGMUYph5GFpQSlnY4c1
+IeHFcNa7qKnvrx3t2ZnIIKaAaMWcw+9XiK3KNDpo/A4CEt/Es0Dh5gDze8bG8DK1
+qORI5XMDUC3r2wRdZ1jSSDcXJ0FubyIkxrOaCe4J0hlJkPbzB/2z9AXMhSh4Uhzc
+HUNMqfWbpzrUCG1nv0woA2MaWrw9OiwLy4HckGHXDJEV1eIPsN3v+W5RoP2VJp69
+gx7M2LH5KcFTvpzhlcXl4elSETgU07dqHnoHkSaVVNB8dmPmpHn11Sk8S+fm1qMt
+Ny9PB5gmMaCQt31+YThFp1rl8Zs4ERVmbPWtVQIDAQABAoIBAF9NjfW9IApYOgYF
+nBCsUHBX3eKzjTzQlc6bEJm5sXmE36+oacl459ayIDMoqPAhHfEvGgu60kDKJn+P
+Af9F+lNlA0mCFpIW3WjSjpiSTy3S6HWvSuDSHc/ayZBEVzZDF9ZDKj8/rIaKpXVi
+BepVYa3VMV8/zh2/XJ746VKTGCCAd0fLHHL4A0GRHnNBktLB9Ik3KzMqg+3yh2K3
+gDdl1zP1vVgUHZUw6wSwYVUVycsSxD1uwa4iKs1G6taWK0hm2cZ/UkFHfLylWymx
+ZMU/zXeloIHz2/PwWrczx7lBEgaYNQ3rptgc+BbafHBEIpH36XlU1N2wdQUAkQqC
+VeCxbQECgYEA83imEE5pwCdBxcbg7WXL5GrvQqdzCxkqL8xSsftDklvyHGktc8OU
+XBkVkip+D9FBSNbKYWzCGXBaHg6mdtskmkxsq9rALzIzvVDNJ0r4WzyuRi//AEbV
+Mg+gZ3NeXYx61pwE0tYEC1RocboYGEpYGbJ6+SXG/BySiks7FBukJ8ECgYEAwgc6
+Pcfu7dUmFrj31xjylVgpdhsZNDr200eKgJ1dE3wbrJYz31sVMYULhaoJGKrYKNKY
+ECTDmhywKnM/0Z9MqpG64VWeR10hEbsL+bKrVbPQZkLKGpichNRF7QIOT64cjZt2
+kjMYCWEp+ip8yy9PrVufVqrhG6/a6XxXQGwdCpUCgYEAv4n86vslStwXbGaHcXwS
+KYLO89sUMHj9rVjK/eY0RKI9GIjODzKgNswtIi53ui3fdFQ2JusO0ECJRPg1kW/Z
+neHd5F1VsEuIVLmKjAz40Z4tZF5B+I/BDX8pq/khFet8f/WB/fQMfnVLLZ0/c2yZ
+Xq4A/JzxrEk2J8IDmlAcloECgYEAmawjwr7RS+kfq6uAEAqgRwx2eiZoRefVie0F
+k2wPRdlsCbtFBkgbdwcK4yiS38igP2TcLx0PFsZV+KkjCKGElSuqucGYBKmMAYEF
+sRSDgvNRwUxwybPJc6K0Z0zTjOQ3lShmNtDk3rjoCE0SXdLw5jrE7l2UwNr9JSPn
+7wwxzCkCgYBCRf/n0ID2NcsbVJBhxqel19Pa3vxxvY7Lw1j0kzgXx4a5LrOw6qnZ
+KRQUOK9EMrby63tjrIE9p2xuwXj7r0jMi9GFrk0fd1yLBveqAt/Hq9+DmWU4YDSN
+ZnxCyQ+VQ+wGtVqmuwV0iUWnnhhSLYuaqVgvsnY1QoNmxHIXgSV04g==
+-----END RSA PRIVATE KEY-----

+ 23 - 11
Controller/CloudStorage.py

@@ -320,7 +320,7 @@ class CloudStorageView(View):
         print(uid)
         now_time = int(time.time())
         ubqs = UID_Bucket.objects.filter(uid=uid, channel=channel, endTime__gte=now_time). \
-            values("bucket__mold", "bucket__bucket", "bucket__endpoint", "bucket__region", "endTime")
+            values("bucket__mold", "bucket__bucket", "bucket__endpoint", "bucket__region", "endTime").order_by('endTime')
         print('-------------bucket')
         print(ubqs)
         if ubqs.exists():
@@ -472,8 +472,10 @@ class CloudStorageView(View):
         dv_qs = Device_Info.objects.filter(UID=uid, userID_id=userID, isShare=False)
         if not dv_qs.exists():
             return response.json(12)
-        # bv_qs = UID_Bucket.objects.filter(UID=uid,channel=channel)
         now_time = int(time.time())
+        bv_qs = UID_Bucket.objects.filter(uid=uid,channel=channel, endTime__gte=now_time).order_by('endTime')
+        if not bv_qs.exists():
+            return response.json(10008)
         vh_qs = VodHlsModel.objects.filter \
             ( uid=uid, channel=channel, time__range=(startTime, endTime), endTime__gte=now_time). \
             values("id", "time", "sec", "bucket__bucket", "fg", "bucket__endpoint", "bucket__region", "bucket__mold")
@@ -558,7 +560,7 @@ class CloudStorageView(View):
         now_time = int(time.time())
         ubqs = UID_Bucket.objects.filter(uid=UID, channel=channel, is_use=1, endTime__gte=now_time). \
             values("bucket__mold", "bucket__bucket", "bucket__endpoint",
-                   "bucket__region", "status", "bucket__storeDay", "bucket__id")
+                   "bucket__region", "status", "bucket__storeDay", "bucket__id").order_by('endTime')
         if ubqs.exists():
             ub_qs_data = ubqs[0]
             store_day = ub_qs_data['bucket__storeDay']
@@ -649,12 +651,12 @@ class CloudStorageView(View):
         dvqs = Device_Info.objects.filter(UID=uid, userID_id=userID, isShare=False)
         if not dvqs.exists():
             return response.json(12)
-        ubqs = UID_Bucket.objects.filter(channel=channel, uid=uid, is_use=1)
+        ubqs = UID_Bucket.objects.filter(channel=channel, uid=uid).order_by('endTime')
         if not ubqs.exists():
             return response.json(10, '未购买')
         now_time = int(time.time())
         if now_time > ubqs[0].endTime:
-            return response.json(10, '已过期')
+            return response.json(10008)
         ubqs.update(status=status)
         if status == 0:
             return response.json(0)
@@ -931,7 +933,7 @@ class CloudStorageView(View):
         else:
             endTime = CommonService.calcMonthLater(expire)
             ub_cqs = UID_Bucket.objects.create \
-                (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, is_use=1)
+                (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime)
             uid_bucket_id = ub_cqs.id
         order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
 
@@ -1253,9 +1255,13 @@ class CloudStorageView(View):
         uid = request_dict.get('uid',None)
         now_time = int(time.time())
         uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=now_time).values("id", "uid", "endTime",
-                                                                                 "is_use","bucket__content")
+                                                                     "bucket__content").order_by('endTime')
         if not uid_bucket.exists():
             return response.json(404,'该设备未购买云存套餐.')
+        for index, value in enumerate(uid_bucket):
+            value['is_use'] = 0
+            if index == 0:
+                value['is_use'] = 1
         return response.json(0,list(uid_bucket))
 
     #切换设备关联套餐
@@ -1264,15 +1270,16 @@ class CloudStorageView(View):
         switch_commodity_id = request_dict.get('switch_commodity_id',None)
         if switch_commodity_id:
             #切换设备套餐关联
-            using_uid_bucket = UID_Bucket.objects.filter(uid=uid, is_use='1').values("id", "uid", "endTime",
-                                                                                   "is_use","bucket__content")
+            using_uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=int(time.time())).values("id", "uid", "endTime",
+                                                                               "bucket__content").order_by('endTime')
+
             if not using_uid_bucket.exists():
                 return response.json(404,'该设备未购买云存套餐.')
 
             if int(using_uid_bucket[0]['id']) == int(switch_commodity_id):
                 return response.json(404,'切换的云存套餐ID不能与正在使用中的相同.')
 
-            UID_Bucket.objects.filter(id=switch_commodity_id).update(is_use=1)  #更新转移的云存套餐为使用中
+            # UID_Bucket.objects.filter(id=switch_commodity_id).update(is_use=1)  #更新转移的云存套餐为使用中
             UID_Bucket.objects.filter(id=using_uid_bucket[0]['id']).delete()    #删除原来使用中的云存套餐
             VodHlsModel.objects.filter(uid=uid).delete()                        #删除播放列表
             StsCrdModel.objects.filter(uid=uid).delete()                        #删除sts记录
@@ -1310,5 +1317,10 @@ def deleteVodHls(request):
 
 #删除过期云存关联套餐
 def deleteExpiredUidBucket(request):
+    response = ResponseObject()
     now_time = int(time.time())
-    expired_uid_bucket = UID_Bucket.objects.filter(is_use=1, endTime__lte =now_time)
+    expired_uid_bucket = UID_Bucket.objects.filter(endTime__lte=now_time)
+    id_list = expired_uid_bucket.values_list("id", flat=True)
+    UID_Bucket.objects.filter(id__in=list(id_list)).delete()  #删除过期云存关联套餐, 后续是否考虑用软删除
+    return response.json(0)
+

+ 1 - 1
Controller/UserController.py

@@ -14,7 +14,7 @@
 import datetime
 import traceback
 import time
-
+import logging
 import jwt
 import simplejson
 import simplejson as json