Forráskód Böngészése

新增获取套餐明细功能

guanhailong 2 éve
szülő
commit
112b4e8d9a
2 módosított fájl, 72 hozzáadás és 4 törlés
  1. 71 3
      Controller/IcloudService/IcloudMeal.py
  2. 1 1
      Model/models.py

+ 71 - 3
Controller/IcloudService/IcloudMeal.py

@@ -56,6 +56,8 @@ class IcloudMeal(View):
                 return self.get_meal(request_dict, response)
             elif operation == 'createPayOrder':  # 购买订单
                 return self.create_pay_order(request_dict, request, user_id, response)
+            elif operation == 'getCloudDriveInit':  # 获取套餐明细
+                return self.get_cloud_drive_init(request_dict, response, user_id)
             else:
                 return response.json(414)
 
@@ -71,7 +73,7 @@ class IcloudMeal(View):
         lang = request_dict.get('lang', 'en')
         # 隐藏的、删除的套餐不查
         cloud_drive_qs = ICloudStoreMeal.objects.filter(Q(lang__lang=lang), Q(is_show=1), Q(is_delete=0)).values(
-            'currency', 'symbol', 'price', 'expire',
+            'id', 'currency', 'symbol', 'price', 'expire',
             'pay_type',
             'size', 'bucket_id', 'lang__title',
             'lang__content', 'sort').order_by(
@@ -351,7 +353,6 @@ class IcloudMeal(View):
         else:
             icloud_service_dict['use_details_id'] = icloud_use_qs[0]['id']
 
-
         with transaction.atomic():
             # 更新订单数据,返回支付成功url
             order_qs.update(status=1, updTime=now_time)
@@ -462,4 +463,71 @@ class IcloudMeal(View):
             return {'pay_url': pay_url, 'sign_params': sign_params}
         except Exception as e:
             print(e)
-            return {}
+            return {}
+
+    @staticmethod
+    def get_cloud_drive_init(request_dict, response, user_id):
+        """
+        获取套餐明细
+        @param request_dict: 请求数据
+        @request_dict page: 页
+        @request_dict line: 大小
+        @request_dict lang: 语言
+        @param user_id: 用户id
+        @param response: 响应
+        @return: response
+        """
+        lang = request_dict.get('lang', 'en')
+        page = request_dict.get('page', None)
+        line = request_dict.get('line', None)
+        if not all([page, line]):
+            return response.json(444)
+        page = int(page)
+        line = int(line)
+        cloud_use_qs = IcloudUseDetails.objects.filter(user_id=user_id).values('id')
+        if not cloud_use_qs.exists():
+            return response.json(0)
+        use_list = [obj['id'] for obj in cloud_use_qs]
+        cloud_service_qs = IcloudService.objects.filter(use_details_id__in=use_list)
+        if not cloud_use_qs.exists():
+            return response.json(0)
+        try:
+            data = {}
+            cloud_service_list = []
+            count = cloud_service_qs.count()
+            cloud_service_qs = cloud_service_qs[(page - 1) * line:page * line].values('use_status', 'type',
+                                                                                      'order_id',
+                                                                                      'add_time', 'end_time').order_by(
+                '-add_time')
+            # 获取套餐明细
+            for service in cloud_service_qs:
+                data['use_status'] = service['use_status']
+                data['type'] = service['type']
+                data['order_id'] = service['order_id']
+                data['add_time'] = service['add_time']
+                data['end_time'] = service['end_time']
+                if service['type'] == 0:
+                    if lang == 'cn':
+                        data['title'] = '1G永久套餐'
+                        data['note'] = '赠送'
+                    if lang == 'en':
+                        data['title'] = '1G Permanent Package'
+                        data['note'] = 'Gift'
+                if service['type'] == 1:
+                    orders_qs = Order_Model.objects.filter(orderID=service['order_id'], order_type=4). \
+                        values('desc', 'unify_combo_id')
+                    data['note'] = orders_qs[0]['desc']
+                    cloud_store_qs = ICloudStoreMeal.objects.filter(id=orders_qs[0]['unify_combo_id'],
+                                                                    lang__lang=lang).values(
+                        'lang__title')
+                    data['title'] = cloud_store_qs[0]['lang__title']
+                if service['type'] == 2:
+                    orders_qs = Order_Model.objects.filter(orderID=service['order_id']).values('desc', 'price',
+                                                                                               'currency')
+                    data['title'] = orders_qs[0]['desc']
+                    data['note'] = orders_qs[0]['price'] + orders_qs[0]['currency']
+                cloud_service_list.append(data)
+            return response.json(0, {'data': cloud_service_list, 'count': count})
+        except Exception as e:
+            logging.info('异常错误,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+            return response.json(500, e)

+ 1 - 1
Model/models.py

@@ -3600,7 +3600,7 @@ class IcloudService(models.Model):
     upd_time = models.IntegerField(verbose_name='更新时间', default=0)
     use_status = models.IntegerField(verbose_name='使用状态', default=0)  # 0:使用中, 1:已过期
     use_details_id = models.IntegerField(default=0, verbose_name='关联云盘使用表id')
-    type = models.SmallIntegerField(default=0, verbose_name='云盘购买类型')  # 0:注册永久送,1:购买存附送,2:单独购买套餐
+    type = models.SmallIntegerField(default=0, verbose_name='云盘购买类型')  # 0:注册永久送,1:购买存附送,2:单独购买套餐
     order_id = models.CharField(default='', max_length=20, verbose_name='关联订单id')
 
     class Meta: