Преглед изворни кода

修改云存套餐列表,下单接口

lang пре 4 година
родитељ
комит
3d2b85dd84
2 измењених фајлова са 24 додато и 13 уклоњено
  1. 19 11
      Controller/CloudStorage.py
  2. 5 2
      Model/models.py

+ 19 - 11
Controller/CloudStorage.py

@@ -198,10 +198,10 @@ class CloudStorageView(View):
         else:
         else:
             qs = qs.filter(pay_type='10')
             qs = qs.filter(pay_type='10')
 
 
-        qs = qs.values("id", "title", "content", "price",
-                       "day", "currency", "bucket__storeDay",
-                       "bucket__bucket", "bucket__area",
-                      "commodity_code", "commodity_type", "is_discounts", "virtual_price", "expire")
+        qs = qs.values("id", "title", "content", "price","day", "currency", "bucket__storeDay",
+                       "bucket__bucket", "bucket__area","commodity_code",
+                       "commodity_type", "is_discounts", "virtual_price", "expire",
+                       "discount_price", "discount_content")
 
 
         if qs.exists():
         if qs.exists():
             ql = list(qs)
             ql = list(qs)
@@ -892,7 +892,7 @@ class CloudStorageView(View):
         print("Payment execute successfully")
         print("Payment execute successfully")
         order_qs = Order_Model.objects.filter(orderID=orderID)
         order_qs = Order_Model.objects.filter(orderID=orderID)
         nowTime = int(time.time())
         nowTime = int(time.time())
-        order_list = order_qs.values("UID", "channel", "commodity_code", "rank")
+        order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts")
         UID = order_list[0]['UID']
         UID = order_list[0]['UID']
         channel = order_list[0]['channel']
         channel = order_list[0]['channel']
         rank = order_list[0]['rank']
         rank = order_list[0]['rank']
@@ -905,17 +905,20 @@ class CloudStorageView(View):
         # ##
         # ##
         ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
         ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
             values("bucket__storeDay", "bucket__region", "endTime")
             values("bucket__storeDay", "bucket__region", "endTime")
+        expire = smqs[0]['expire']
+        if order_list[0]['isSelectDiscounts'] == 1:
+            expire = smqs[0]['expire'] * 2
         if ubqs.exists():
         if ubqs.exists():
             ubqs_count = ubqs.count()
             ubqs_count = ubqs.count()
             print(ubqs_count)
             print(ubqs_count)
             ubq = ubqs[ubqs_count - 1]
             ubq = ubqs[ubqs_count - 1]
-            endTime = CommonService.calcMonthLater(smqs[0]['expire'],ubq['endTime'])
+            endTime = CommonService.calcMonthLater(expire,ubq['endTime'])
             ub_cqs = ubqs.update \
             ub_cqs = ubqs.update \
                 (uid=UID, channel=channel, bucket_id=bucketId,
                 (uid=UID, channel=channel, bucket_id=bucketId,
                  endTime=endTime)
                  endTime=endTime)
             uid_bucket_id = ub_cqs.id
             uid_bucket_id = ub_cqs.id
         else:
         else:
-            endTime = CommonService.calcMonthLater(smqs[0]['expire'])
+            endTime = CommonService.calcMonthLater(expire)
             ub_cqs = UID_Bucket.objects.create \
             ub_cqs = UID_Bucket.objects.create \
                 (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime)
                 (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime)
             uid_bucket_id = ub_cqs.id
             uid_bucket_id = ub_cqs.id
@@ -974,6 +977,7 @@ class CloudStorageView(View):
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         pay_type = int(request_dict.get('pay_type', None))
         pay_type = int(request_dict.get('pay_type', None))
         rank = request_dict.get('rank', None)
         rank = request_dict.get('rank', None)
+        is_select_discount = request_dict.get('is_select_discount', None)
 
 
         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(13, '参数有误.')
             return response.json(13, '参数有误.')
@@ -981,11 +985,15 @@ class CloudStorageView(View):
         if not dv_qs.exists():
         if not dv_qs.exists():
             return response.json(12)
             return response.json(12)
         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', 'commodity_type', 'title', 'content', 'expire', 'commodity_code')
+            values('currency', 'price', 'content', 'day',
+                   'commodity_type', 'title', 'content',
+                   'expire', 'commodity_code', 'discount_price')
         if not smqs.exists():
         if not smqs.exists():
             return response.json(10, '套餐不存在')
             return response.json(10, '套餐不存在')
         currency = smqs[0]['currency']
         currency = smqs[0]['currency']
         price = smqs[0]['price']
         price = smqs[0]['price']
+        if is_select_discount == 1:
+            price = float(smqs[0]['price']) + float(smqs[0]['discount_price'])
         content = smqs[0]['content']
         content = smqs[0]['content']
         day = smqs[0]['day']
         day = smqs[0]['day']
         commodity_code = smqs[0]['commodity_code']
         commodity_code = smqs[0]['commodity_code']
@@ -1027,7 +1035,7 @@ class CloudStorageView(View):
                     Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
                     Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
                                                desc=content, payType=pay_type, payTime=nowTime,
                                                desc=content, payType=pay_type, payTime=nowTime,
                                                price=price, currency=currency, addTime=nowTime, updTime=nowTime,
                                                price=price, currency=currency, addTime=nowTime, updTime=nowTime,
-                                               pay_url=approval_url,
+                                               pay_url=approval_url, isSelectDiscounts=is_select_discount,
                                                commodity_code=commodity_code, commodity_type=commodity_type,rank_id=rank)
                                                commodity_code=commodity_code, commodity_type=commodity_type,rank_id=rank)
                     return response.json(0, {"redirectUrl": approval_url, "orderID": orderID})
                     return response.json(0, {"redirectUrl": approval_url, "orderID": orderID})
             return response.json(10, 'generate_order_false')
             return response.json(10, 'generate_order_false')
@@ -1057,7 +1065,7 @@ class CloudStorageView(View):
                     Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
                     Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
                                                desc=content, payType=pay_type, payTime=nowTime,
                                                desc=content, payType=pay_type, payTime=nowTime,
                                                price=price, currency=currency, addTime=nowTime, updTime=nowTime,
                                                price=price, currency=currency, addTime=nowTime, updTime=nowTime,
-                                               pay_url=redirectUrl,
+                                               pay_url=redirectUrl, isSelectDiscounts=is_select_discount,
                                                commodity_code=commodity_code, commodity_type=commodity_type,rank_id=rank)
                                                commodity_code=commodity_code, commodity_type=commodity_type,rank_id=rank)
                     return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
                     return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
                                                           'result': {"redirectUrl": redirectUrl, "orderID": orderID},
                                                           'result': {"redirectUrl": redirectUrl, "orderID": orderID},
@@ -1084,7 +1092,7 @@ class CloudStorageView(View):
             Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
             Order_Model.objects.create(orderID=orderID, UID=uid, channel=channel, userID_id=userID,
                                        desc=content, payType=pay_type, payTime=nowTime,
                                        desc=content, payType=pay_type, payTime=nowTime,
                                        price=price, currency=currency, addTime=nowTime, updTime=nowTime,
                                        price=price, currency=currency, addTime=nowTime, updTime=nowTime,
-                                       pay_url=notify_url,
+                                       pay_url=notify_url, isSelectDiscounts=is_select_discount,
                                        commodity_code=commodity_code, commodity_type=commodity_type,rank_id=rank)
                                        commodity_code=commodity_code, commodity_type=commodity_type,rank_id=rank)
             return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
             return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
                                                   'result': response,
                                                   'result': response,

+ 5 - 2
Model/models.py

@@ -417,8 +417,10 @@ class Store_Meal(models.Model):
     currency = models.CharField(blank=True, default='USD', max_length=32, verbose_name=u'货币')
     currency = models.CharField(blank=True, default='USD', max_length=32, verbose_name=u'货币')
     price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
     price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
     virtual_price = models.CharField(blank=True, max_length=32, verbose_name=u'虚拟价格')
     virtual_price = models.CharField(blank=True, max_length=32, verbose_name=u'虚拟价格')
-    is_discounts = models.SmallIntegerField(default=0, verbose_name=u'是否优惠 [0=否,1是]')   # 0否;1是
-    day = models.IntegerField(default=0, blank=True, verbose_name=u'云存保存天数')   # 7,30,180,360
+    is_discounts = models.SmallIntegerField(default=0, verbose_name=u'该套餐是否有优惠 [0=否,1是]')   # 0没有;1有
+    discount_price = models.CharField(blank=True, max_length=32, verbose_name=u'第二年优惠价格')
+    discount_content = models.CharField(blank=True, max_length=320, verbose_name=u'优惠信息描述')
+    day = models.IntegerField(default=0, blank=True, verbose_name=u'云存录像保存天数(循环)')   # 7,30,180,360
     expire = models.IntegerField(default=0, blank=True, verbose_name=u'有效期') #单位月
     expire = models.IntegerField(default=0, blank=True, verbose_name=u'有效期') #单位月
     content = models.TextField(blank=True, null=True, verbose_name=u'描述')
     content = models.TextField(blank=True, null=True, verbose_name=u'描述')
     add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
     add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
@@ -542,6 +544,7 @@ class Order_Model(models.Model):
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
     # endTime = models.IntegerField(verbose_name='结束时间', default=0)
     # endTime = models.IntegerField(verbose_name='结束时间', default=0)
+    isSelectDiscounts = models.SmallIntegerField(default=0, verbose_name=u'用户是否选择了第二年优惠 [0=否,1是]')
     status = models.SmallIntegerField(default=0, verbose_name='付款状态')  # 0:待支付,1:成功,2:取消,3:已退款
     status = models.SmallIntegerField(default=0, verbose_name='付款状态')  # 0:待支付,1:成功,2:取消,3:已退款
     payType = models.SmallIntegerField(default=0, verbose_name='付款类型0:paypal,1:alipay')
     payType = models.SmallIntegerField(default=0, verbose_name='付款类型0:paypal,1:alipay')
     payTime = models.IntegerField(verbose_name='支付成功时间', default=0)
     payTime = models.IntegerField(verbose_name='支付成功时间', default=0)