浏览代码

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

zjz 4 年之前
父节点
当前提交
e062cb2d36

+ 105 - 117
Controller/CloudStorage.py

@@ -31,7 +31,7 @@ from django.views.generic.base import View
 from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD, \
     SERVER_DOMAIN_SSL
 from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, \
-    ExperienceContextModel, Pay_Type, CDKcontextModel
+    ExperienceContextModel, Pay_Type, CDKcontextModel, Device_User
 from Object.AliPayObject import AliPayObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -120,11 +120,11 @@ class CloudStorageView(View):
             elif operation == 'experiencereset':
                 return self.do_experience_reset(request_dict, userID, response)
             elif operation == 'deletevodlist':
-                return self.deleteVodList(request_dict, response)
+                return self.deleteVodList(request_dict, userID, response)
             elif operation == 'devicecommodity':
-                return self.device_commodity(request_dict, response)
+                return self.device_commodity(request_dict, userID, response)
             elif operation == 'switchdevicecommodity':
-                return self.switch_device_commodity(request_dict, response)
+                return self.switch_device_commodity(request_dict, userID, response)
             else:
                 return response.json(414)
 
@@ -474,11 +474,11 @@ class CloudStorageView(View):
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
 
-        dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False).values('primaryUserID',
-                                                                                                       'primaryMaster')
+        dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False).values('vodPrimaryUserID',
+                                                                                                       'vodPrimaryMaster')
         if not dv_qs.exists():
             return response.json(12)
-        if dv_qs[0]['primaryUserID'] != '' and dv_qs[0]['primaryUserID'] != userID:
+        if dv_qs[0]['vodPrimaryUserID'] != '' and dv_qs[0]['vodPrimaryUserID'] != userID:
             return response.json(10034)
         now_time = int(time.time())
         bv_qs = UID_Bucket.objects.filter(uid=uid,channel=channel, endTime__gte=now_time).order_by('addTime')
@@ -512,6 +512,7 @@ class CloudStorageView(View):
                 vod_play_list.append({'name': vod['time'], 'sign_url': vod_play_url,
                                       'thumb': thumb, 'sec': vod['sec'], 'vod_id': vod['id']})
             elif bucket__mold == 1:
+
                 # aws_access_key_id = 'AKIA2E67UIMD45Y3HL53'
                 # aws_secret_access_key = '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'
                 # session = Session(
@@ -520,7 +521,7 @@ class CloudStorageView(View):
                 #     region_name=bucket__region
                 # )
                 # conn = session.client('s3')
-
+                #
                 # thumbspng = '{uid}/vod{channel}/{time}/Thumb.jpeg'. \
                 #     format(uid=uid, channel=channel, time=vod['time'])
                 # response_url = conn.generate_presigned_url(
@@ -532,7 +533,6 @@ class CloudStorageView(View):
                 #     ExpiresIn=3600
                 # )
                 # thumb_url = response_url
-                #     format(uid=uid, channel=channel, time=vod['time'])
 
                 vod_url = '{server_domain}/cloudstorage/signplaym3u8?' \
                           'uid={uid}&channel={channel}&time={time}&sign=tktktktk'. \
@@ -620,36 +620,6 @@ class CloudStorageView(View):
             res = {'code': 404, 'msg': '设备未购买'}
             return HttpResponse(json.dumps(res, ensure_ascii=False), content_type="application/json,charset=utf-8")
 
-    # def do_change_vod_status(self, request_dict, userID, response):
-    #     uid = request_dict.get('uid', None)
-    #     status = request_dict.get('status', None)
-    #     channel = request_dict.get('channel', None)
-    #     if all([uid, status, channel]):
-    #         dv_qs = Device_Info.objects.filter(UID=uid, userID_id=userID, isShare=False, isExist=1)
-    #         if dv_qs.exists():
-    #             now_time = int(time.time())
-    #             ub_qs = UID_Bucket.objects.filter(uid=uid, channel=channel, endTime__gte=now_time)
-    #             if ub_qs.exists():
-    #                 ub_qs.status = status
-    #                 ub_qs.save()
-    #                 if status == 0:
-    #                     return response.json(0)
-    #                 else:
-    #                     utko = UidTokenObject()
-    #                     utko.generate(data={'uid': uid, 'channel': channel})
-    #                     uidTK = utko.token
-    #                     uidTkUrl = "{SERVER_DOMAIN}cloudstorage/getsignsts?uidToken={uidToken}". \
-    #                         format(uidToken=uidTK, SERVER_DOMAIN=SERVER_DOMAIN)
-    #                     storeHlsUrl = "{SERVER_DOMAIN}cloudstorage/storeplaylist?uidToken={uidToken}". \
-    #                         format(uidToken=uidTK, SERVER_DOMAIN=SERVER_DOMAIN)
-    #                     return response.json(0, {'uidTkUrl': uidTkUrl, 'storeHlsUrl': storeHlsUrl})
-    #             else:
-    #                 return response.json(10, '未购买')
-    #         else:
-    #             return response.json(12)
-    #     else:
-    #         return response.json(444, 'uid,status,channel')
-
     def do_change_vod_status(self, request_dict, userID, response):
         uid = request_dict.get('uid', None)
         status = request_dict.get('status', None)
@@ -901,11 +871,11 @@ class CloudStorageView(View):
                     (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
                 uid_bucket_id = ub_cqs.id
 
-            dvq = Device_Info.objects.filter(UID=UID, primaryUserID='', primaryMaster='')
+            dvq = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
             if dvq.exists():
                 dvq_set_update_dict = {
-                    'primaryUserID': userid,
-                    'primaryMaster': username
+                    'vodPrimaryUserID': userid,
+                    'vodPrimaryMaster': username
                 }
                 dvq.update(**dvq_set_update_dict)
 
@@ -918,18 +888,18 @@ class CloudStorageView(View):
         paymentId = request_dict.get('paymentId', None)
         PayerID = request_dict.get('PayerID', None)
         orderID = request_dict.get('orderID', None)
-        # if not paymentId or not PayerID or not orderID:
-        #     red_url = "{SERVER_DOMAIN}cloudstorage/payError".format(SERVER_DOMAIN=SERVER_DOMAIN)
-        #     return HttpResponseRedirect(red_url)
-        # paypalrestsdk.configure(PAYPAL_CRD)
-        # # ID of the payment. This ID is provided when creating payment.
-        # payment = paypalrestsdk.Payment.find(paymentId)
-        # payres = payment.execute({"payer_id": PayerID})
-        # print(payres)
-        # if not payres:
-        #     red_url = "{SERVER_DOMAIN}cloudstorage/payError".format(SERVER_DOMAIN=SERVER_DOMAIN)
-        #     return HttpResponseRedirect(red_url)
-        # print("Payment execute successfully")
+        if not paymentId or not PayerID or not orderID:
+            red_url = "{SERVER_DOMAIN}cloudstorage/payError".format(SERVER_DOMAIN=SERVER_DOMAIN)
+            return HttpResponseRedirect(red_url)
+        paypalrestsdk.configure(PAYPAL_CRD)
+        # ID of the payment. This ID is provided when creating payment.
+        payment = paypalrestsdk.Payment.find(paymentId)
+        payres = payment.execute({"payer_id": PayerID})
+        print(payres)
+        if not payres:
+            red_url = "{SERVER_DOMAIN}cloudstorage/payError".format(SERVER_DOMAIN=SERVER_DOMAIN)
+            return HttpResponseRedirect(red_url)
+        print("Payment execute successfully")
         order_qs = Order_Model.objects.filter(orderID=orderID)
         nowTime = int(time.time())
         order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts", "userID__userID",
@@ -963,11 +933,11 @@ class CloudStorageView(View):
                 (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
             uid_bucket_id = ub_cqs.id
 
-        dvq = Device_Info.objects.filter(UID=UID, primaryUserID='', primaryMaster='')
+        dvq = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
         if dvq.exists():
             dvq_set_update_dict = {
-                'primaryUserID': userid,
-                'primaryMaster': username
+                'vodPrimaryUserID': userid,
+                'vodPrimaryMaster': username
             }
             dvq.update(**dvq_set_update_dict)
         order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
@@ -1017,11 +987,11 @@ class CloudStorageView(View):
                     (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
                 uid_bucket_id = ub_cqs.id
 
-            dvq = Device_Info.objects.filter(UID=UID, primaryUserID='', primaryMaster='')
+            dvq = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
             if dvq.exists():
                 dvq_set_update_dict = {
-                    'primaryUserID': userid,
-                    'primaryMaster': username
+                    'vodPrimaryUserID': userid,
+                    'vodPrimaryMaster': username
                 }
                 dvq.update(**dvq_set_update_dict)
             order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
@@ -1036,13 +1006,25 @@ class CloudStorageView(View):
         is_select_discount = request_dict.get('is_select_discount', 0)
         if not uid or not channel or not pay_type or not rank:
             return response.json(444)
-        dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1).values('primaryUserID',
-                                                                                                       'primaryMaster')
+        dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1).values('vodPrimaryUserID',
+                                                                                                       'vodPrimaryMaster')
         if not dv_qs.exists():
             return response.json(12)
 
-        if dv_qs[0]['primaryUserID'] != '' and dv_qs[0]['primaryUserID'] != userID:
-            return response.json(10033)
+        dvq = Device_Info.objects.filter(UID=uid)
+        dvq = dvq.filter(~Q(vodPrimaryUserID='')).values('vodPrimaryUserID')
+        if dvq.exists():
+            if dvq[0]['vodPrimaryUserID'] != userID:
+                return response.json(10033)
+
+        nowTime = int(time.time())
+
+        # uq = UID_Bucket.objects.filter(uid=uid,endTime__gt=str(nowTime)).values('endTime')
+        # if uq.exists():
+        #     return response.json(10033)
+
+        # if dv_qs[0]['vodPrimaryUserID'] != '' and dv_qs[0]['vodPrimaryUserID'] != userID:
+        #     return response.json(10033)
         smqs = Store_Meal.objects.filter(id=rank, pay_type=pay_type). \
             values('currency', 'price', 'content', 'day',
                    'commodity_type', 'title', 'content',
@@ -1063,7 +1045,7 @@ class CloudStorageView(View):
         #     ubqs_count = ubqs.count()
         #     ubq = ubqs[ubqs_count - 1, ubqs_count]
         #     new_starTime = ubq['endTime'] + 1
-        nowTime = int(time.time())
+
         orderID = CommonService.createOrderID()
         if pay_type == 1:
             call_sub_url = "{SERVER_DOMAIN}cloudstorage/dopaypalcallback?orderID={orderID}". \
@@ -1177,64 +1159,58 @@ class CloudStorageView(View):
 
         if uid == None or channel == None or commodity_code == None or pay_type == None or rank == None:
             return response.json(13, '参数有误.')
+
+        dvq = Device_Info.objects.filter(UID=uid)
+        dvq=dvq.filter(~Q(vodPrimaryUserID='')).values('vodPrimaryUserID')
+        if dvq.exists():
+            if dvq[0]['vodPrimaryUserID']!=userID:
+                if pay_type==10:
+                    return response.json(10035)
+                if pay_type==11:
+                    return response.json(10036)
+
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1)
         if not dv_qs.exists():
             return response.json(12)
-        smqs = Store_Meal.objects.filter(commodity_code=commodity_code, pay_type=pay_type). \
-            values('currency', 'price', 'content', 'day', 'commodity_type', 'title', 'content')
-        if not smqs.exists():
-            return response.json(10, '套餐不存在')
-        currency = smqs[0]['currency']
-        price = smqs[0]['price']
-        content = smqs[0]['content']
-        day = smqs[0]['day']
-        commodity_type = smqs[0]['commodity_type']
-        # ubqs = UID_Bucket.objects.filter(uid=uid, channel=channel, endTime__gte=nowTime). \
-        #     values("bucket__storeDay", "bucket__region", "endTime")
-        # if ubqs.exists():
-        #     ubqs_count = ubqs.count()
-        #     ubq = ubqs[ubqs_count - 1, ubqs_count]
-        #     new_starTime = ubq['endTime'] + 1
-        nowTime = int(time.time())
-        orderID = CommonService.createOrderID()
 
-        Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
-                                   desc=content, payType=pay_type, payTime=nowTime,
-                                   price=price, currency=currency, addTime=nowTime, updTime=nowTime,
-                                   pay_url="体验版",
-                                   commodity_code=commodity_code, commodity_type=commodity_type,
-                                   rank_id=rank)
-
-        order_qs = Order_Model.objects.filter(orderID=orderID)
+        orderID = CommonService.createOrderID()
         nowTime = int(time.time())
-        order_list = order_qs.values("UID", "channel", "commodity_code")
-        UID = order_list[0]['UID']
-        channel = order_list[0]['channel']
-        commodity_code = order_list[0]['commodity_code']
-        smqs = Store_Meal.objects.filter(commodity_code=commodity_code). \
-            values("day", "bucket_id", "bucket__storeDay")
-        bucketId = smqs[0]['bucket_id']
+        smqs = Store_Meal.objects.filter(id=rank). \
+            values("day", "bucket_id", "bucket__storeDay", "expire", 'content', 'price', 'currency', 'commodity_type')
         if not smqs.exists():
-            return response.json(0, '套餐已删除')
-        addTime = int(smqs[0]["day"]) * 24 * 3600
+            return response.json(173)
+        bucketId = smqs[0]['bucket_id']
         # ##
-        ubqs = UID_Bucket.objects.filter(uid=UID, channel=channel, endTime__gte=nowTime). \
-            values("bucket__storeDay", "bucket__region", "endTime")
+        ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=uid, channel=channel, endTime__gte=nowTime). \
+                   values("id", "bucket__storeDay", "bucket__region", "endTime").order_by('addTime')[:1]
+        expire = smqs[0]['expire']
         if ubqs.exists():
-            ubqs_count = ubqs.count()
-            print(ubqs_count)
-            ubq = ubqs[ubqs_count - 1]
-            print(ubq)
-            new_starTime = ubq['endTime'] + 1
-            ub_cqs = UID_Bucket.objects.create \
-                (uid=UID, channel=channel, bucket_id=bucketId,
-                 endTime=new_starTime + addTime)
-            uid_bucket_id = ub_cqs.id
+            ubq = ubqs[0]
+            endTime = CommonService.calcMonthLater(expire,ubq['endTime'])
+            ub_cqs = UID_Bucket.objects.filter(id=ubq['id']).update \
+                (uid=uid, channel=channel, bucket_id=bucketId,
+                 endTime=endTime,updateTime=nowTime)
+            uid_bucket_id = ubq['id']
         else:
+            endTime = CommonService.calcMonthLater(expire)
             ub_cqs = UID_Bucket.objects.create \
-                (uid=UID, channel=channel, bucket_id=bucketId, endTime=nowTime + addTime)
+                (uid=uid, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
             uid_bucket_id = ub_cqs.id
-        order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
+        Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
+                                   desc=smqs[0]['content'], payType=pay_type, payTime=nowTime,
+                                   price=smqs[0]['price'], currency=smqs[0]['currency'], addTime=nowTime, updTime=nowTime,
+                                   pay_url="体验版",
+                                   commodity_code=commodity_code, commodity_type=smqs[0]['commodity_type'],
+                                   rank_id=rank,status=1, uid_bucket_id=uid_bucket_id)
+
+        duq = Device_User.objects.filter(userID=userID).values('username')
+        dvq = Device_Info.objects.filter(UID=uid, vodPrimaryUserID='', vodPrimaryMaster='')
+        if dvq.exists():
+            dvq_set_update_dict = {
+                'vodPrimaryUserID': userID,
+                'vodPrimaryMaster': duq[0]['username']
+            }
+            dvq.update(**dvq_set_update_dict)
 
         # return response.json(0)
         returnurl = "{SERVER_DOMAIN}cloudstorage/payOK".format(SERVER_DOMAIN=SERVER_DOMAIN)
@@ -1279,8 +1255,12 @@ class CloudStorageView(View):
         return response.json(0,'重置云存体验成功')
 
 
-    def deleteVodList(self, request_dict, response):
+    def deleteVodList(self, request_dict, userID, response):
         uid = request_dict.get('uid',None)
+        dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
+            .values('vodPrimaryUserID')
+        if not dv_qs.exists() or dv_qs[0]['vodPrimaryUserID'] != userID:
+            return response.json(12)
         vod_id_list = json.loads(request_dict.get('vod_id_list', None))
         is_del_all = request_dict.get('is_del_all',0)
         try:
@@ -1296,11 +1276,15 @@ class CloudStorageView(View):
             return response.json(0)
 
     #设备关联套餐列表
-    def device_commodity(self, request_dict, response):
+    def device_commodity(self, request_dict, userID, response):
         uid = request_dict.get('uid',None)
+        dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
+            .values('vodPrimaryUserID')
+        if not dv_qs.exists() or dv_qs[0]['vodPrimaryUserID'] != userID:
+            return response.json(12)
         now_time = int(time.time())
         uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=now_time).values("id", "uid", "endTime",
-                                                                                      "bucket__content").order_by('addTime')
+                                                                              "bucket__content").order_by('addTime')
         if not uid_bucket.exists():
             return response.json(10030)
         for index, value in enumerate(uid_bucket):
@@ -1309,9 +1293,13 @@ class CloudStorageView(View):
                 value['is_use'] = 1
         return response.json(0,list(uid_bucket))
 
-    #切换设备关联套餐
-    def switch_device_commodity(self, request_dict, response):
+    #提前使用设备关联套餐
+    def switch_device_commodity(self, request_dict, userID, response):
         uid = request_dict.get('uid',None)
+        dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
+            .values('vodPrimaryUserID')
+        if not dv_qs.exists() or dv_qs[0]['vodPrimaryUserID'] != userID:
+            return response.json(12)
         switch_commodity_id = request_dict.get('switch_commodity_id',None)
         if switch_commodity_id:
             #切换设备套餐关联

+ 13 - 6
Controller/CloudTest.py

@@ -60,16 +60,22 @@ class cloudTestView(View):
             # 登录方式可能为用户名,手机号或邮箱登录
             deviceUser_qs = Device_User.objects.filter(
                 Q(username=loginName) | Q(phone=loginName) | Q(userEmail=loginName)).values('userID')
-            userID = deviceUser_qs[0]['userID']
-            # 判断该用户的userID是否跟转移的一样
-            if userID == oldUserID:
+            newUserID = deviceUser_qs[0]['userID']
+            # 判断新用户的userID是否跟旧用户的一样
+            if newUserID == oldUserID:
                 return response.json(10009)
-            # 判断用户是否已有此设备UID
-            new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isExist=1)
+            # 判断用户是否已有此设备UID
+            new_deviceInfo_qs = Device_Info.objects.filter(userID_id=newUserID, UID=uid, isExist=1)
             if new_deviceInfo_qs:
                 return response.json(10009)
+            # 分享的设备不能转移
+            isShare = Device_Info.objects.get(userID_id=oldUserID, UID=uid).isShare
+            if isShare:
+                return response.json(10015)
+            # 获取旧设备的username
+            oldUserName = Device_User.objects.get(userID=oldUserID).username
             # 更新设备信息
-            old_deviceInfo_qs.update(userID=userID)
+            old_deviceInfo_qs.update(userID=newUserID, vodPrimaryUserID=newUserID, vodPrimaryMaster=oldUserName)
         except Exception as e:
             # print(e)
             return response.json(500, repr(e))
@@ -144,3 +150,4 @@ class cloudTestView(View):
                 return response.json(500, repr(e))
             else:
                 return response.json(0)
+        response.json(404)

+ 8 - 8
Controller/EquipmentManager.py

@@ -388,17 +388,17 @@ def addInterface(request):
                 # if is_bind:
                 #     return response.json(15)
 
-                main_exist = Device_Info.objects.filter(UID=UID, primaryUserID='',primaryMaster='')
+                main_exist = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
                 pk = CommonService.getUserID(getUser=False)
-                primaryMaster = ''
-                primaryUserID = ''
+                vodPrimaryUserID = ''
+                vodPrimaryMaster = ''
                 if not main_exist:
 
                     duq = Device_User.objects.filter(userID=userID).values('username')
                     if duq.exists():
                         username = duq[0]['username']
-                        primaryMaster = username
-                        primaryUserID = userID
+                        vodPrimaryUserID = username
+                        vodPrimaryMaster = userID
 
 
                 try:
@@ -420,7 +420,7 @@ def addInterface(request):
 
                     userDevice = Device_Info(id=pk, userID_id=userID, UID=UID,
                                              NickName=NickName, View_Account=View_Account,
-                                             View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex, primaryUserID=primaryUserID, primaryMaster=primaryMaster)
+                                             View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex, vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster)
                     userDevice.save()
                     # redisObj = RedisObject(db=8)
                     # redisObj.del_data(key='uid_qs_' + userID)
@@ -431,7 +431,7 @@ def addInterface(request):
                                                                     'View_Account',
                                                                     'View_Password', 'ChannelIndex', 'Type',
                                                                     'isShare',
-                                                                    'primaryUserID', 'primaryMaster',
+                                                                    'primaryUserID', 'primaryMaster', 'vodPrimaryUserID', 'vodPrimaryMaster'
                                                                     'data_joined', 'version',
                                                                     'isVod', 'isExist')
                     dvql = CommonService.qs_to_list(dvqs)
@@ -766,7 +766,7 @@ def queryInterface(request):
         # count = dvqs.count()
         dvql = dvqs[(page - 1) * line:page * line].values('id', 'userID', 'NickName', 'UID', 'View_Account',
                                                           'View_Password', 'ChannelIndex', 'Type', 'isShare',
-                                                          'primaryUserID', 'primaryMaster', 'data_joined', 'version',
+                                                          'primaryUserID', 'primaryMaster', 'data_joined', 'version', 'vodPrimaryUserID', 'vodPrimaryMaster'
                                                           'isVod', 'isExist', 'NotificationMode')
         dvls = CommonService.qs_to_list(dvql)
         uid_list = []

+ 1 - 1
Controller/EquipmentManagerV2.py

@@ -146,7 +146,7 @@ class EquipmentManagerV2(View):
             dvql = dvqs[(page - 1) * line:page * line]. \
                 values('id', 'userID', 'NickName', 'UID', 'View_Account',
                        'View_Password', 'ChannelIndex', 'Type', 'isShare',
-                       'primaryUserID', 'primaryMaster', 'data_joined',
+                       'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID', 'vodPrimaryMaster',
                        'version',
                        'isVod', 'isExist', 'NotificationMode')
             dvls = CommonService.qs_to_list(dvql)

+ 9 - 9
Controller/EquipmentManagerV3.py

@@ -89,17 +89,17 @@ class EquipmentManagerV3(View):
                     # if is_bind:
                     #     return response.json(15)
 
-                    main_exist = Device_Info.objects.filter(UID=UID, primaryUserID='', primaryMaster='')
+                    main_exist = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
                     pk = CommonService.getUserID(getUser=False)
-                    primaryMaster = ''
-                    primaryUserID = ''
+                    vodPrimaryUserID = ''
+                    vodPrimaryMaster = ''
                     if not main_exist:
 
                         duq = Device_User.objects.filter(userID=userID).values('username')
                         if duq.exists():
                             username = duq[0]['username']
-                            primaryMaster = username
-                            primaryUserID = userID
+                            vodPrimaryUserID = username
+                            vodPrimaryMaster = userID
                     try:
                         # 判断是否有用户绑定
                         nowTime = int(time.time())
@@ -119,7 +119,7 @@ class EquipmentManagerV3(View):
 
                         userDevice = Device_Info(id=pk, userID_id=userID, UID=UID,
                                                  NickName=NickName, View_Account=View_Account,
-                                                 View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex, primaryUserID=primaryUserID, primaryMaster=primaryMaster)
+                                                 View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex, vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster)
                         userDevice.save()
 
                         if not us_qs.exists():
@@ -138,7 +138,7 @@ class EquipmentManagerV3(View):
                                                                         'View_Account',
                                                                         'View_Password', 'ChannelIndex', 'Type',
                                                                         'isShare',
-                                                                        'primaryUserID', 'primaryMaster',
+                                                                        'primaryUserID', 'primaryMaster', 'vodPrimaryUserID', 'vodPrimaryMaster'
                                                                         'data_joined', 'version',
                                                                         'isVod', 'isExist')
                         dvql = CommonService.qs_to_list(dvqs)
@@ -247,7 +247,7 @@ class EquipmentManagerV3(View):
             dvqs = dvqs.filter(~Q(isExist=2))
             dvql = dvqs.values('id', 'userID', 'NickName', 'UID', 'View_Account',
                                'View_Password', 'ChannelIndex', 'Type', 'isShare',
-                               'primaryUserID', 'primaryMaster', 'data_joined',
+                               'primaryUserID', 'primaryMaster', 'data_joined',  'vodPrimaryUserID', 'vodPrimaryMaster',
                                'version', 'isVod', 'isExist', 'NotificationMode')
             dvls = CommonService.qs_to_list(dvql)
             uid_list = []
@@ -406,7 +406,7 @@ class EquipmentManagerV3(View):
 
                 device_qs = device_qs.values('id', 'userID', 'NickName', 'UID', 'View_Account',
                                'View_Password', 'ChannelIndex', 'Type', 'isShare',
-                               'primaryUserID', 'primaryMaster', 'data_joined',
+                               'primaryUserID', 'primaryMaster', 'data_joined',  'vodPrimaryUserID', 'vodPrimaryMaster'
                                'version', 'isVod', 'isExist', 'NotificationMode')
 
                 dvls = CommonService.qs_to_list(device_qs)

+ 2 - 0
Model/models.py

@@ -228,6 +228,8 @@ class Device_Info(models.Model):
                                   help_text=u'是否为共享获取的设备', default=False)
     primaryUserID = models.CharField(blank=True, verbose_name='主用户id', max_length=32, default='')
     primaryMaster = models.CharField(max_length=64, verbose_name=u'主用户名', default='')
+    vodPrimaryUserID = models.CharField(blank=True, verbose_name='云存主用户id', max_length=32, default='')
+    vodPrimaryMaster = models.CharField(max_length=64, verbose_name=u'云存主用户名', default='')
     data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
     update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
 

+ 14 - 1
Object/ResponseObject.py

@@ -82,8 +82,14 @@ class ResponseObject(object):
             10012: 'Experience packages cannot be transferred',
             10013: 'Original equipment package has expired and cannot be transferred',
             10014: 'Accept transfer of equipment packages that have not expired and cannot be transferred',
+            10015: 'Shared devices cannot be transferred',
+            10030: 'No purchase of cloud storage',
+            10031: 'The cloud storage has expired',
+            10032: 'The switched cloud storage package ID cannot be the same as the one in use',
             10033: 'The primary user of the device cannot purchase it',
             10034: 'Non device primary users cannot view cloud storage',
+            10035: 'Non device primary users cannot experience cloud storage',
+            10036: 'Non device primary users cannot exchange for cloud storage',
         }
         data_cn = {
             0: '成功',
@@ -159,9 +165,16 @@ class ResponseObject(object):
             10011: '接受转移设备不存在,无法转移',
             10012: '体验套餐无法转移',
             10013: '原设备套餐已过期,无法转移',
-            10014: '接受转移设备套餐未过期,无法转移' ,
+            10014: '接受转移设备套餐未过期,无法转移',
+            10015: '分享的设备无法转移',
+            10014: '接受转移设备套餐未过期,无法转移',
+            10030: '未购买云存',
+            10031: '云存已过期',
+            10032: '切换的云存套餐ID不能与正在使用中的相同',
             10033: '非设备主用户无法购买',
             10034: '非设备主用户无法查看云存',
+            10035: '非设备主用户无法体验云存',
+            10036: '非设备主用户无法兑换云存',
 
         }
         if self.lang == 'cn':