peng 1 жил өмнө
parent
commit
b55e55ebdf

+ 46 - 9
Controller/CloudStorage.py

@@ -215,12 +215,14 @@ class CloudStorageView(View):
             if CONFIG_INFO != CONFIG_CN:  # 国内生产环境不筛选像素 加载所有上架套餐
                 store_qs = store_qs.filter(Q(pixel_level=pixel_level))
         else:
+            is_ai = uid_set_qs[0]['is_ai']
+            is_ai = 1 if is_ai != 2 and CONFIG_INFO != CONFIG_CN else 0  # 国内不支持AI服务
             store_qs = store_qs.filter(pay_type='10')  # 体验套餐不区分像素等级
 
         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",
+                                                    "bucket__storeDay", "rank__lang__new_title",
                                                     "bucket__bucket", "bucket__area", "commodity_code",
                                                     "commodity_type", "is_discounts", "virtual_price", "expire",
                                                     "discount_price", "discount_content", "symbol", "cycle_config_id")
@@ -240,6 +242,16 @@ class CloudStorageView(View):
                 del item['cycle_config_id']
                 item['isCoupon'] = False if not coupon_qs or not coupon_qs.exists() else \
                     CloudStorageView.check_user_coupon_is_available(coupon_qs, item['id'])
+                for each in item['pay_type']:
+                    if each['id'] == 10:
+                        if pixel_level == 0 and is_ai == 0:
+                            item['rank__title'] = item['rank__lang__new_title'].get('1', '')
+                        elif pixel_level == 1 and is_ai == 0:
+                            item['content'] = item['rank__lang__new_title'].get('2', '')
+                        elif pixel_level == 0 and is_ai == 1:
+                            item['content'] = item['rank__lang__new_title'].get('3', '')
+                        elif pixel_level == 1 and is_ai == 1:
+                            item['content'] = item['rank__lang__new_title'].get('4', '')
             res_c = {'area': area, 'items': items_list}
             res.append(res_c)
         # 是否促销
@@ -1685,12 +1697,12 @@ class CloudStorageView(View):
                 }
                 store_list.append(unused_dict)
                 bucket_id_list.append(unused_uid['bucket__id'])
-        store_qs = Store_Meal.objects.filter(bucket__id__in=bucket_id_list, lang__lang=lang).annotate(
-            title=F('lang__title'), content=F('lang__content')).values('lang__content', 'lang__lang',
-                                                                       'bucket__id', 'lang__title')
+
         for index, value in enumerate(store_list):
             if value['orderId'] and CONFIG_INFO != CONFIG_CN:
                 order_qs = Order_Model.objects.filter(orderID=value['orderId'], rank__lang__lang=lang).values('payType',
+                                                                                                              'price',
+                                                                                                              'order_type',
                                                                                                               'rank__is_ai',
                                                                                                               'rank__pixel_level',
                                                                                                               'rank__commodity_code',
@@ -1717,11 +1729,36 @@ class CloudStorageView(View):
                                 value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('8', '')
                             else:
                                 value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('4', '')
-                        continue
-            for store in store_qs:
-                if value['bucket__id'] == store['bucket__id']:
-                    value['bucket__content'] = store['lang__title'] + '-' + store['lang__content']
-
+                    elif order_qs[0]['payType'] == 10:  # 免费套餐
+                        uid_set_qs = UidSetModel.objects.filter(uid=value['uid']).values('ucode')
+                        if not uid_set_qs.exists():
+                            return response.json(173)
+                        ucode = uid_set_qs[0]['ucode']
+                        pixel_level = 1 if ucode and int(ucode[-5]) >= 8 else 0
+                        if pixel_level == 0 and order_qs[0]['order_type'] == 0:
+                            value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('1', '')
+                        elif pixel_level == 1 and order_qs[0]['order_type'] == 0:
+                            value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('2', '')
+                        elif pixel_level == 0 and order_qs[0]['order_type'] == 1:
+                            value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('3', '')
+                        elif pixel_level == 1 and order_qs[0]['order_type'] == 1:
+                            value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('4', '')
+                    else:  # cdk套餐
+                        if order_qs[0]['price'] != '0.00':
+                            if order_qs[0]['rank__pixel_level'] == 0 and order_qs[0]['rank__is_ai'] == 0:
+                                value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('1', '')
+                            elif order_qs[0]['rank__pixel_level'] == 1 and order_qs[0]['rank__is_ai'] == 0:
+                                value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('2', '')
+                            elif order_qs[0]['rank__pixel_level'] == 0 and order_qs[0]['rank__is_ai'] == 1:
+                                value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('3', '')
+                            elif order_qs[0]['rank__pixel_level'] == 1 and order_qs[0]['rank__is_ai'] == 1:
+                                value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('4', '')
+                        else:
+                            if order_qs[0]['order_type'] == 0:
+                                value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('1', '')
+                            elif order_qs[0]['order_type'] == 1:
+                                value['bucket__content'] = order_qs[0]['rank__lang__new_title'].get('2', '')
+                        value['bucket__content'] += '(cdk)'
         return response.json(0, list(store_list))
 
     @staticmethod

+ 77 - 21
Controller/OrderContrller.py

@@ -23,7 +23,7 @@ from Ansjer.us_config.config_test import PAYPAL_CRD
 from Object.AliPayObject import AliPayObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
-from Model.models import Order_Model, Device_Info
+from Model.models import Order_Model, Device_Info, UidSetModel
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 
@@ -105,12 +105,13 @@ class OrderView(View):
             # return response.json(10, '订单不存在')
         count = omqs.count()
         omqs = omqs.annotate(rank__title=F('rank__lang__title'), rank__content=F('rank__lang__content'))
-        order_ql = omqs[(page - 1) * line:page * line].values("orderID", "UID", "channel", "desc", "price", "currency",
-                                                              "addTime",
-                                                              "updTime", "paypal", "rank__day", "payType",
-                                                              "rank__price", "status",
-                                                              "rank__lang__content", "rank__title", "rank__currency",
-                                                              "rank_id", "rank__expire", 'store_meal_name', 'order_type')
+        order_ql = omqs.values("orderID", "UID", "channel", "desc", "price", "currency",
+                               "addTime", "rank__lang__new_title", "rank__pixel_level", "rank__commodity_code",
+                               "updTime", "paypal", "rank__day", "payType",
+                               "rank__price", "status", "rank__is_ai",
+                               "rank__content", "rank__title", "rank__currency",
+                               "rank_id", "rank__expire", 'store_meal_name', 'order_type')[
+                   (page - 1) * line:page * line]
         order_list = list(order_ql)
         data = []
         nowTime = int(time.time())
@@ -118,7 +119,8 @@ class OrderView(View):
         uid_list = []
         for od in order_list:
             uid_list.append(od['UID'])
-        didqs = Device_Info.objects.filter(userID_id=userID, UID__in=uid_list).values('id', 'UID', 'Type', 'serial_number')
+        didqs = Device_Info.objects.filter(userID_id=userID, UID__in=uid_list).values('id', 'UID', 'Type',
+                                                                                      'serial_number')
         for d in order_list:
             if d['status'] == 0:
                 if d['addTime'] + 3600 < nowTime:
@@ -129,14 +131,67 @@ class OrderView(View):
                     d['Type'] = did['Type']
                     # 如果存在序列号返回完整序列号
                     if did['serial_number']:
-                        d['serial_number'] = CommonService.get_full_serial_number(d['UID'], did['serial_number'], did['Type'])
+                        d['serial_number'] = CommonService.get_full_serial_number(d['UID'], did['serial_number'],
+                                                                                  did['Type'])
                     data.append(d)
-            d['rank__content'] = d['rank__lang__content']
             if d['order_type'] > 1:
                 d['rank__title'] = d['store_meal_name']
             else:
-                d['rank__title'] = d['rank__title'] + '-' +d['rank__lang__content']
-            del d['rank__lang__content']
+                if d['payType'] not in [10, 11]:
+                    if d['rank__pixel_level'] == 0 and d['rank__is_ai'] == 0:
+                        if d['rank__commodity_code']:
+                            d['rank__title'] = d['rank__lang__new_title'].get('5', '')
+                        else:
+                            d['rank__title'] = d['rank__lang__new_title'].get('1', '')
+                    elif d['rank__pixel_level'] == 1 and d['rank__is_ai'] == 0:
+                        if d['rank__commodity_code']:
+                            d['rank__title'] = d['rank__lang__new_title'].get('6', '')
+                        else:
+                            d['rank__title'] = d['rank__lang__new_title'].get('2', '')
+                    elif d['rank__pixel_level'] == 0 and d['rank__is_ai'] == 1:
+                        if d['rank__commodity_code']:
+                            d['rank__title'] = d['rank__lang__new_title'].get('7', '')
+                        else:
+                            d['rank__title'] = d['rank__lang__new_title'].get('3', '')
+                    elif d['rank__pixel_level'] == 1 and d['rank__is_ai'] == 1:
+                        if d['rank__commodity_code']:
+                            d['rank__title'] = d['rank__lang__new_title'].get('8', '')
+                        else:
+                            d['rank__title'] = d['rank__lang__new_title'].get('4', '')
+                elif d['payType'] == 10:  # 免费套餐
+                    # 查询设备像素
+                    uid_set_qs = UidSetModel.objects.filter(uid=d['UID']).values('ucode')
+                    if not uid_set_qs.exists():
+                        pixel_level = 0
+                    else:
+                        ucode = uid_set_qs[0]['ucode']
+                        pixel_level = 1 if ucode and int(ucode[-5]) >= 8 else 0
+                    if pixel_level == 0 and d['order_type'] == 0:
+                        d['rank__title'] = d['rank__lang__new_title'].get('1', '')
+                    elif pixel_level == 1 and d['order_type'] == 0:
+                        d['rank__title'] = d['rank__lang__new_title'].get('2', '')
+                    elif pixel_level == 0 and d['order_type'] == 1:
+                        d['rank__title'] = d['rank__lang__new_title'].get('3', '')
+                    elif pixel_level == 1 and d['order_type'] == 1:
+                        d['rank__title'] = d['rank__lang__new_title'].get('4', '')
+                else:  # cdk套餐
+                    if d['price'] != '0.00':
+                        if d['rank__pixel_level'] == 0 and d['rank__is_ai'] == 0:
+                            d['rank__title'] = d['rank__lang__new_title'].get('1', '')
+                        elif d['rank__pixel_level'] == 1 and d['rank__is_ai'] == 0:
+                            d['rank__title'] = d['rank__lang__new_title'].get('2', '')
+                        elif d['rank__pixel_level'] == 0 and d['rank__is_ai'] == 1:
+                            d['rank__title'] = d['rank__lang__new_title'].get('3', '')
+                        elif d['rank__pixel_level'] == 1 and d['rank__is_ai'] == 1:
+                            d['rank__title'] = d['rank__lang__new_title'].get('4', '')
+                    else:
+                        if d['order_type'] == 0:
+                            d['rank__title'] = d['rank__lang__new_title'].get('1', '')
+                        elif d['order_type'] == 1:
+                            d['rank__title'] = d['rank__lang__new_title'].get('2', '')
+                    d['rank__title'] += '(cdk)'
+
+                # d['rank__title'] = d['rank__title'] + '-' + d['rank__content']
             # d['rank__lang__content'] = '月' if lang == 'cn' else 'month'
         return response.json(0, {'data': data, 'count': count})
 
@@ -177,7 +232,8 @@ class OrderView(View):
             if not omqs.exists():
                 return response.json(0, [])
             count = omqs.count()
-            order_ql = omqs[(page - 1) * line:page * line].values("orderID", "UID", "userID__username", "channel", "desc", "price",
+            order_ql = omqs[(page - 1) * line:page * line].values("orderID", "UID", "userID__username", "channel",
+                                                                  "desc", "price",
                                                                   "currency", "addTime", "updTime", "paypal",
                                                                   "payType",
                                                                   "rank__day",
@@ -196,12 +252,12 @@ class OrderView(View):
         if status and page and line:
             order_qs = None
             status = int(status)
-            if status == -1: # 获取所有订单
-                order_qs = Order_Model.objects.filter(userID__userID=userID,rank__lang__lang=lang)
-            elif status == 0: # 获取【代付款】订单
-                order_qs = Order_Model.objects.filter(userID__userID=userID, status=0,rank__lang__lang=lang)
+            if status == -1:  # 获取所有订单
+                order_qs = Order_Model.objects.filter(userID__userID=userID, rank__lang__lang=lang)
+            elif status == 0:  # 获取【代付款】订单
+                order_qs = Order_Model.objects.filter(userID__userID=userID, status=0, rank__lang__lang=lang)
             elif status == 1:
-                order_qs = Order_Model.objects.filter(userID__userID=userID, status=1,rank__lang__lang=lang)
+                order_qs = Order_Model.objects.filter(userID__userID=userID, status=1, rank__lang__lang=lang)
 
             if order_qs is None or not order_qs.exists():
                 return response.json(0, {'data': [], 'count': 0})
@@ -243,7 +299,7 @@ class OrderView(View):
         if orderID is None:
             return response.json(444)
 
-        order_qs = Order_Model.objects.filter(orderID=orderID,rank__lang__lang=lang)
+        order_qs = Order_Model.objects.filter(orderID=orderID, rank__lang__lang=lang)
         if not order_qs.exists():
             return response.json(800)
 
@@ -251,7 +307,7 @@ class OrderView(View):
         if order.status != 0:
             return response.json(802)
 
-        if order.payType == 1: # 支付宝支付的订单
+        if order.payType == 1:  # 支付宝支付的订单
             return self.do_cancel_alipay_order(order, response)
         else:
             return self.do_cancel_paypal_order(order, response)
@@ -323,4 +379,4 @@ class OrderView(View):
         order.status = 2
         order.updTime = int(time.time())
         order.save()
-        return response.json(0)
+        return response.json(0)