Przeglądaj źródła

云盘套餐新增sort字段;新增获取云盘套餐功能

guanhailong 2 lat temu
rodzic
commit
28cfb63273
2 zmienionych plików z 18 dodań i 8 usunięć
  1. 17 8
      Controller/IcloudService/IcloudMeal.py
  2. 1 0
      Model/models.py

+ 17 - 8
Controller/IcloudService/IcloudMeal.py

@@ -8,6 +8,7 @@
 from django.http import HttpResponse
 from django.views import View
 
+from Model.models import ICloudStoreMeal, Pay_Type
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -33,26 +34,34 @@ class UserRelatedView(View):
         if tko.code != 0:
             return response.json(tko.code)
         if operation == 'getMeal':  # 获取套餐
-            return self.get_meal(request_dict, response)
+            return self.get_meal(request_dict, response, user_id)
         elif operation == 'createPayOrder':  # 购买订单
             return self.create_pay_order(request_dict, response)
         else:
             return response.json(404)
 
     @staticmethod
-    def get_meal(request_dict, response):
+    def get_meal(request_dict, response, user_id):
         """
         获取套餐
         @param request_dict: 请求参数
-        @request_dict serial_number: 序列号
+        @request_dict lang: 语言
         @param response: 响应对象
         @return: response
         """
-        uuid_number = request_dict.get('uuid', None)
-        if not uuid_number:
-            return response.json(444, {'error param': 'uuid'})
+        lang = request_dict.get('lang', 'en')
+        cloud_drive_qs = ICloudStoreMeal.objects.filter(lang__lang=lang).values('currency', 'symbol', 'price', 'expire',
+                                                                                'pay_type',
+                                                                                'size', 'bucket_id', 'lang__title',
+                                                                                'lang__content')
         try:
-            return response.json(0)
+            store_list = list(cloud_drive_qs)
+            for cloud_drive in store_list:
+                cloud_drive['title'] = cloud_drive.pop('lang__title')
+                cloud_drive['content'] = cloud_drive.pop('lang__content')
+                pay_type_qs = Pay_Type.objects.filter(icloudstoremeal=cloud_drive['pay_type']).values("id", "payment")
+                cloud_drive['pay_type'] = list(pay_type_qs)
+            return response.json(0, store_list)
         except Exception as e:
             print(e)
             return response.json(500)
@@ -73,4 +82,4 @@ class UserRelatedView(View):
             return response.json(0)
         except Exception as e:
             print(e)
-            return response.json(500)
+            return response.json(500)

+ 1 - 0
Model/models.py

@@ -3564,6 +3564,7 @@ class ICloudStoreMeal(models.Model):
     lang = models.ManyToManyField(to='Lang', verbose_name='套餐语言', db_table='icloud_store_meal_lang')
     size = models.IntegerField(null=True, default=0, verbose_name='云盘容量大小')  # 单位G
     bucket_id = models.SmallIntegerField(default=0, verbose_name='关联存储桶id')
+    sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')  # 单位月
 
     def __str__(self):
         return self.id