فهرست منبع

Merge branch 'dev' into lang

lang 4 سال پیش
والد
کامیت
c3ebfdfb91

+ 48 - 30
Controller/CloudStorage.py

@@ -474,11 +474,11 @@ class CloudStorageView(View):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', 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():
         if not dv_qs.exists():
             return response.json(12)
             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)
             return response.json(10034)
         now_time = int(time.time())
         now_time = int(time.time())
         bv_qs = UID_Bucket.objects.filter(uid=uid,channel=channel, endTime__gte=now_time).order_by('addTime')
         bv_qs = UID_Bucket.objects.filter(uid=uid,channel=channel, endTime__gte=now_time).order_by('addTime')
@@ -880,11 +880,11 @@ class CloudStorageView(View):
                     (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
                     (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
                 uid_bucket_id = ub_cqs.id
                 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():
             if dvq.exists():
                 dvq_set_update_dict = {
                 dvq_set_update_dict = {
-                    'primaryUserID': userid,
-                    'primaryMaster': username
+                    'vodPrimaryUserID': userid,
+                    'vodPrimaryMaster': username
                 }
                 }
                 dvq.update(**dvq_set_update_dict)
                 dvq.update(**dvq_set_update_dict)
 
 
@@ -942,11 +942,11 @@ class CloudStorageView(View):
                 (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
                 (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
             uid_bucket_id = ub_cqs.id
             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():
         if dvq.exists():
             dvq_set_update_dict = {
             dvq_set_update_dict = {
-                'primaryUserID': userid,
-                'primaryMaster': username
+                'vodPrimaryUserID': userid,
+                'vodPrimaryMaster': username
             }
             }
             dvq.update(**dvq_set_update_dict)
             dvq.update(**dvq_set_update_dict)
         order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
         order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
@@ -957,6 +957,12 @@ class CloudStorageView(View):
 
 
     def do_pay_by_wechat_callback(self, request_dict, response):
     def do_pay_by_wechat_callback(self, request_dict, response):
         result_code = request_dict.get('result_code', None)
         result_code = request_dict.get('result_code', None)
+        print("进来了,微信支付成功回调")
+        response = ResponseObject()
+        asy = threading.Thread(target=ModelService.add_log,
+                               args=('回调',
+                                     '回调', '进来了,微信支付成功回调'))
+        asy.start()
         if result_code == 'SUCCESS':
         if result_code == 'SUCCESS':
             response = HttpResponse()
             response = HttpResponse()
             check_sign = WechatPayObject.get_notifypay(request_dict)
             check_sign = WechatPayObject.get_notifypay(request_dict)
@@ -996,11 +1002,11 @@ class CloudStorageView(View):
                     (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
                     (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
                 uid_bucket_id = ub_cqs.id
                 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():
             if dvq.exists():
                 dvq_set_update_dict = {
                 dvq_set_update_dict = {
-                    'primaryUserID': userid,
-                    'primaryMaster': username
+                    'vodPrimaryUserID': userid,
+                    'vodPrimaryMaster': username
                 }
                 }
                 dvq.update(**dvq_set_update_dict)
                 dvq.update(**dvq_set_update_dict)
             order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
             order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
@@ -1015,18 +1021,24 @@ class CloudStorageView(View):
         is_select_discount = request_dict.get('is_select_discount', 0)
         is_select_discount = request_dict.get('is_select_discount', 0)
         if not uid or not channel or not pay_type or not rank:
         if not uid or not channel or not pay_type or not rank:
             return response.json(444)
             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():
         if not dv_qs.exists():
             return response.json(12)
             return response.json(12)
 
 
         dvq = Device_Info.objects.filter(UID=uid)
         dvq = Device_Info.objects.filter(UID=uid)
-        dvq = dvq.filter(~Q(primaryUserID='')).values('primaryUserID')
+        dvq = dvq.filter(~Q(vodPrimaryUserID='')).values('vodPrimaryUserID')
         if dvq.exists():
         if dvq.exists():
-            if dvq[0]['primaryUserID'] != userID:
+            if dvq[0]['vodPrimaryUserID'] != userID:
                 return response.json(10033)
                 return response.json(10033)
 
 
-        # if dv_qs[0]['primaryUserID'] != '' and dv_qs[0]['primaryUserID'] != userID:
+        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)
         #     return response.json(10033)
         smqs = Store_Meal.objects.filter(id=rank, pay_type=pay_type). \
         smqs = Store_Meal.objects.filter(id=rank, pay_type=pay_type). \
             values('currency', 'price', 'content', 'day',
             values('currency', 'price', 'content', 'day',
@@ -1048,7 +1060,7 @@ class CloudStorageView(View):
         #     ubqs_count = ubqs.count()
         #     ubqs_count = ubqs.count()
         #     ubq = ubqs[ubqs_count - 1, ubqs_count]
         #     ubq = ubqs[ubqs_count - 1, ubqs_count]
         #     new_starTime = ubq['endTime'] + 1
         #     new_starTime = ubq['endTime'] + 1
-        nowTime = int(time.time())
+
         orderID = CommonService.createOrderID()
         orderID = CommonService.createOrderID()
         if pay_type == 1:
         if pay_type == 1:
             call_sub_url = "{SERVER_DOMAIN}cloudstorage/dopaypalcallback?orderID={orderID}". \
             call_sub_url = "{SERVER_DOMAIN}cloudstorage/dopaypalcallback?orderID={orderID}". \
@@ -1122,6 +1134,12 @@ class CloudStorageView(View):
             notify_url="{SERVER_DOMAIN_SSL}cloudstorage/dowechatnotify".format(
             notify_url="{SERVER_DOMAIN_SSL}cloudstorage/dowechatnotify".format(
                 SERVER_DOMAIN_SSL=SERVER_DOMAIN_SSL)
                 SERVER_DOMAIN_SSL=SERVER_DOMAIN_SSL)
             # 获取参数
             # 获取参数
+            print("进来了,微信支付成功回调")
+            response = ResponseObject()
+            asy = threading.Thread(target=ModelService.add_log,
+                                   args=(orderID,
+                                         orderID, '进来了,微信支付创建订单'+notify_url))
+            asy.start()
             price = float(price)*100
             price = float(price)*100
             parameter_dict = pay.get_parameter(orderID, content, price, ip, notify_url)
             parameter_dict = pay.get_parameter(orderID, content, price, ip, notify_url)
             print('parameter_dict', parameter_dict)
             print('parameter_dict', parameter_dict)
@@ -1164,9 +1182,9 @@ class CloudStorageView(View):
             return response.json(13, '参数有误.')
             return response.json(13, '参数有误.')
 
 
         dvq = Device_Info.objects.filter(UID=uid)
         dvq = Device_Info.objects.filter(UID=uid)
-        dvq=dvq.filter(~Q(primaryUserID='')).values('primaryUserID')
+        dvq=dvq.filter(~Q(vodPrimaryUserID='')).values('vodPrimaryUserID')
         if dvq.exists():
         if dvq.exists():
-            if dvq[0]['primaryUserID']!=userID:
+            if dvq[0]['vodPrimaryUserID']!=userID:
                 if pay_type==10:
                 if pay_type==10:
                     return response.json(10035)
                     return response.json(10035)
                 if pay_type==11:
                 if pay_type==11:
@@ -1179,7 +1197,7 @@ class CloudStorageView(View):
         orderID = CommonService.createOrderID()
         orderID = CommonService.createOrderID()
         nowTime = int(time.time())
         nowTime = int(time.time())
         smqs = Store_Meal.objects.filter(id=rank). \
         smqs = Store_Meal.objects.filter(id=rank). \
-            values("day", "bucket_id", "bucket__storeDay", "expire")
+            values("day", "bucket_id", "bucket__storeDay", "expire", 'content', 'price', 'currency', 'commodity_type')
         if not smqs.exists():
         if not smqs.exists():
             return response.json(173)
             return response.json(173)
         bucketId = smqs[0]['bucket_id']
         bucketId = smqs[0]['bucket_id']
@@ -1207,11 +1225,11 @@ class CloudStorageView(View):
                                    rank_id=rank,status=1, uid_bucket_id=uid_bucket_id)
                                    rank_id=rank,status=1, uid_bucket_id=uid_bucket_id)
 
 
         duq = Device_User.objects.filter(userID=userID).values('username')
         duq = Device_User.objects.filter(userID=userID).values('username')
-        dvq = Device_Info.objects.filter(UID=uid, primaryUserID='', primaryMaster='')
+        dvq = Device_Info.objects.filter(UID=uid, vodPrimaryUserID='', vodPrimaryMaster='')
         if dvq.exists():
         if dvq.exists():
             dvq_set_update_dict = {
             dvq_set_update_dict = {
-                'primaryUserID': userID,
-                'primaryMaster': duq[0]['username']
+                'vodPrimaryUserID': userID,
+                'vodPrimaryMaster': duq[0]['username']
             }
             }
             dvq.update(**dvq_set_update_dict)
             dvq.update(**dvq_set_update_dict)
 
 
@@ -1261,8 +1279,8 @@ class CloudStorageView(View):
     def deleteVodList(self, request_dict, userID, response):
     def deleteVodList(self, request_dict, userID, response):
         uid = request_dict.get('uid',None)
         uid = request_dict.get('uid',None)
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
-            .values('primaryUserID')
-        if not dv_qs.exists() or dv_qs[0]['primaryUserID'] != userID:
+            .values('vodPrimaryUserID')
+        if not dv_qs.exists() or dv_qs[0]['vodPrimaryUserID'] != userID:
             return response.json(12)
             return response.json(12)
         vod_id_list = json.loads(request_dict.get('vod_id_list', None))
         vod_id_list = json.loads(request_dict.get('vod_id_list', None))
         is_del_all = request_dict.get('is_del_all',0)
         is_del_all = request_dict.get('is_del_all',0)
@@ -1282,8 +1300,8 @@ class CloudStorageView(View):
     def device_commodity(self, request_dict, userID, response):
     def device_commodity(self, request_dict, userID, response):
         uid = request_dict.get('uid',None)
         uid = request_dict.get('uid',None)
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
-            .values('primaryUserID')
-        if not dv_qs.exists() or dv_qs[0]['primaryUserID'] != userID:
+            .values('vodPrimaryUserID')
+        if not dv_qs.exists() or dv_qs[0]['vodPrimaryUserID'] != userID:
             return response.json(12)
             return response.json(12)
         now_time = int(time.time())
         now_time = int(time.time())
         uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=now_time).values("id", "uid", "endTime",
         uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=now_time).values("id", "uid", "endTime",
@@ -1300,8 +1318,8 @@ class CloudStorageView(View):
     def switch_device_commodity(self, request_dict, userID, response):
     def switch_device_commodity(self, request_dict, userID, response):
         uid = request_dict.get('uid',None)
         uid = request_dict.get('uid',None)
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
         dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1) \
-            .values('primaryUserID')
-        if not dv_qs.exists() or dv_qs[0]['primaryUserID'] != userID:
+            .values('vodPrimaryUserID')
+        if not dv_qs.exists() or dv_qs[0]['vodPrimaryUserID'] != userID:
             return response.json(12)
             return response.json(12)
         switch_commodity_id = request_dict.get('switch_commodity_id',None)
         switch_commodity_id = request_dict.get('switch_commodity_id',None)
         if switch_commodity_id:
         if switch_commodity_id:

+ 30 - 38
Controller/CloudTest.py

@@ -10,7 +10,7 @@ from django.db import transaction
 from django.db.models import Q
 from django.db.models import Q
 from django.views.generic.base import View
 from django.views.generic.base import View
 
 
-from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, Store_Meal, StsCrdModel
+from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, StsCrdModel, VodHlsModel
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 
 
@@ -60,24 +60,23 @@ class cloudTestView(View):
             # 登录方式可能为用户名,手机号或邮箱登录
             # 登录方式可能为用户名,手机号或邮箱登录
             deviceUser_qs = Device_User.objects.filter(
             deviceUser_qs = Device_User.objects.filter(
                 Q(username=loginName) | Q(phone=loginName) | Q(userEmail=loginName)).values('userID')
                 Q(username=loginName) | Q(phone=loginName) | Q(userEmail=loginName)).values('userID')
-            userID = deviceUser_qs[0]['userID']
+            newUserID = deviceUser_qs[0]['userID']
             # 判断新用户的userID是否跟旧用户的一样
             # 判断新用户的userID是否跟旧用户的一样
-            if userID == oldUserID:
+            if newUserID == oldUserID:
                 return response.json(10009)
                 return response.json(10009)
-            # 判断该用户是否已有此设备UID
-            # new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isExist=1)
-            # if new_deviceInfo_qs:
-            #     return response.json(10009)
-            # 获取新用户的主用户UserID和主用户名
-            new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, isExist=1).values('UID', 'primaryUserID',
-                                                                                               'primaryMaster')
-            if new_deviceInfo_qs[0]['UID'] == userID:
-                # 新用户已有此设备
+            # 判断新用户是否已有此设备UID
+            new_deviceInfo_qs = Device_Info.objects.filter(userID_id=newUserID, UID=uid, isExist=1)
+            if new_deviceInfo_qs:
                 return response.json(10009)
                 return response.json(10009)
-            primaryUserID = new_deviceInfo_qs[0]['primaryUserID']
-            primaryMaster = new_deviceInfo_qs[0]['primaryMaster']
+            # 分享的设备不能转移
+            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, primaryUserID=primaryUserID, primaryMaster=primaryMaster)
+            old_deviceInfo_qs.update(userID=newUserID, vodPrimaryUserID=newUserID, vodPrimaryMaster=oldUserName)
+            VodHlsModel.objects.filter(uid=uid).delete()
         except Exception as e:
         except Exception as e:
             # print(e)
             # print(e)
             return response.json(500, repr(e))
             return response.json(500, repr(e))
@@ -101,38 +100,31 @@ class cloudTestView(View):
             if not new_isExist:
             if not new_isExist:
                 return response.json(10011)
                 return response.json(10011)
 
 
-            old_orderModel_qs = Order_Model.objects.filter(userID_id=userID, UID=old_uid).values('payType',
-                                                                                                 'uid_bucket_id')
+            # 查询转出设备正在使用的套餐
+            old_using_uid_bucket = UID_Bucket.objects.filter(uid=old_uid, endTime__gte=nowTime).values("id").order_by('addTime')
+            if not old_using_uid_bucket.exists():
+                return response.json(10013)
+
+            # 首次转移,根据订单判断是否为购买的套餐
+            old_orderModel_qs = Order_Model.objects.filter(userID_id=userID, UID=old_uid)
             if old_orderModel_qs.exists():
             if old_orderModel_qs.exists():
-                # 首次转移,只能转移购买的的套餐(支付类型为体验套餐和激活码不能转移,即pay_type不能为10,11)
+                old_UIDbucket_id = old_using_uid_bucket[0]['id']
+                # 只能转移购买的的套餐(支付类型为体验套餐和激活码不能转移,即pay_type不能为10,11)
+                old_orderModel_qs = Order_Model.objects.filter(uid_bucket_id=old_UIDbucket_id).values('payType')
                 payType = old_orderModel_qs[0]['payType']
                 payType = old_orderModel_qs[0]['payType']
-                old_uid_bucket_id = old_orderModel_qs[0]['uid_bucket_id']
                 if payType == 10 or payType == 11:
                 if payType == 10 or payType == 11:
                     return response.json(10012)
                     return response.json(10012)
-                old_UIDbucket_qs = UID_Bucket.objects.filter(id=old_uid_bucket_id, endTime__gt=nowTime)
-            else:
-                # 多次转移,根据vod_uid_bucket的uid和endTime查找是否有未过期套餐
-                old_UIDbucket_qs = UID_Bucket.objects.filter(uid=old_uid, endTime__gt=nowTime)
-            if not old_UIDbucket_qs.exists():
-                return response.json(10013)
 
 
-            # 确认转入设备套餐是否开通过套餐和套餐已过期
-            new_orderModel_qs = Order_Model.objects.filter(userID_id=userID, UID=new_uid).values('uid_bucket_id')
-            if new_orderModel_qs.exists():
-                new_uid_bucket_id = new_orderModel_qs[0]['uid_bucket_id']
-                new_UIDbucket_qs = UID_Bucket.objects.filter(id=new_uid_bucket_id, endTime__gt=nowTime).values(
-                    'endTime')
-                if new_UIDbucket_qs.exists():
-                    return response.json(10014)
+            # # 查询转入设备正在使用的套餐
+            new_using_uid_bucket = UID_Bucket.objects.filter(uid=new_uid, endTime__gte=nowTime)
+            if new_using_uid_bucket.exists():
+                return response.json(10014)
 
 
             with transaction.atomic():
             with transaction.atomic():
                 # vod_uid_bucket表更新uid
                 # vod_uid_bucket表更新uid
-                old_UIDbucket_qs.update(uid=new_uid)
+                old_using_uid_bucket[0].update(uid=new_uid)
                 # 删除转出设备stscrd表关联数据
                 # 删除转出设备stscrd表关联数据
-                stscrdModel_qs = StsCrdModel.objects.filter(uid=old_uid)
-                if stscrdModel_qs:
-                    stscrdModel_qs.delete()
-
+                StsCrdModel.objects.filter(uid=old_uid).delete()
         except Exception as e:
         except Exception as e:
             # print(e)
             # print(e)
             return response.json(500, repr(e))
             return response.json(500, repr(e))

+ 18 - 169
Controller/CloudVod.py

@@ -1116,179 +1116,28 @@ class CloudVodView(View):
 
 
     def do_pay_status(self, request_dict, userID, response):
     def do_pay_status(self, request_dict, userID, response):
         orderID = request_dict.get('orderID', None)
         orderID = request_dict.get('orderID', None)
-        om_qs = Order_Model.objects.filter(userID_id=userID, orderID=orderID).values('status')
-        response = HttpResponse()
-        success_pay_content = '''
-
-            <!-- saved from url=(0040)http://test.dvema.com/cloudstorage/payOK -->
-            <html>
-                <head>
-                    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-                    <!--浏览器不缓存-->
-                    <meta http-equiv="Pragma" content="no-cache">
-                    <meta http-equiv="Cache-Control" content="no-cache">
-                    <meta http-equiv="Expires" content="0">
-                    <!--utf-8-->
-                
-                    <!-- viewport的<meta>标签,这个标签可以修改在大部分的移动设备上面的显示,为了确保适当的绘制和触屏缩放。-->
-                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-                    <link rel="shortcut icon" href="https://test.dvema.com/web/images/favicon.ico" type="image/x-icon" charset="utf-8">  
-                    <title>支付成功</title>
-                    <style>
-                            .title_head{
-                                    height: 50px;
-                                    border-radius: 5px;
-                                    background-color: #c3c6c7; 
-                                    text-align: center;
-                                    line-height: 50px;
-                            }
-                            .content{
-                                    text-align: center;
-                                    margin-top: 50px;
-                                    font-size: 15px;
-                                    color:#0000008A;
-                                    
-                            }
-                            .content_img{
-                                    margin-bottom:15px;
-                                    width: 60px; 
-                                    height: 60px;
-                            }
-                            .bottom{
-                                     margin-bottom: 10px; 
-                                     margin-top: 250px; 
-                                     color : white;
-                            }
-                            .bottom_div{
-                                    border: 1px solid #68c9c5; 
-                                    line-height: 38px; 
-                                    text-align: center; 
-                                    width: 100px; 
-                                    height: 38px;
-                                    border-radius: 30px;
-                                    background-color:#68c9c5; 
-                            }
-                            
-                            .bottom_div:hover{
-                                    background-color: #dde4e2;
-                            }
-                    </style>
-                </head>
-                <body style="" rlt="1" inmaintabuse="true">
-                    <div class="content">
-                        <p>
-                            <img src="https://test.dvema.com/web/images/success.png" class="content_img">
-                            <br>
-                            支付成功
-                        </p>
-                    </div>
-                    <center class="bottom">
-                        <div class="bottom_div" onclick="payOKButton()"> 
-                         完成
-                        </div>
-                    </center>
-                    <script src="./支付成功_files/hm.js.下载"></script><script>             // 点击付款成功按钮
-                        function payOKButton() {
-                            // 复杂数据
-                            console.log('success')
-                            window.location.href="https://www.baidu.com?page=closePage"  
-                        }
-                    </script>
-                    <div id="qds" style="display:none;"></div>
-                </body>
-            </html>
-                        '''
-        falil_pay_content = '''
-            <!DOCTYPE html>
-            <!-- saved from url=(0301)http://test.dvema.com/cloudVod/orderStatus?orderID=20201222084512037485&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsYW5nIjoiY24iLCJleHAiOjE2MTEyMTg2OTEsInVzZXIiOiIxMzgwMDEzODAwMDE1NzU4ODgzNTAwNjEyMDgiLCJ1c2VySUQiOiIxMzgwMDEzODAwMDE1NzU4ODgzNTAwNjEyMDgifQ.Jjcana0NjrHzAv6CusQrVANK3Bn0gnDrc_CKDZruIgk -->
-            <html>
-                <head>
-                    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-                    <!--浏览器不缓存-->
-                    <meta http-equiv="Pragma" content="no-cache">
-                    <meta http-equiv="Cache-Control" content="no-cache">
-                    <meta http-equiv="Expires" content="0">
-                    <!--utf-8-->
-                    
-                    <!-- viewport的<meta>标签,这个标签可以修改在大部分的移动设备上面的显示,为了确保适当的绘制和触屏缩放。-->
-                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-                    <link rel="shortcut icon" href="https://test.dvema.com/web/images/favicon.ico" type="image/x-icon" charset="utf-8">  
-                    <title>支付失败</title>
-                    <style>
-                        .title_head{
-                            height: 50px;
-                            border-radius: 5px;
-                            background-color: #c3c6c7; 
-                            text-align: center;
-                            line-height: 50px;
-                        }
-                        .content{
-                            text-align: center;
-                            margin-top: 50px;
-                            font-size: 20px;
-                            color : #0000008A;
-                        }
-                        .content_img{
-                            margin-bottom:15px;
-                            width: 60px; 
-                            height: 60px;
-                        }
-                        .bottom{
-                             margin-bottom: 10px; 
-                             margin-top: 250px; 
-                             color : #fff;
-                        }
-                        .bottom_div{
-                            border: 1px solid #68c9c5; 
-                            line-height: 38px; 
-                            text-align: center; 
-                            width: 100px; 
-                            height: 38px;
-                            border-radius: 30px;
-                            background-color:rgba(199, 0, 11, 1); 
-                        }
-            
-                        .bottom_div:hover{
-                            background-color: #dde4e2;
-                        }
-                    </style>
-                </head>
-                <body>
-                    <div class="content">
-                        <p>
-                            <img src="https://test.dvema.com/web/images/fail.png" class="content_img">
-                            <br>
-                            支付失败
-                        </p>
-                    </div>
-                    <center class="bottom">
-                        <div class="bottom_div" onclick="payOKButton()"> 
-                         完成
-                        </div>
-                    </center>
-                    <script> 	    // 点击付款成功按钮
-                    function payOKButton() {
-                        // 复杂数据
-                        console.log('success')
-                        //window.webkit.messageHandlers.jsCallOC.postMessage({"status": 0});
-                        window.location.href="https://www.baidu.com?page=closePage"  
-                    }
-                    </script>
-                 </body>
-            </html>
-                        '''
+        om_qs = Order_Model.objects.filter(orderID=orderID).values('status')
+        # response = HttpResponse()
+        # success_pay_content = '''
+        #                 '''
+        # falil_pay_content = '''
+        #
+        #                 '''
+
+        status = 0
+        url = "{SERVER_DOMAIN}web/paid2/fail.html".format(SERVER_DOMAIN=SERVER_DOMAIN)
+
         if om_qs.exists():
         if om_qs.exists():
-            if om_qs[0]['status'] == 1:
-                response.content = success_pay_content
-                return response
+            status = om_qs[0]['status']
+            if status == 1:
+
+                url = "{SERVER_DOMAIN}web/paid2/success.html".format(SERVER_DOMAIN=SERVER_DOMAIN)
             else:
             else:
 
 
-                response.content = falil_pay_content
-                return response
+                url = "{SERVER_DOMAIN}web/paid2/fail.html".format(SERVER_DOMAIN=SERVER_DOMAIN)
 
 
-        else:
-            response.content = falil_pay_content
-            return response
+        res = {'status': status, 'url': url}
+        return response.json(0, res)
 
 
     def query_alipay_order(self, request_dict, userID, response):
     def query_alipay_order(self, request_dict, userID, response):
         out_trade_no = request_dict.get('out_trade_no', None)
         out_trade_no = request_dict.get('out_trade_no', None)

+ 8 - 8
Controller/EquipmentManager.py

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

+ 1 - 1
Controller/EquipmentManagerV2.py

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

+ 9 - 9
Controller/EquipmentManagerV3.py

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

+ 19 - 1
Controller/EquipmentOTA.py

@@ -7,7 +7,8 @@ from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 from django.views.generic.base import View
 
 
 from Ansjer.config import BASE_DIR, SERVER_DOMAIN
 from Ansjer.config import BASE_DIR, SERVER_DOMAIN
-from Model.models import Equipment_Version
+from Model.models import Equipment_Version, EquipmentVersionLimitModel, CountryIPModel
+from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Object.UrlTokenObject import UrlTokenObject
 from Object.UrlTokenObject import UrlTokenObject
@@ -284,6 +285,23 @@ class EquipmentVersionView(View):
             # 判断大小
             # 判断大小
             if ov > eqs[0].softwareVersion:
             if ov > eqs[0].softwareVersion:
                 return response.json(0, {'softwareVersion': ov})
                 return response.json(0, {'softwareVersion': ov})
+        equipment = eqs[0]
+        redisObject = RedisObject()
+        key = 'limit_{eid}'.format(eid=equipment.eid)
+
+        evl_qs = redisObject.get_data(key=key)
+        if evl_qs:
+            evl_qs = json.loads(evl_qs)
+        else:
+            evl_qs = EquipmentVersionLimitModel.objects.filter(equipment_version_id=equipment.eid, status=1).values()
+            if evl_qs.exists():
+                redisObject.set_data(key=key, val=json.dumps(list(evl_qs.values())), expire=600)
+        if evl_qs and len(evl_qs) > 0:
+            evl = evl_qs[0]
+            if evl['type'] == 1:  # uid限制
+                uids = json.loads(evl['content'])
+                if not uids.__contains__(uid):
+                    return response.json(902)
         file_path = eqs[0].filePath
         file_path = eqs[0].filePath
         if file_path.find('static/Upgrade/') != -1:
         if file_path.find('static/Upgrade/') != -1:
             path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
             path = file_path.replace('static/Upgrade/', '').replace('\\', '/')

+ 7 - 4
Controller/MealManage.py

@@ -85,6 +85,7 @@ class MealManage(View):
         discount_price = request_dict.get('discount_price', None)
         discount_price = request_dict.get('discount_price', None)
         discount_content = request_dict.get('discount_content', None)
         discount_content = request_dict.get('discount_content', None)
         expire = request_dict.get('expire', None)
         expire = request_dict.get('expire', None)
+        symbol = request_dict.get('symbol', None)
 
 
         if not title or not id or not price or not day or not content:
         if not title or not id or not price or not day or not content:
             return response.json(444, 'title,id,price,content,day,bucketID')
             return response.json(444, 'title,id,price,content,day,bucketID')
@@ -97,7 +98,7 @@ class MealManage(View):
                 return response.json(10, '已存在')
                 return response.json(10, '已存在')
             store_meal = Store_Meal(id=id, title=title, price=price, content=content, day=day, bucket_id=bucketID,
             store_meal = Store_Meal(id=id, title=title, price=price, content=content, day=day, bucket_id=bucketID,
                                     currency=currency, virtual_price=virtual_price, is_discounts=is_discounts,
                                     currency=currency, virtual_price=virtual_price, is_discounts=is_discounts,
-                                    discount_price=discount_price, discount_content=discount_content, expire=expire)
+                                    discount_price=discount_price, discount_content=discount_content, expire=expire, symbol=symbol)
             store_meal.save()
             store_meal.save()
             paytype = paytype.split(',')
             paytype = paytype.split(',')
             if len(paytype) > 0:
             if len(paytype) > 0:
@@ -128,7 +129,7 @@ class MealManage(View):
             return response.json(444)
             return response.json(444)
         qs = Store_Meal.objects.values("id", "title", "price", "content", "day", "add_time", "update_time", "currency"
         qs = Store_Meal.objects.values("id", "title", "price", "content", "day", "add_time", "update_time", "currency"
                                        , "bucket_id", "bucket__bucket", "bucket__area", "commodity_type", "commodity_code",
                                        , "bucket_id", "bucket__bucket", "bucket__area", "commodity_type", "commodity_code",
-                                       "bucket__storeDay", "virtual_price", "is_discounts", "discount_price", "discount_content", "expire")
+                                       "bucket__storeDay", "virtual_price", "is_discounts", "discount_price", "discount_content", "expire", "symbol")
         res = {}
         res = {}
         if qs.exists():
         if qs.exists():
             ql = list(qs)
             ql = list(qs)
@@ -163,6 +164,7 @@ class MealManage(View):
         discount_price = request_dict.get('discount_price', None)
         discount_price = request_dict.get('discount_price', None)
         discount_content = request_dict.get('discount_content', None)
         discount_content = request_dict.get('discount_content', None)
         expire = request_dict.get('expire', None)
         expire = request_dict.get('expire', None)
+        symbol = request_dict.get('symbol', None)
         type = request_dict.get('type', None)
         type = request_dict.get('type', None)
         if not id or not title or not price or not content or not day or not type:
         if not id or not title or not price or not content or not day or not type:
             return response.json(444, 'id, title, price, content, day,type')
             return response.json(444, 'id, title, price, content, day,type')
@@ -183,6 +185,7 @@ class MealManage(View):
             store_meal.discount_price = discount_price
             store_meal.discount_price = discount_price
             store_meal.discount_content = discount_content
             store_meal.discount_content = discount_content
             store_meal.expire = expire
             store_meal.expire = expire
+            store_meal.symbol = symbol
             store_meal.day = day
             store_meal.day = day
             if bucketID:
             if bucketID:
                 store_meal.bucket_id = bucketID
                 store_meal.bucket_id = bucketID
@@ -279,12 +282,12 @@ class MealView(View):
             qs = Store_Meal.objects.filter(bucket__mold=1). \
             qs = Store_Meal.objects.filter(bucket__mold=1). \
                 values("id", "title", "content", "price", "day", "currency",
                 values("id", "title", "content", "price", "day", "currency",
                        "bucket__storeDay", "bucket__bucket", "bucket__area",
                        "bucket__storeDay", "bucket__bucket", "bucket__area",
-                       "type")
+                       "type", "symbol")
         else:
         else:
             qs = Store_Meal.objects.all(). \
             qs = Store_Meal.objects.all(). \
                 values("id", "title", "content", "price", "day", "currency",
                 values("id", "title", "content", "price", "day", "currency",
                        "bucket__storeDay", "bucket__bucket", "bucket__area",
                        "bucket__storeDay", "bucket__bucket", "bucket__area",
-                       "type")
+                       "type", "symbol")
         if qs.exists():
         if qs.exists():
             ql = list(qs)
             ql = list(qs)
             from operator import itemgetter
             from operator import itemgetter

+ 2 - 0
Model/models.py

@@ -228,6 +228,8 @@ class Device_Info(models.Model):
                                   help_text=u'是否为共享获取的设备', default=False)
                                   help_text=u'是否为共享获取的设备', default=False)
     primaryUserID = models.CharField(blank=True, verbose_name='主用户id', max_length=32, default='')
     primaryUserID = models.CharField(blank=True, verbose_name='主用户id', max_length=32, default='')
     primaryMaster = models.CharField(max_length=64, verbose_name=u'主用户名', 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)
     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)
     update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
 
 

+ 2 - 0
Object/ResponseObject.py

@@ -82,6 +82,7 @@ class ResponseObject(object):
             10012: 'Experience packages cannot be transferred',
             10012: 'Experience packages cannot be transferred',
             10013: 'Original equipment package has expired and 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',
             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',
             10030: 'No purchase of cloud storage',
             10031: 'The cloud storage has expired',
             10031: 'The cloud storage has expired',
             10032: 'The switched cloud storage package ID cannot be the same as the one in use',
             10032: 'The switched cloud storage package ID cannot be the same as the one in use',
@@ -165,6 +166,7 @@ class ResponseObject(object):
             10012: '体验套餐无法转移',
             10012: '体验套餐无法转移',
             10013: '原设备套餐已过期,无法转移',
             10013: '原设备套餐已过期,无法转移',
             10014: '接受转移设备套餐未过期,无法转移',
             10014: '接受转移设备套餐未过期,无法转移',
+            10015: '分享的设备无法转移',
             10030: '未购买云存',
             10030: '未购买云存',
             10031: '云存已过期',
             10031: '云存已过期',
             10032: '切换的云存套餐ID不能与正在使用中的相同',
             10032: '切换的云存套餐ID不能与正在使用中的相同',