Bladeren bron

云存体验套餐

chenshibin 4 jaren geleden
bovenliggende
commit
158c610445
3 gewijzigde bestanden met toevoegingen van 147 en 131 verwijderingen
  1. 1 1
      Ansjer/local_settings.py
  2. 145 129
      Controller/CloudStorage.py
  3. 1 1
      Model/models.py

+ 1 - 1
Ansjer/local_settings.py

@@ -73,7 +73,7 @@ TEMPLATES = [
 WSGI_APPLICATION = 'Ansjer.local_wsgi.application'
 
 # 服务器类型
-DATABASE_DATA = 'AnsjerLocal'
+DATABASE_DATA = 'ansjerlocal'
 SERVER_HOST = '127.0.0.1'
 DATABASES_USER = 'root'
 DATABASES_PASS = '123456'

+ 145 - 129
Controller/CloudStorage.py

@@ -27,7 +27,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, Device_User, ExperienceContextModel
+from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, ExperienceContextModel
 from Object.AliPayObject import AliPayObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -35,6 +35,7 @@ from Object.UidTokenObject import UidTokenObject
 from Service.CommonService import CommonService
 from Object.m3u8generate import PlaylistGenerator
 from Object.WechatPayObject import WechatPayObject
+from django.db.models import Q
 
 SERVER_DOMAIN = 'http://test.dvema.com/'
 
@@ -105,8 +106,8 @@ class CloudStorageView(View):
                 return self.do_commodity_list(request_dict, userID, response)
             elif operation == 'queryorder':
                 return self.do_query_order(request_dict, userID, response)
-            elif operation == 'do_experience_order':
-                return self.do_query_order(request_dict, userID, response)
+            elif operation == 'experienceorder':
+                return self.do_experience_order(request_dict, userID, response)
             else:
                 return response.json(414)
 
@@ -175,7 +176,7 @@ class CloudStorageView(View):
         mold = request_dict.get('mold', None)
         uid = request_dict.get('uid', None)
         qs = Store_Meal.objects
-        eq = ExperienceContextModel.objects.filter(uid=uid,experience_type=1).values();
+        eq = ExperienceContextModel.objects.filter(uid=uid,experience_type=0).values('id')
         # userqs = Device_User.objects.filter(userID=userID).values('is_experience')
 
         if mold:
@@ -184,7 +185,7 @@ class CloudStorageView(View):
             qs = qs.all()
 
         if eq:
-            qs.exclude(price=0.00)
+            qs=qs.filter(~Q(id='12'))
 
         qs = qs.values("id", "title", "content", "price",
                        "day", "currency", "bucket__storeDay",
@@ -1029,6 +1030,142 @@ class CloudStorageView(View):
                                                   'error_code': 0})
             # 调起支付接口
 
+        # 生成体验订单
+
+    def do_experience_order(self, request_dict, userID, response):
+        uid = request_dict.get('uid', None)
+        channel = request_dict.get('channel', None)
+        commodity_code = request_dict.get('commodity_code', None)
+        pay_type = int(request_dict.get('pay_type', None))
+        rank = request_dict.get('rank', None)
+
+        if uid == None or channel == None or commodity_code == None or pay_type == None or rank == None:
+            return response.json(13, '参数有误.')
+        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, 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()
+        if pay_type == 0:
+            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,
+                                       endTime=(nowTime + int(day) * 3600 * 24), pay_url="体验版",
+                                       commodity_code=commodity_code, commodity_type=commodity_type,
+                                       rank_id=rank)
+
+            order_qs = Order_Model.objects.filter(orderID=orderID)
+            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']
+            if not smqs.exists():
+                return response.json(0, '套餐已删除')
+            addTime = int(smqs[0]["day"]) * 24 * 3600
+            # ##
+            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()
+                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
+            else:
+                ub_cqs = UID_Bucket.objects.create \
+                    (uid=UID, channel=channel, bucket_id=bucketId, endTime=nowTime + addTime)
+                uid_bucket_id = ub_cqs.id
+            order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
+
+            # return response.json(0)
+
+            ExperienceContextModel.objects.create(
+                experience_type = 0,
+                uid = uid,
+                do_time = nowTime
+
+            )
+
+            red_url = "{SERVER_DOMAIN}cloudstorage/payOK".format(SERVER_DOMAIN=SERVER_DOMAIN)
+            return HttpResponseRedirect(red_url)
+        else:
+            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,
+                                       endTime=(nowTime + int(day) * 3600 * 24), pay_url="体验版",
+                                       commodity_code=commodity_code, commodity_type=commodity_type,
+                                       rank_id=rank)
+            order_qs = Order_Model.objects.filter(orderID=orderID, status=0)
+
+            if not order_qs.exists():
+                return response.json(404)
+
+            nowTime = int(time.time())
+            order_list = order_qs.values("UID", "commodity_code", "channel")
+            UID = order_list[0]['UID']
+            channel = order_list[0]['channel']
+            commodity_code = order_list[0]['commodity_code']
+            order_qs.update(status=1, updTime=nowTime)
+            smqs = Store_Meal.objects.filter(commodity_code=commodity_code). \
+                values("day", "bucket_id", "bucket__storeDay")
+            bucketId = smqs[0]['bucket_id']
+            if not smqs.exists():
+                return response.json(0, '套餐已删除')
+            addTime = int(smqs[0]["day"]) * 24 * 3600
+            ubqs = UID_Bucket.objects.filter(uid=UID, channel=channel). \
+                values("bucket_id", "endTime", "bucket__storeDay")
+            nowTime = int(time.time())
+            if ubqs.exists():
+                ubqs_count = ubqs.count()
+                ubq = ubqs[ubqs_count - 1, ubqs_count]
+                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
+            else:
+                ub_cqs = UID_Bucket.objects.create(uid=UID, channel=channel, bucket_id=bucketId,
+                                                   endTime=nowTime + addTime)
+                uid_bucket_id = ub_cqs.id
+            order_qs.update \
+                (payTime=nowTime, status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
+
+            ExperienceContextModel.objects.create(
+                experience_type=0,
+                uid=uid,
+                do_time=nowTime
+
+            )
+
+            red_url = "{SERVER_DOMAIN}cloudstorage/payOK".format(SERVER_DOMAIN=SERVER_DOMAIN)
+            return HttpResponseRedirect(red_url)
+            # return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
+            #                                       'result': {"redirectUrl": "体验版", "orderID": orderID},
+            #                                       'error_code': 0})
+
+
 def deleteVodHls(request):
     UID = 'DSXG7481JVA2JM94111A'
     channel = 1
@@ -1042,9 +1179,9 @@ def deleteVodHls(request):
         print(new_starTime)
         exit()
 
-        ub_cqs = UID_Bucket.objects.create(uid=UID, channel=channel, bucket_id=bucketId,
-                                           endTime=new_starTime + addTime)
-        uid_bucket_id = ub_cqs.id
+        # ub_cqs = UID_Bucket.objects.create(uid=UID, channel=channel, bucket_id=bucketId,
+        #                                    endTime=new_starTime + addTime)
+        # uid_bucket_id = ub_cqs.id
     exit()
 
     response = ResponseObject()
@@ -1056,124 +1193,3 @@ def deleteVodHls(request):
         print(id_list)
         VodHlsModel.objects.filter(id__in=list(id_list)).delete()
     return response.json(0)
-
-
-
-
-# 生成体验订单
-def do_experience_order(self, request_dict, userID, response):
-    uid = request_dict.get('uid', None)
-    channel = request_dict.get('channel', None)
-    commodity_code = request_dict.get('commodity_code', None)
-    pay_type = int(request_dict.get('pay_type', None))
-    rank = request_dict.get('rank', None)
-
-    if uid == None or channel == None or commodity_code == None or pay_type == None or rank == None:
-        return response.json(13, '参数有误.')
-    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, 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()
-    if pay_type == 0:
-        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,
-                                   endTime=(nowTime + int(day) * 3600 * 24), pay_url="体验版",
-                                   commodity_code=commodity_code, commodity_type=commodity_type,
-                                   rank_id=rank)
-
-        order_qs = Order_Model.objects.filter(orderID=orderID)
-        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']
-        if not smqs.exists():
-            return response.json(0, '套餐已删除')
-        addTime = int(smqs[0]["day"]) * 24 * 3600
-        # ##
-        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()
-            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
-        else:
-            ub_cqs = UID_Bucket.objects.create \
-                (uid=UID, channel=channel, bucket_id=bucketId, endTime=nowTime + addTime)
-            uid_bucket_id = ub_cqs.id
-        order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
-
-        # return response.json(0)
-        red_url = "{SERVER_DOMAIN}cloudstorage/payOK".format(SERVER_DOMAIN=SERVER_DOMAIN)
-        return HttpResponseRedirect(red_url)
-    else:
-        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,
-                                   endTime=(nowTime + int(day) * 3600 * 24), pay_url="体验版",
-                                   commodity_code=commodity_code, commodity_type=commodity_type,
-                                   rank_id=rank)
-        order_qs = Order_Model.objects.filter(orderID=orderID, status=0)
-
-        if not order_qs.exists():
-            return response.json(404)
-
-        nowTime = int(time.time())
-        order_list = order_qs.values("UID", "commodity_code", "channel")
-        UID = order_list[0]['UID']
-        channel = order_list[0]['channel']
-        commodity_code = order_list[0]['commodity_code']
-        order_qs.update(status=1, updTime=nowTime)
-        smqs = Store_Meal.objects.filter(commodity_code=commodity_code). \
-            values("day", "bucket_id", "bucket__storeDay")
-        bucketId = smqs[0]['bucket_id']
-        if not smqs.exists():
-            return response.json(0, '套餐已删除')
-        addTime = int(smqs[0]["day"]) * 24 * 3600
-        ubqs = UID_Bucket.objects.filter(uid=UID, channel=channel). \
-            values("bucket_id", "endTime", "bucket__storeDay")
-        nowTime = int(time.time())
-        if ubqs.exists():
-            ubqs_count = ubqs.count()
-            ubq = ubqs[ubqs_count - 1, ubqs_count]
-            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
-        else:
-            ub_cqs = UID_Bucket.objects.create(uid=UID, channel=channel, bucket_id=bucketId,
-                                               endTime=nowTime + addTime)
-            uid_bucket_id = ub_cqs.id
-        order_qs.update \
-            (payTime=nowTime, status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
-        red_url = "{SERVER_DOMAIN}cloudstorage/payOK".format(SERVER_DOMAIN=SERVER_DOMAIN)
-        return HttpResponseRedirect(red_url)
-        # return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
-        #                                       'result': {"redirectUrl": "体验版", "orderID": orderID},
-        #                                       'error_code': 0})

+ 1 - 1
Model/models.py

@@ -1073,7 +1073,7 @@ class ExperienceContextModel(models.Model):
     do_time = models.IntegerField(default=0, verbose_name='激活时间')
     # is_experience = models.SmallIntegerField(default=0, verbose_name=u'是否云存体验用户')  # 0:不是体验用户,1:是体验用户
 
-    class Mete:
+    class Meta:
         db_table = 'experience_context'
         verbose_name = '设备体验表'
         verbose_name_plural = verbose_name