소스 검색

国内不支持AI功能

peng 2 년 전
부모
커밋
b89f2fdf3e
3개의 변경된 파일30개의 추가작업 그리고 23개의 파일을 삭제
  1. 16 8
      Controller/CloudStorage.py
  2. 5 3
      Controller/CloudVod.py
  3. 9 12
      Controller/Cron/CronTaskController.py

+ 16 - 8
Controller/CloudStorage.py

@@ -775,7 +775,7 @@ class CloudStorageView(View):
                     urls = 'https://api.zositeche.com/'
                 uid_tk_url = '{}cloudstorage/getsignsts?uidToken={}'.format(urls, uid_obj.token)
                 store_hls_url = '{}cloudstorage/storeplaylist?uidToken={}'.format(urls, uid_obj.token)
-                if uid_set_qs[0].is_ai != 2:
+                if uid_set_qs[0].is_ai != 2 and CONFIG_INFO != CONFIG_CN:
                     if not all([appBundleId, app_type, token_val, uid, m_code, ai_status]):
                         return response.json(444, 'appBundleId, app_type, token_val, uid,m_code, ai_status')
 
@@ -932,7 +932,7 @@ class CloudStorageView(View):
                 if not store_qs.exists():
                     return response.json(173)
                 bucket_id = store_qs[0]['bucket_id']
-                uiu_bucket_qs = UID_Bucket.objects.filter(uid=uid).values("id", "bucket_id", "bucket__storeDay",
+                uid_bucket_qs = UID_Bucket.objects.filter(uid=uid).values("id", "bucket_id", "bucket__storeDay",
                                                                           "bucket__region", "endTime", "use_status")
                 expire = store_qs[0]['expire']
                 # icloud_store_meal_id = store_qs[0]['icloud_store_meal_id']
@@ -949,15 +949,17 @@ class CloudStorageView(View):
                 if promotion.exists():
                     promotion_rule_id = promotion[0]['id']
                     expire = expire * 2
+                unuse_meal_flag = False  # 是否关联未使用套餐
                 with transaction.atomic():
-                    if uiu_bucket_qs.exists():
-                        uid_bucket = uiu_bucket_qs.first()
+                    if uid_bucket_qs.exists():
+                        uid_bucket = uid_bucket_qs.first()
                         if uid_bucket['use_status'] == 1 and uid_bucket['bucket_id'] == bucket_id:  # 套餐使用中并且相同套餐叠加过期时间
                             end_time = CommonService.calcMonthLater(expire, uid_bucket['endTime'])
                             UID_Bucket.objects.filter(id=uid_bucket['id']).update(uid=uid, channel=channel,
                                                                                   bucket_id=bucket_id, endTime=end_time,
                                                                                   updateTime=now_time)
                         else:  # 已过期或者不相同的套餐加入未使用的关联套餐表
+                            unuse_meal_flag = True
                             unused_uid_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=bucket_id)
                             nums = 2 if order_list[0]['isSelectDiscounts'] == 1 else 1
                             if promotion.exists():
@@ -993,7 +995,7 @@ class CloudStorageView(View):
                                     promotion_rule_id=promotion_rule_id)
                     date_time = time.strftime("%Y-%m-%d", time.localtime())
                     # 开通AI服务
-                    if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN:
+                    if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN and not unuse_meal_flag:
                         ai_service_qs = AiService.objects.filter(uid=uid, channel=channel)
                         if ai_service_qs.exists():  # 有正在使用的套餐,套餐结束时间保存为套餐有效期
                             ai_service_qs.update(endTime=end_time, use_status=1, updTime=now_time)
@@ -1139,6 +1141,7 @@ class CloudStorageView(View):
             if promotion_rule_qs.exists():
                 promotion_rule_id = promotion_rule_qs[0]['id']
                 expire = expire * 2
+            unuse_meal_flag = False  # 是否关联未使用套餐
             with transaction.atomic():
                 if uid_bucket_qs.exists():
                     uid_bucket = uid_bucket_qs.first()
@@ -1148,6 +1151,7 @@ class CloudStorageView(View):
                                                                               endTime=end_time,
                                                                               bucket_id=bucket_id, updateTime=now_time)
                     else:  # 已过期或者不相同的套餐加入未使用的关联套餐表
+                        unuse_meal_flag = True
                         unused_uid_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=bucket_id)
                         nums = 2 if order_list[0]['isSelectDiscounts'] == 1 else 1
                         if promotion_rule_qs.exists():
@@ -1182,7 +1186,7 @@ class CloudStorageView(View):
                                 promotion_rule_id=promotion_rule_id)
                 date_time = time.strftime("%Y-%m-%d", time.localtime())
                 # 开通AI服务
-                if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN:
+                if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN and not unuse_meal_flag:
                     ai_service_qs = AiService.objects.filter(uid=uid, channel=channel)
                     if ai_service_qs.exists():  # 有正在使用的套餐,套餐结束时间保存为套餐有效期
                         ai_service_qs.update(endTime=end_time, use_status=1, updTime=now_time)
@@ -1310,6 +1314,7 @@ class CloudStorageView(View):
                 if promotion_rule_qs.exists():
                     promotion_rule_id = promotion_rule_qs[0]['id']
                     expire = expire * 2
+                unuse_meal_flag = False  # 是否关联未使用套餐
                 with transaction.atomic():
                     if uid_bucket_qs.exists():
                         uid_bucket = uid_bucket_qs.first()
@@ -1319,6 +1324,7 @@ class CloudStorageView(View):
                                                                                   bucket_id=bucket_id,
                                                                                   endTime=end_time, updateTime=now_time)
                         else:  # 已过期或者不相同的套餐加入未使用的关联套餐表
+                            unuse_meal_flag = True
                             unused_uid_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=bucket_id)
                             nums = 2 if order_list[0]['isSelectDiscounts'] == 1 else 1
                             if promotion_rule_qs.exists():
@@ -1354,7 +1360,7 @@ class CloudStorageView(View):
                                     promotion_rule_id=promotion_rule_id)
                     date_time = time.strftime("%Y-%m-%d", time.localtime())
                     # 开通AI服务
-                    if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN:
+                    if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN and not unuse_meal_flag:
                         ai_service_qs = AiService.objects.filter(uid=uid, channel=channel)
                         if ai_service_qs.exists():  # 有正在使用的套餐,套餐结束时间保存为套餐有效期
                             ai_service_qs.update(endTime=end_time, use_status=1, updTime=now_time)
@@ -1700,6 +1706,7 @@ class CloudStorageView(View):
         uid_bucket_qs = UID_Bucket.objects.filter(uid=uid).values("id", "bucket_id", "bucket__storeDay",
                                                                   "bucket__region", "endTime", "use_status")
         expire = store_qs[0]['expire']
+        unuse_meal_flag = False  # 是否关联未使用套餐
         # icloud_store_meal_id = store_qs[0]['icloud_store_meal_id']
         # icloud_meal_qs = ICloudStoreMeal.objects.filter(id=icloud_store_meal_id).values('size')
         # if not icloud_meal_qs.exists():
@@ -1715,6 +1722,7 @@ class CloudStorageView(View):
                                                                               bucket_id=bucket_id,
                                                                               endTime=end_time, updateTime=now_time)
                     else:  # 已过期或者不相同的套餐加入未使用的关联套餐表
+                        unuse_meal_flag = True
                         unused_uid_qs = Unused_Uid_Meal.objects.filter(uid=uid, bucket_id=bucket_id)
                         nums = 1
                         if unused_uid_qs.exists():
@@ -1731,7 +1739,7 @@ class CloudStorageView(View):
                                                            use_status=1)
                     uid_bucket_id = uid_bucket.id
                 #  开通AI体验
-                if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN:
+                if store_qs[0]['is_ai'] and CONFIG_INFO != CONFIG_CN and not unuse_meal_flag:
                     order_type = 1
                     ai_service_qs = AiService.objects.filter(uid=uid, channel=channel)
                     if ai_service_qs.exists():

+ 5 - 3
Controller/CloudVod.py

@@ -13,7 +13,8 @@ from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 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
+from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD, \
+    CONFIG_INFO, CONFIG_CN
 from Model.models import Device_Info, Order_Model, Store_Meal, OssCrdModel, UID_Bucket, StsCrdModel, \
     VodBucketModel, UidSetModel, AiService
 from Object.AliPayObject import AliPayObject
@@ -96,7 +97,7 @@ class CloudVodView(View):
                 'endTime': item['endTime'],
                 'uid': item['uid'],
             }
-            if uid_set_qs[0]['is_ai'] != 2:
+            if uid_set_qs[0]['is_ai'] != 2 and CONFIG_INFO != CONFIG_CN:
                 ai_server_qs = AiService.objects.filter(uid=uid, use_status=1).values('detect_status', 'detect_group')
                 if not ai_server_qs.exists():
                     return response.json(12)
@@ -580,7 +581,8 @@ class CloudVodView(View):
             thumb = bucket.sign_url('GET', ts, 3600,
                                     params={'x-oss-process': 'video/snapshot,t_1000,m_fast,w_300'})
             vod_play_list.append(
-                {'name': vod['start_time'], 'sign_url': vod_play_url, 'thumb': thumb, 'sec': vod['sec'], 'id': vod['id']})
+                {'name': vod['start_time'], 'sign_url': vod_play_url, 'thumb': thumb, 'sec': vod['sec'],
+                 'id': vod['id']})
         vod_play_list = sorted(vod_play_list, key=lambda item: -item['name'])
         return response.json(0, vod_play_list)
 

+ 9 - 12
Controller/Cron/CronTaskController.py

@@ -317,8 +317,7 @@ class CronUpdateDataView(View):
             expired_uid_bucket.update(use_status=2)
         AiService.objects.filter(Q(endTime__lte=now_time), ~Q(use_status=2)).update(use_status=2)
         # 监控有未使用套餐则自动生效
-        expired_uid_buckets = \
-            UID_Bucket.objects.filter(endTime__lte=now_time, has_unused=1).values("id", "uid")[0:1000]
+        expired_uid_buckets = UID_Bucket.objects.filter(endTime__lte=now_time, has_unused=1).values("id", "uid")[0:1000]
         for expired_uid_bucket in expired_uid_buckets:
             unuseds = Unused_Uid_Meal.objects.filter(
                 uid=expired_uid_bucket['uid']).values(
@@ -328,30 +327,28 @@ class CronUpdateDataView(View):
                 "addTime",
                 "expire",
                 "num",
-                "bucket_id").order_by('addTime')[0:1]
+                "bucket_id").order_by('addTime')
             if not unuseds.exists():
                 continue
             unused = unuseds[0]
             try:
                 with transaction.atomic():
-                    count_unused = Unused_Uid_Meal.objects.filter(
-                        uid=expired_uid_bucket['uid']).count()
+                    count_unused = Unused_Uid_Meal.objects.filter(uid=expired_uid_bucket['uid']).count()
                     has_unused = 1 if count_unused > 1 else 0
-                    endTime = CommonService.calcMonthLater(
-                        unused['expire'] * unused['num'])
+                    end_time = CommonService.calcMonthLater(unused['expire'] * unused['num'])
                     UID_Bucket.objects.filter(
                         uid=expired_uid_bucket['uid']).update(
                         channel=unused['channel'],
-                        endTime=endTime,
+                        endTime=end_time,
                         bucket_id=unused['bucket_id'],
                         updateTime=now_time,
                         use_status=1,
                         has_unused=has_unused)
                     Unused_Uid_Meal.objects.filter(id=unused['id']).delete()
-                    StsCrdModel.objects.filter(
-                        uid=expired_uid_bucket['uid']).delete()  # 删除sts记录
-                    AiService.objects.filter(uid=expired_uid_bucket['uid'], channel=unused['channel']).update(
-                        use_status=1, endTime=endTime, updTime=now_time)
+                    StsCrdModel.objects.filter(uid=expired_uid_bucket['uid']).delete()  # 删除sts记录
+                    AiService.objects.filter(uid=expired_uid_bucket['uid']).update(use_status=1, endTime=end_time,
+                                                                                   updTime=now_time,
+                                                                                   channel=unused['channel'])
             except Exception as e:
                 print(repr(e))
                 continue