Procházet zdrojové kódy

回滚AI合并到云存代码

peng před 2 roky
rodič
revize
946c6cf89b

+ 0 - 3
AdminController/DeviceManagementController.py

@@ -271,9 +271,7 @@ class DeviceManagement(View):
                 # 删除和更新设备云存相关数据
                 UID_Bucket.objects.filter(uid=uid).delete()
                 Unused_Uid_Meal.objects.filter(uid=uid).delete()
-                AiService.objects.filter(uid=uid).delete()
                 Order_Model.objects.filter(UID=uid, order_type=0).delete()
-                Order_Model.objects.filter(UID=uid, order_type=1).delete()
                 StsCrdModel.objects.filter(uid=uid).delete()
                 VodHlsModel.objects.filter(uid=uid).delete()
                 # 删除vod_hls分表数据
@@ -581,7 +579,6 @@ class DeviceManagement(View):
                 UID_Bucket.objects.filter(uid=uid).delete()
                 Unused_Uid_Meal.objects.filter(uid=uid).delete()
                 Order_Model.objects.filter(UID=uid, order_type=0).delete()
-                Order_Model.objects.filter(UID=uid, order_type=1).delete()
                 StsCrdModel.objects.filter(uid=uid).delete()
                 VodHlsModel.objects.filter(uid=uid).delete()
                 # 删除vod_hls分表数据

+ 8 - 9
AdminController/ServeManagementController.py

@@ -761,20 +761,20 @@ class serveManagement(View):
                     'country': country
                 }
                 #  订单显示(或不显示)停用/退款功能
-                if order['order_type'] == 0 or order['order_type'] == 1:  # 云存
+                if order['order_type'] == 0:  # 云存
                     uid_bucket = UID_Bucket.objects.filter(uid=order['UID']).values('use_status')
                     user_status = uid_bucket[0]['use_status'] if uid_bucket.exists() else ''
                     if user_status != '':
                         data['user_status'] = user_status
                     else:
                         data['user_status'] = 2
-                # elif order['order_type'] == 1:  # ai
-                #     ai_service_qs = AiService.objects.filter(
-                #         Q(orders_id=order['orderID']) & ~Q(use_status=2))
-                #     if ai_service_qs.exists():
-                #         data['user_status'] = 1
-                #     else:
-                #         data['user_status'] = 2
+                elif order['order_type'] == 1:  # ai
+                    ai_service_qs = AiService.objects.filter(
+                        Q(orders_id=order['orderID']) & ~Q(use_status=2))
+                    if ai_service_qs.exists():
+                        data['user_status'] = 1
+                    else:
+                        data['user_status'] = 2
                 elif order['order_type'] == 2:  # 联通4G
                     unicom_combor_order_qs = UnicomComboOrderInfo.objects.filter(
                         Q(order_id=order['orderID']) & ~Q(status=2))
@@ -982,7 +982,6 @@ class serveManagement(View):
                 eq.delete()
                 Order_Model.objects.filter(uid_bucket_id=bid).delete()
                 ubq.delete()
-                AiService.objects.filter(uid=ubq[0].uid).delete()
                 return response.json(0)
             else:
                 return response.json(10007)

+ 34 - 2
AdminController/dataSystemManagement/HomeDataController.py

@@ -130,7 +130,7 @@ class HomeDataView(View):
                 usd_total = round(usd_total + temp_total.get('USD', 0), 2)
             order_total = {'cnyTotal': cny_total, 'usdTotal': usd_total}
             # 昨日云存订单销售额
-            vod_order_total = order_qs.filter(service_type__in=[0, 1])
+            vod_order_total = order_qs.filter(service_type=0)
             vod_cny_total = 0
             vod_usd_total = 0
             for item in vod_order_total:
@@ -138,6 +138,15 @@ class HomeDataView(View):
                 vod_cny_total = round(vod_cny_total + temp_total.get('CNY', 0), 2)
                 vod_usd_total = round(vod_usd_total + temp_total.get('USD', 0), 2)
             vod_order_total = {'cnyTotal': vod_cny_total, 'usdTotal': vod_usd_total}
+            # 昨日AI订单销售额
+            ai_order_total = order_qs.filter(service_type=1)
+            ai_cny_total = 0
+            ai_usd_total = 0
+            for item in ai_order_total:
+                temp_total = eval(item['total'])
+                ai_cny_total = round(ai_cny_total + temp_total.get('CNY', 0), 2)
+                ai_usd_total = round(ai_usd_total + temp_total.get('USD', 0), 2)
+            ai_order_total = {'cnyTotal': ai_cny_total, 'usdTotal': ai_usd_total}
             # 昨日云盘订单销售额
             icloud_order_total = order_qs.filter(service_type=4)
             icloud_cny_total = 0
@@ -166,7 +175,7 @@ class HomeDataView(View):
                 usd_all_total = round(usd_all_total + temp_total.get('USD', 0), 2)
             order_all_total = {'cnyTotal': cny_all_total, 'usdTotal': usd_all_total}
             # 所有云存订单销售额
-            vod_order_all_total = order_all_qs.filter(service_type__in=[0, 1])
+            vod_order_all_total = order_all_qs.filter(service_type=0)
             vod_cny_all_total = 0
             vod_usd_all_total = 0
             for item in vod_order_all_total:
@@ -174,6 +183,15 @@ class HomeDataView(View):
                 vod_cny_all_total = round(vod_cny_all_total + temp_total.get('CNY', 0), 2)
                 vod_usd_all_total = round(vod_usd_all_total + temp_total.get('USD', 0), 2)
             vod_order_all_total = {'cnyTotal': vod_cny_all_total, 'usdTotal': vod_usd_all_total}
+            # 所有AI订单销售额
+            ai_order_all_total = order_all_qs.filter(service_type=1)
+            ai_cny_all_total = 0
+            ai_usd_all_total = 0
+            for item in ai_order_all_total:
+                temp_total = eval(item['total'])
+                ai_cny_all_total = round(ai_cny_all_total + temp_total.get('CNY', 0), 2)
+                ai_usd_all_total = round(ai_usd_all_total + temp_total.get('USD', 0), 2)
+            ai_order_all_total = {'cnyTotal': ai_cny_all_total, 'usdTotal': ai_usd_all_total}
             # 所有云盘订单销售额
             icloud_order_all_total = order_all_qs.filter(service_type=4)
             icloud_cny_all_total = 0
@@ -201,10 +219,12 @@ class HomeDataView(View):
                 'deviceAllCount': device_all_count,
                 'orderTotal': order_total,
                 'vodOrderTotal': vod_order_total,
+                'aiOrderTotal': ai_order_total,
                 'icloudOrderTotal': icloud_order_total,
                 'unicomOrderTotal': unicom_order_total,
                 'orderAllTotal': order_all_total,
                 'vodOrderAllTotal': vod_order_all_total,
+                'aiOrderAllTotal': ai_order_all_total,
                 'icloudOrderAllTotal': icloud_order_all_total,
                 'unicomOrderAllTotal': unicom_order_all_total,
                 'userIncreaseRegion': user_increase_region_list,
@@ -278,10 +298,12 @@ class HomeDataView(View):
             device_all_count = 0
             order_total = {'cnyTotal': 0, 'usdTotal': 0}
             vod_order_total = {'cnyTotal': 0, 'usdTotal': 0}
+            ai_order_total = {'cnyTotal': 0, 'usdTotal': 0}
             icloud_order_total = {'cnyTotal': 0, 'usdTotal': 0}
             unicom_order_total = {'cnyTotal': 0, 'usdTotal': 0}
             order_all_total = {'cnyTotal': 0, 'usdTotal': 0}
             vod_order_all_total = {'cnyTotal': 0, 'usdTotal': 0}
+            ai_order_all_total = {'cnyTotal': 0, 'usdTotal': 0}
             icloud_order_all_total = {'cnyTotal': 0, 'usdTotal': 0}
             unicom_order_all_total = {'cnyTotal': 0, 'usdTotal': 0}
             user_increase_temp_list = []
@@ -309,6 +331,10 @@ class HomeDataView(View):
                         vod_order_total['cnyTotal'] + result['result']['vodOrderTotal']['cnyTotal'], 2)
                     vod_order_total['usdTotal'] = round(
                         vod_order_total['usdTotal'] + result['result']['vodOrderTotal']['usdTotal'], 2)
+                    ai_order_total['cnyTotal'] = round(
+                        ai_order_total['cnyTotal'] + result['result']['aiOrderTotal']['cnyTotal'], 2)
+                    ai_order_total['usdTotal'] = round(
+                        ai_order_total['usdTotal'] + result['result']['aiOrderTotal']['usdTotal'], 2)
                     icloud_order_total['cnyTotal'] = round(
                         icloud_order_total['cnyTotal'] + result['result']['icloudOrderTotal']['cnyTotal'], 2)
                     icloud_order_total['usdTotal'] = round(
@@ -325,6 +351,10 @@ class HomeDataView(View):
                         vod_order_all_total['cnyTotal'] + result['result']['vodOrderAllTotal']['cnyTotal'], 2)
                     vod_order_all_total['usdTotal'] = round(
                         vod_order_all_total['usdTotal'] + result['result']['vodOrderAllTotal']['usdTotal'], 2)
+                    ai_order_all_total['cnyTotal'] = round(
+                        ai_order_all_total['cnyTotal'] + result['result']['aiOrderAllTotal']['cnyTotal'], 2)
+                    ai_order_all_total['usdTotal'] = round(
+                        ai_order_all_total['usdTotal'] + result['result']['aiOrderAllTotal']['usdTotal'], 2)
                     icloud_order_all_total['cnyTotal'] = round(
                         icloud_order_all_total['cnyTotal'] + result['result']['icloudOrderAllTotal']['cnyTotal'], 2)
                     icloud_order_all_total['usdTotal'] = round(
@@ -394,10 +424,12 @@ class HomeDataView(View):
                 'deviceAllCount': device_all_count,
                 'orderTotal': order_total,
                 'vodOrderTotal': vod_order_total,
+                'aiOrderTotal': ai_order_total,
                 'icloudOrderTotal': icloud_order_total,
                 'unicomOrderTotal': unicom_order_total,
                 'orderAllTotal': order_all_total,
                 'vodOrderAllTotal': vod_order_all_total,
+                'aiOrderAllTotal': ai_order_all_total,
                 'icloudOrderAllTotal': icloud_order_all_total,
                 'unicomOrderAllTotal': unicom_order_all_total,
                 'userIncreaseRegion': user_increase_list,

+ 42 - 126
Controller/CloudStorage.py

@@ -191,10 +191,7 @@ class CloudStorageView(View):
         device_info_qs = Device_Info.objects.filter(Q(UID=uid), Q(Type__lte=4) | Q(Type=10001))
         if device_info_qs.exists():
             return response.json(0)
-        uid_set_qs = UidSetModel.objects.filter(uid=uid).values('is_ai')
-        if not uid_set_qs.exists():
-            return response.json(173)
-        is_ai = uid_set_qs[0]['is_ai']
+
         store_qs = Store_Meal.objects.filter(Q(lang__lang=lang), Q(is_show=0), ~Q(pay_type='11'))  # 过滤激活码、隐藏套餐
         experience_context_qs = ExperienceContextModel.objects.filter(uid=uid, experience_type=0)
 
@@ -206,15 +203,11 @@ class CloudStorageView(View):
             store_qs = store_qs.filter(~Q(pay_type='10'))
         else:
             store_qs = store_qs.filter(pay_type='10')
-        if CONFIG_INFO != CONFIG_CN and is_ai != 2:  # 返回支持AI的套餐
-            store_qs = store_qs.filter(is_ai=1)
-        else:  # 返回不支持AI的套餐
-            store_qs = store_qs.filter(is_ai=0)
 
         store_qs = store_qs.annotate(title=F('lang__title'), content=F('lang__content'),
                                      discount_content=F('lang__discount_content'))
         store_qs = store_qs.order_by('sort').values("id", "title", "content", "price", "day", "currency",
-                                                    "bucket__storeDay", 'is_beta', 'is_ai',
+                                                    "bucket__storeDay",
                                                     "bucket__bucket", "bucket__area", "commodity_code",
                                                     "commodity_type", "is_discounts", "virtual_price", "expire",
                                                     "discount_price", "discount_content", "symbol", "cycle_config_id")
@@ -929,7 +922,7 @@ class CloudStorageView(View):
                 rank = order_list[0]['rank']
 
                 store_qs = Store_Meal.objects.filter(id=rank).values("day", "bucket_id", "bucket__storeDay", "expire",
-                                                                     'is_ai', 'icloud_store_meal_id')
+                                                                     'icloud_store_meal_id')
                 if not store_qs.exists():
                     return response.json(173)
                 bucket_id = store_qs[0]['bucket_id']
@@ -950,7 +943,6 @@ class CloudStorageView(View):
                 if promotion.exists():
                     promotion_rule_id = promotion[0]['id']
                     expire = expire * 2
-                unuse_meal_flag = False  # 是否关联未使用套餐
                 with transaction.atomic():
                     if uid_bucket_qs.exists():
                         uid_bucket = uid_bucket_qs.first()
@@ -960,7 +952,6 @@ 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.exists():
@@ -995,22 +986,6 @@ class CloudStorageView(View):
                     order_qs.update(status=1, updTime=now_time, uid_bucket_id=uid_bucket_id,
                                     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 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)
-                        else:
-                            ai_service_dict = {
-                                'uid': uid,
-                                'channel': channel,
-                                'detect_status': 1,
-                                'addTime': now_time,
-                                'updTime': now_time,
-                                'use_status': 1,
-                                'endTime': end_time
-                            }
-                            AiService.objects.create(**ai_service_dict)
                     # 开通云盘服务
                     # icloud_use_qs = IcloudUseDetails.objects.filter(user_id=userid).values('id')
                     # if not icloud_use_qs.exists():
@@ -1121,7 +1096,7 @@ class CloudStorageView(View):
             channel = order_list[0]['channel']
             rank = order_list[0]['rank']
             store_qs = Store_Meal.objects.filter(id=rank).values("day", "bucket_id", "bucket__storeDay", "expire",
-                                                                 'is_ai', 'icloud_store_meal_id')
+                                                                 'icloud_store_meal_id')
             if not store_qs.exists():
                 return response.json(173)
             bucket_id = store_qs[0]['bucket_id']
@@ -1142,7 +1117,6 @@ 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()
@@ -1152,7 +1126,6 @@ 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():
@@ -1186,22 +1159,6 @@ class CloudStorageView(View):
                 order_qs.update(status=1, updTime=now_time, uid_bucket_id=uid_bucket_id,
                                 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 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)
-                    else:
-                        ai_service_dict = {
-                            'uid': uid,
-                            'channel': channel,
-                            'detect_status': 1,
-                            'addTime': now_time,
-                            'updTime': now_time,
-                            'use_status': 1,
-                            'endTime': end_time
-                        }
-                        AiService.objects.create(**ai_service_dict)
                 # 开通云盘服务
                 # icloud_use_qs = IcloudUseDetails.objects.filter(user_id=userid).values('id')
                 # if not icloud_use_qs.exists():
@@ -1294,7 +1251,7 @@ class CloudStorageView(View):
                 channel = order_list[0]['channel']
                 rank = order_list[0]['rank']
                 store_qs = Store_Meal.objects.filter(id=rank).values("day", "bucket_id", "bucket__storeDay", "expire",
-                                                                     'is_ai', 'icloud_store_meal_id')
+                                                                     'icloud_store_meal_id')
                 if not store_qs.exists():
                     return HttpResponse(pay.xml_to_dict({'return_code': 'FAIL', 'return_msg': '套餐不存在'}))
                 bucket_id = store_qs[0]['bucket_id']
@@ -1315,7 +1272,6 @@ 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()
@@ -1325,7 +1281,6 @@ 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():
@@ -1360,22 +1315,6 @@ class CloudStorageView(View):
                     order_qs.update(status=1, updTime=now_time, uid_bucket_id=uid_bucket_id,
                                     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 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)
-                        else:
-                            ai_service_dict = {
-                                'uid': uid,
-                                'channel': channel,
-                                'detect_status': 1,
-                                'addTime': now_time,
-                                'updTime': now_time,
-                                'use_status': 1,
-                                'endTime': end_time
-                            }
-                            AiService.objects.create(**ai_service_dict)
                     # 开通云盘服务
                     # icloud_use_qs = IcloudUseDetails.objects.filter(user_id=userid).values('id')
                     # if not icloud_use_qs.exists():
@@ -1462,7 +1401,7 @@ class CloudStorageView(View):
         now_time = int(time.time())
         store_qs = Store_Meal.objects.filter(id=rank, pay_type=pay_type, lang__lang=lang, is_show=0). \
             values('currency', 'price', 'lang__content', 'day', 'commodity_type', 'lang__title', 'expire',
-                   'commodity_code', 'discount_price', 'bucket__mold', 'cycle_config_id', 'is_ai')
+                   'commodity_code', 'discount_price', 'bucket__mold', 'cycle_config_id')
         if not store_qs.exists():
             return response.json(173)
         store_meal_qs = Store_Meal.objects.filter(id=rank, lang__lang='cn', is_show=0).values('lang__title',
@@ -1515,17 +1454,15 @@ class CloudStorageView(View):
                 sub_info = Paypal.subscriptions(store_info=store_qs[0], lang=lang, orderID=order_id, price=price)
                 if not sub_info:
                     return response.json(10048)
-                order_qs = Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
-                                                      desc=content, payType=pay_type, payTime=now_time,
-                                                      price=price, currency=currency, addTime=now_time,
-                                                      updTime=now_time,
-                                                      pay_url=sub_info['url'], isSelectDiscounts=is_select_discount,
-                                                      commodity_code=commodity_code, commodity_type=commodity_type,
-                                                      rank_id=rank, plan_id=sub_info['plan_id'], coupon_id=coupon_id,
-                                                      ai_rank_id=1,
-                                                      store_meal_name=store_meal_name)
-                if store_qs[0]['is_ai'] == 1:
-                    order_qs.order_type = 1
+                Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
+                                           desc=content, payType=pay_type, payTime=now_time,
+                                           price=price, currency=currency, addTime=now_time,
+                                           updTime=now_time,
+                                           pay_url=sub_info['url'], isSelectDiscounts=is_select_discount,
+                                           commodity_code=commodity_code, commodity_type=commodity_type,
+                                           rank_id=rank, plan_id=sub_info['plan_id'], coupon_id=coupon_id,
+                                           ai_rank_id=1,
+                                           store_meal_name=store_meal_name)
                 return response.json(0, {"redirectUrl": sub_info['url'], "orderID": order_id})
             # 正常扣款
             call_clc_url = "{}web/paid2/fail.html".format(SERVER_DOMAIN_SSL)
@@ -1552,17 +1489,15 @@ class CloudStorageView(View):
             for link in payment.links:
                 if link.rel == "approval_url":
                     approval_url = str(link.href)
-                    order_qs = Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
-                                                          desc=content, payType=pay_type, payTime=now_time,
-                                                          price=price, currency=currency, addTime=now_time,
-                                                          updTime=now_time,
-                                                          pay_url=approval_url, isSelectDiscounts=is_select_discount,
-                                                          commodity_code=commodity_code, commodity_type=commodity_type,
-                                                          rank_id=rank, paymentID=payment_id, coupon_id=coupon_id,
-                                                          ai_rank_id=1,
-                                                          store_meal_name=store_meal_name)
-                    if store_qs[0]['is_ai'] == 1:
-                        order_qs.order_type = 1
+                    Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
+                                               desc=content, payType=pay_type, payTime=now_time,
+                                               price=price, currency=currency, addTime=now_time,
+                                               updTime=now_time,
+                                               pay_url=approval_url, isSelectDiscounts=is_select_discount,
+                                               commodity_code=commodity_code, commodity_type=commodity_type,
+                                               rank_id=rank, paymentID=payment_id, coupon_id=coupon_id,
+                                               ai_rank_id=1,
+                                               store_meal_name=store_meal_name)
                     return response.json(0, {"redirectUrl": approval_url, "orderID": order_id})
             return response.json(10, 'generate_order_false')
         elif pay_type == 2:
@@ -1586,16 +1521,15 @@ class CloudStorageView(View):
             else:
                 if order_string:
                     redirect_url = ali_pay_obj.alipay_prefix + order_string
-                    order_qs = Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
-                                                          desc=content, payType=pay_type, payTime=now_time,
-                                                          price=price, currency=currency, addTime=now_time,
-                                                          updTime=now_time,
-                                                          pay_url=redirect_url, isSelectDiscounts=is_select_discount,
-                                                          commodity_code=commodity_code, commodity_type=commodity_type,
-                                                          rank_id=rank, coupon_id=coupon_id, ai_rank_id=1,
-                                                          store_meal_name=store_meal_name)
-                    if store_qs[0]['is_ai'] == 1:
-                        order_qs.order_type = 1
+                    Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
+                                               desc=content, payType=pay_type, payTime=now_time,
+                                               price=price, currency=currency, addTime=now_time,
+                                               updTime=now_time,
+                                               pay_url=redirect_url, isSelectDiscounts=is_select_discount,
+                                               commodity_code=commodity_code, commodity_type=commodity_type,
+                                               rank_id=rank, coupon_id=coupon_id, ai_rank_id=1,
+                                               store_meal_name=store_meal_name)
+
                     return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
                                                           'result': {"redirectUrl": redirect_url, "orderID": order_id},
                                                           'error_code': 0})
@@ -1616,15 +1550,13 @@ class CloudStorageView(View):
             if not response:
                 return response.json(10, '生成订单错误.')
             # 回调函数
-            order_qs = Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
-                                                  desc=content, payType=pay_type, payTime=now_time,
-                                                  price=price, currency=currency, addTime=now_time, updTime=now_time,
-                                                  pay_url=notify_url, isSelectDiscounts=is_select_discount,
-                                                  commodity_code=commodity_code, commodity_type=commodity_type,
-                                                  rank_id=rank,
-                                                  ai_rank_id=1, store_meal_name=store_meal_name)
-            if store_qs[0]['is_ai'] == 1:
-                order_qs.order_type = 1
+            Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
+                                       desc=content, payType=pay_type, payTime=now_time,
+                                       price=price, currency=currency, addTime=now_time, updTime=now_time,
+                                       pay_url=notify_url, isSelectDiscounts=is_select_discount,
+                                       commodity_code=commodity_code, commodity_type=commodity_type,
+                                       rank_id=rank,
+                                       ai_rank_id=1, store_meal_name=store_meal_name)
             return JsonResponse(status=200, data={'result_code': 0, 'reason': 'success',
                                                   'result': response,
                                                   'orderId': order_id,
@@ -1697,8 +1629,7 @@ class CloudStorageView(View):
             return response.json(10064)
         order_id = CommonService.createOrderID()
         now_time = int(time.time())
-        order_type = 0
-        store_qs = Store_Meal.objects.filter(id=rank, lang__lang=lang, is_show=0).values("day", "bucket_id", 'is_ai',
+        store_qs = Store_Meal.objects.filter(id=rank, lang__lang=lang, is_show=0).values("day", "bucket_id",
                                                                                          "bucket__storeDay", "expire",
                                                                                          'lang__content', 'price',
                                                                                          'currency', 'commodity_type',
@@ -1709,7 +1640,6 @@ 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():
@@ -1725,7 +1655,6 @@ 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():
@@ -1741,15 +1670,6 @@ class CloudStorageView(View):
                                                            endTime=end_time, addTime=now_time, updateTime=now_time,
                                                            use_status=1)
                     uid_bucket_id = uid_bucket.id
-                #  开通AI体验
-                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():
-                        ai_service_qs.update(endTime=end_time, use_status=1, updTime=now_time)
-                    else:
-                        AiService.objects.create(uid=uid, channel=channel, detect_status=1, endTime=end_time,
-                                                 addTime=now_time, updTime=now_time, use_status=1)
                 #  开通云盘体验
                 # icloud_use_qs = IcloudUseDetails.objects.filter(user_id=user_id).values('id')
                 # if not icloud_use_qs.exists():
@@ -1774,7 +1694,7 @@ class CloudStorageView(View):
                 Order_Model.objects.create(orderID=order_id, UID=uid, channel=channel, userID_id=user_id,
                                            desc=store_qs[0]['lang__content'], payType=pay_type, payTime=now_time,
                                            price=store_qs[0]['price'], currency=store_qs[0]['currency'],
-                                           addTime=now_time, order_type=order_type,
+                                           addTime=now_time,
                                            updTime=now_time,
                                            pay_url="体验版", store_meal_name=store_meal_name,
                                            commodity_code=commodity_code, commodity_type=store_qs[0]['commodity_type'],
@@ -1857,7 +1777,6 @@ class CloudStorageView(View):
                 experience_context_qs.delete()
                 Order_Model.objects.filter(uid_bucket_id=bucket_id).delete()
                 uid_bucket_qs.delete()
-                AiService.objects.filter(uid=uid_bucket_qs[0].uid).delete()
             else:
                 return response.json(10007)
         else:
@@ -2018,9 +1937,6 @@ class CloudStorageView(View):
                 Unused_Uid_Meal.objects.filter(id=unused_id).delete()
                 StsCrdModel.objects.filter(uid=uid).delete()  # 删除sts记录
                 # VodHlsModel.objects.filter(uid=uid).delete()  # 删除播放列表,后期数据量多时应该考虑延后删除
-                AiService.objects.filter(uid=uid, channel=unused_uid_bucket['channel']).update(endTime=end_time,
-                                                                                               updTime=now_time,
-                                                                                               use_status=1)
                 return response.json(0)
         except Exception:
             return response.json(474)

+ 2 - 18
Controller/CloudVod.py

@@ -83,27 +83,11 @@ class CloudVodView(View):
         dvqs = Device_Info.objects.filter(UID=uid, isShare=False)
         if not dvqs.exists():
             return response.json(12)
-        uid_set_qs = UidSetModel.objects.filter(uid=uid).values('is_ai')
-        if not uid_set_qs.exists():
-            return response.json(12)
         ubqs = UID_Bucket.objects.filter(uid=uid). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
         res = []
-        for item in ubqs:
-            result = {
-                'bucket__content': item['bucket__content'],
-                'status': item['status'],
-                'channel': item['channel'],
-                'endTime': item['endTime'],
-                'uid': item['uid'],
-            }
-            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)
-                result['detect_status'] = ai_server_qs[0]['detect_status']
-                result['detect_group'] = ai_server_qs[0]['detect_group']
-            res.append(result)
+        if ubqs.exists():
+            res = list(ubqs)
         return response.json(0, res)
 
     def do_pay_error(self):

+ 2 - 6
Controller/Cron/CronTaskController.py

@@ -329,7 +329,6 @@ class CronUpdateDataView(View):
         expired_uid_bucket = expired_uid_bucket.filter(~Q(use_status=2)).values('id')
         if expired_uid_bucket.exists():
             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]
         for expired_uid_bucket in expired_uid_buckets:
@@ -360,9 +359,6 @@ class CronUpdateDataView(View):
                         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']).update(use_status=1, endTime=end_time,
-                                                                                   updTime=now_time,
-                                                                                   channel=unused['channel'])
             except Exception as e:
                 print(repr(e))
                 continue
@@ -774,8 +770,8 @@ class CronCollectDataView(View):
                     country_id = uid_set_qs[0]['tb_country'] if uid_set_qs.exists() else 0
                     country_name = country_dict.get(country_id, '未知国家')
                     order_type = item['order_type']
-                    if order_type == 1:
-                        order_type = 0
+                    if order_type == '4' or order_type == 4:
+                        continue
                     device_info_qs = Device_Info.objects.filter(UID=item['UID']).values('Type')
                     device_type_id = device_info_qs[0]['Type'] if device_info_qs.exists() else 0
                     device_type_name = device_type_dict.get(device_type_id, '未知设备')

+ 14 - 49
Controller/PaymentCycle.py

@@ -180,7 +180,7 @@ class PaypalCycleNotify(View):
         agreement_id = billing_agreement_response.id
         order_qs = Order_Model.objects.filter(orderID=orderID, status=0)
         order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts",
-                                     "userID__userID", 'rank__is_ai',
+                                     "userID__userID",
                                      "userID__username", 'coupon_id')
         if not orderID:
             logger.info('----订阅订单号失效----')
@@ -255,23 +255,6 @@ class PaypalCycleNotify(View):
                         (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime,
                          updateTime=nowTime, use_status=1)
                     uid_bucket_id = ub_cqs.id
-                # 开通AI服务
-                if order_list[0]['rank__is_ai']:
-                    ai_service_qs = AiService.objects.filter(uid=UID, channel=channel)
-                    if ai_service_qs.exists():  # 有正在使用的套餐,套餐结束时间保存为套餐有效期
-                        ai_service_qs.update(endTime=endTime, use_status=1, updTime=nowTime)
-                    else:
-                        ai_service_dict = {
-                            'uid': UID,
-                            'channel': channel,
-                            'detect_status': 1,
-                            'addTime': nowTime,
-                            'updTime': nowTime,
-                            'use_status': 1,
-                            'endTime': endTime
-                        }
-                        AiService.objects.create(**ai_service_dict)
-
                 dvq = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
                 if dvq.exists():
                     dvq_set_update_dict = {
@@ -470,15 +453,13 @@ class PaypalCycleNotify(View):
             username = order_qs[0]['userID__username']
             channel = order_qs[0]['channel']
             rank = order_qs[0]['rank']
-            store_meal_qs = Store_Meal.objects.filter(id=rank).values("day", "bucket_id", "bucket__storeDay", "expire",
-                                                                      "is_ai")
+            store_meal_qs = Store_Meal.objects.filter(id=rank).values("day", "bucket_id", "bucket__storeDay", "expire")
             if not store_meal_qs.exists():
                 PAY_LOGGER.info('{} PayPal周期扣款失败---套餐数据不存在'.format(UID))
                 return HttpResponse('fail', status=500)
 
             bucketId = store_meal_qs[0]['bucket_id']
             expire = store_meal_qs[0]['expire']
-            is_ai = store_meal_qs[0]['is_ai']
             ubqs = UID_Bucket.objects.filter(uid=UID).values("id", "bucket_id", "bucket__storeDay", "bucket__region",
                                                              "endTime", "use_status")
 
@@ -507,21 +488,6 @@ class PaypalCycleNotify(View):
                          updateTime=nowTime, use_status=1)
                     uid_bucket_id = ub_cqs.id
                 # 开通AI服务
-                if is_ai:
-                    ai_service_qs = AiService.objects.filter(uid=UID, channel=channel)
-                    if ai_service_qs.exists():  # 有正在使用的套餐,套餐结束时间保存为套餐有效期
-                        ai_service_qs.update(endTime=endTime, use_status=1, updTime=nowTime)
-                    else:
-                        ai_service_dict = {
-                            'uid': UID,
-                            'channel': channel,
-                            'detect_status': 1,
-                            'addTime': nowTime,
-                            'updTime': nowTime,
-                            'use_status': 1,
-                            'endTime': endTime
-                        }
-                        AiService.objects.create(**ai_service_dict)
                 dvq = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
                 if dvq.exists():
                     dvq_set_update_dict = {
@@ -537,19 +503,18 @@ class PaypalCycleNotify(View):
                     store_meal_name = store_meal_qs[0]['lang__title'] + '-' + store_meal_qs[0]['lang__content']
                 else:
                     store_meal_name = '未知套餐'
-                new_order_qs = Order_Model.objects.create(orderID=orderID, UID=UID, channel=channel, userID_id=userid,
-                                                          desc=desc, payType=pay_type, payTime=nowTime,
-                                                          price=amount.get('total'),
-                                                          currency=order_qs[0]['currency'], addTime=nowTime,
-                                                          updTime=nowTime,
-                                                          pay_url='', isSelectDiscounts=0,
-                                                          commodity_code=commodity_code,
-                                                          commodity_type=commodity_type, rank_id=rank, paymentID='',
-                                                          coupon_id='', uid_bucket_id=uid_bucket_id, status=1,
-                                                          agreement_id=agreement_id, store_meal_name=store_meal_name,
-                                                          plan_id=plan_id, ai_rank_id=1, trade_no=paypal_transaction_id)
-                if is_ai:
-                    new_order_qs.order_type = 1
+                Order_Model.objects.create(orderID=orderID, UID=UID, channel=channel, userID_id=userid,
+                                           desc=desc, payType=pay_type, payTime=nowTime,
+                                           price=amount.get('total'),
+                                           currency=order_qs[0]['currency'], addTime=nowTime,
+                                           updTime=nowTime,
+                                           pay_url='', isSelectDiscounts=0,
+                                           commodity_code=commodity_code,
+                                           commodity_type=commodity_type, rank_id=rank, paymentID='',
+                                           coupon_id='', uid_bucket_id=uid_bucket_id, status=1,
+                                           agreement_id=agreement_id, store_meal_name=store_meal_name,
+                                           plan_id=plan_id, ai_rank_id=1, trade_no=paypal_transaction_id)
+
                 # 如果存在序列号,消息提示用序列号
                 device_name = CommonService.query_serial_with_uid(uid=UID)
                 datetime = time.strftime("%Y-%m-%d", time.localtime())

+ 6 - 6
Model/models.py

@@ -754,9 +754,9 @@ class Store_Meal(models.Model):
     lang = models.ManyToManyField(to='Lang', verbose_name='套餐语言', db_table='store_meal_lang')
     cycle_config_id = models.IntegerField(null=True, verbose_name='周期付款配置表id')
     sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')  # 单位月
-    is_beta = models.SmallIntegerField(default=0, verbose_name=u'是否显示beta')  # 0: 否, 1: 是
-    is_ai = models.SmallIntegerField(default=0, verbose_name=u'是否支持AI')  # 0: 否, 1: 是
     icloud_store_meal_id = models.IntegerField(default=0, verbose_name='关联云盘套餐id')
+    # 备用字段
+    spare_4 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段4')
 
     def __str__(self):
         return self.id
@@ -935,7 +935,7 @@ class Order_Model(models.Model):
     rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='关联云存套餐表')
     ai_rank = models.ForeignKey(AiStoreMeal, to_field='id', default='', on_delete=models.CASCADE,
                                 verbose_name='关联ai套餐表')
-    order_type = models.SmallIntegerField(default=0, verbose_name='订单类型:0:云存,1:云存ai,2:联通4G,3:五兴,4:云盘')
+    order_type = models.SmallIntegerField(default=0, verbose_name='订单类型:0:云存,1:ai,2:联通4G,3:五兴,4:云盘')
     unify_combo_id = models.CharField(blank=True, default='', max_length=32, verbose_name=u'统一套餐id')
     nickname = models.CharField(default='', max_length=64, verbose_name='设备昵称')
     uid_bucket_id = models.IntegerField(default=0, verbose_name='关联uid_bucket的字段')
@@ -2497,8 +2497,8 @@ class AiService(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
     channel = models.SmallIntegerField(default=0, verbose_name='通道')
-    # orders = models.ForeignKey(Order_Model, to_field='orderID', default='', on_delete=models.CASCADE,
-    #                           verbose_name='关联订单表')
+    orders = models.ForeignKey(Order_Model, to_field='orderID', default='', on_delete=models.CASCADE,
+                               verbose_name='关联订单表')
     detect_status = models.SmallIntegerField(default=0, verbose_name='状态')  # 0:关闭, 1:开启
     endTime = models.BigIntegerField(verbose_name='套餐结束时间', db_index=True, default=0)
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
@@ -3759,4 +3759,4 @@ class IotCardUsageHistory(models.Model):
     class Meta:
         db_table = 'iot_card_usage_history'
         verbose_name = '物联网卡用量历史'
-        verbose_name_plural = verbose_name
+        verbose_name_plural = verbose_name