lang 4 жил өмнө
parent
commit
e1550fe29e

+ 16 - 16
Controller/CloudStorage.py

@@ -917,7 +917,7 @@ class CloudStorageView(View):
             return response.json(0, '套餐已删除')
         # ##
         ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
-            values("id", "bucket__storeDay", "bucket__region", "endTime")
+            values("id", "bucket__storeDay", "bucket__region", "endTime").order_by('endTime')
         expire = smqs[0]['expire']
         if order_list[0]['isSelectDiscounts'] == 1:
             expire = smqs[0]['expire'] * 2
@@ -952,37 +952,37 @@ class CloudStorageView(View):
             orderID = request_dict.get('out_trade_no',None)
             order_qs = Order_Model.objects.filter(orderID=orderID)
             nowTime = int(time.time())
-            order_list = order_qs.values("UID", "channel", "commodity_code")
+            order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts")
             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")
+            rank = order_list[0]['rank']
+            smqs = Store_Meal.objects.filter(id=rank). \
+                values("day", "bucket_id", "bucket__storeDay", "expire")
             bucketId = smqs[0]['bucket_id']
             if not smqs.exists():
                 return HttpResponse(WechatPayObject.xml_to_dict({'return_code':'FAIL', 'return_msg':'套餐不存在'}))
-            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")
+            ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
+                values("id", "bucket__storeDay", "bucket__region", "endTime").order_by('endTime')
+            expire = smqs[0]['expire']
+            if order_list[0]['isSelectDiscounts'] == 1:
+                expire = smqs[0]['expire'] * 2
             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 \
+                endTime = CommonService.calcMonthLater(expire,ubq['endTime'])
+                ub_cqs = UID_Bucket.objects.filter(id=ubq['id']).update \
                     (uid=UID, channel=channel, bucket_id=bucketId,
-                     endTime=new_starTime + addTime)
-                uid_bucket_id = ub_cqs.id
+                     endTime=endTime)
+                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)
                 uid_bucket_id = ub_cqs.id
             order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
-
             return HttpResponse(WechatPayObject.xml_to_dict({'return_code':'SUCCESS', 'return_msg':'OK'}))
-
         return HttpResponse(WechatPayObject.xml_to_dict({'return_code':'FAIL', 'return_msg':'参数格式校验错误'}))
 
     def do_create_pay_order(self, request_dict, userID, response):

+ 30 - 39
Controller/CloudVod.py

@@ -128,7 +128,7 @@ class CloudVodView(View):
             elif operation == 'aliPayCreateOrder':
                 return self.do_pay_by_ali(request_dict, userID, response)
             elif operation == 'orderStatus':
-                return self.do_pay_status(request_dict, userID)
+                return self.do_pay_status(request_dict, userID, response)
             elif operation == 'createPayOrder':
                 return self.do_create_pay_order(request_dict, userID, response)
             # elif operation == 'queryAlipayOrder':
@@ -1114,7 +1114,7 @@ class CloudVodView(View):
                 {'name': vod['time'], 'sign_url': vod_play_url, 'thumb': thumb, 'sec': vod['sec'], 'id': vod['id']})
         return response.json(0, vod_play_list)
 
-    def do_pay_status(self, request_dict, userID):
+    def do_pay_status(self, request_dict, userID, response):
         orderID = request_dict.get('orderID', None)
         om_qs = Order_Model.objects.filter(userID_id=userID, orderID=orderID).values('status')
         response = HttpResponse()
@@ -1188,7 +1188,9 @@ class CloudVodView(View):
                     function payOKButton() {
                         // 复杂数据
                         console.log('success')
-                        window.webkit.messageHandlers.jsCallOC.postMessage({"status": 1});
+                        //window.webkit.messageHandlers.jsCallOC.postMessage({"status": 1});
+                        window.location.href="https://www.baidu.com?page=closePage";  
+
                     }
                 	</script>
                 </body> 
@@ -1263,7 +1265,8 @@ class CloudVodView(View):
             function payOKButton() {
                 // 复杂数据
                 console.log('success')
-                window.webkit.messageHandlers.jsCallOC.postMessage({"status": 0});
+                //window.webkit.messageHandlers.jsCallOC.postMessage({"status": 0});
+                window.location.href="https://www.baidu.com?page=closePage"  
             }
         	</script>
         </body> 
@@ -1290,49 +1293,37 @@ class CloudVodView(View):
                     order_qs = Order_Model.objects.filter(orderID=orderID, status=0)
                     if order_qs.exists():
                         nowTime = int(time.time())
-                        order_list = order_qs.values("UID", "rank__id", "channel")
-                        rank_id = order_list[0]['rank__id']
-                        print(rank_id)
+                        order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts")
                         UID = order_list[0]['UID']
                         channel = order_list[0]['channel']
-                        order_qs.update(status=1, updTime=nowTime)
-
-                        smqs = Store_Meal.objects.filter(id=rank_id).values("day", "bucket_id", "bucket__storeDay")
+                        rank = order_list[0]['rank']
+                        smqs = Store_Meal.objects.filter(id=rank). \
+                            values("day", "bucket_id", "bucket__storeDay", "expire")
                         bucketId = smqs[0]['bucket_id']
                         if not smqs.exists():
                             response.content = falil_pay_content
                             return response
-                        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())
+                            # ##
+                        ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
+                            values("id", "bucket__storeDay", "bucket__region", "endTime").order_by('endTime')
+                        expire = smqs[0]['expire']
+                        if order_list[0]['isSelectDiscounts'] == 1:
+                            expire = smqs[0]['expire'] * 2
                         if ubqs.exists():
-                            # 判断是否过期了
-                            if nowTime > ubqs[0]['endTime']:
-                                ubqs.update(endTime=nowTime + addTime)
-                            else:
-                                # 同一个bucket续费
-                                if bucketId == ubqs[0]['bucket_id']:
-                                    ubqs.update(endTime=ubqs[0]['endTime'] + addTime)
-                                else:
-                                    if ubqs[0]['bucket__storeDay'] > smqs[0]['bucket__storeDay']:
-                                        response.content = falil_pay_content
-                                        return response
-                                    else:
-                                        # 升级
-                                        origin_storeDay = int(ubqs[0]['bucket__storeDay'])
-                                        upgrade_storeDay = int(smqs[0]['bucket__storeDay'])
-                                        ctcTime = ubqs[0]['endTime'] - nowTime
-                                        multiple = math.ceil(upgrade_storeDay / origin_storeDay)
-                                        ubqs.update(endTime=ctcTime / multiple + addTime + ubqs[0]['endTime'],
-                                                    bucket_id=bucketId)
-                                        # 付款成功把oss token删除
-                                        OssCrdModel.objects.filter(uid=UID, channel=channel).delete()
-                        # 新增模式
+                            ubqs_count = ubqs.count()
+                            print(ubqs_count)
+                            ubq = ubqs[ubqs_count - 1]
+                            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)
+                            uid_bucket_id = ubq['id']
                         else:
-                            print('create')
-                            UID_Bucket.objects.create(uid=UID, channel=channel,
-                                                      bucket_id=bucketId, endTime=nowTime + addTime)
+                            endTime = CommonService.calcMonthLater(expire)
+                            ub_cqs = UID_Bucket.objects.create \
+                                (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime)
+                            uid_bucket_id = ub_cqs.id
+                        order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
 
                         response.content = success_pay_content
                         return response