Browse Source

云盘后台管理

peng 2 years ago
parent
commit
89ff0114e7
1 changed files with 52 additions and 17 deletions
  1. 52 17
      AdminController/IcloudManagementController.py

+ 52 - 17
AdminController/IcloudManagementController.py

@@ -44,10 +44,10 @@ class IcloudServeView(View):
             elif operation == 'getMealLang':
                 return self.get_meal_lang(request_dict, response)
             # ai套餐语言相关
-            elif operation == 'getAiMealLanguage':
-                return self.getAiMealLanguage(request_dict, response)
-            elif operation == 'addOrEditAiMealLanguage':
-                return self.addOrEditAiMealLanguage(request_dict, response)
+            elif operation == 'addOrEditLang':
+                return self.add_or_edit_lang(request_dict, response)
+            elif operation == 'deleteMeal':
+                return self.delete_meal(request_dict, response)
             elif operation == 'deleteAiMealLanguage':
                 return self.deleteAiMealLanguage(request_dict, response)
             # 设备ai套餐相关
@@ -83,10 +83,6 @@ class IcloudServeView(View):
             for icloud_meal in icloud_meals:
                 # 获取支付方式列表
                 pay_type_list = list(ICloudStoreMeal.objects.filter(id=icloud_meal['id']).values('pay_type__payment'))
-                # 获取套餐语言
-                lang_list = list(ICloudStoreMeal.objects.filter(id=icloud_meal['id']).values('lang__lang',
-                                                                                             'lang__title',
-                                                                                             'lang__content'))
                 # 获取存储桶信息
                 vod_bucket_qs = VodBucketModel.objects.filter(id=icloud_meal['bucket_id']).values('bucket')
                 # 组织响应数据
@@ -99,7 +95,6 @@ class IcloudServeView(View):
                     'is_delete': icloud_meal['is_delete'],
                     'expire': icloud_meal['expire'],
                     'pay_type': pay_type_list,
-                    'lang': lang_list,
                     'size': icloud_meal['size'],
                     'bucket': vod_bucket_qs[0]['bucket'],
                     'addTime': icloud_meal['add_time'].strftime("%Y-%m-%d %H:%M:%S"),
@@ -118,16 +113,14 @@ class IcloudServeView(View):
         currency = request_dict.get('currency', None)
         symbol = request_dict.get('symbol', None)
         pay_type = request_dict.get('pay_type', None)
-        lang = request_dict.get('lang', None)
         is_show = int(request_dict.get('is_show', 1))
         is_delete = int(request_dict.get('is_delete', 0))
-        size = int(request_dict.get('size', None))
+        size = float(request_dict.get('size', None))
         is_edit = request_dict.get('isEdit', None)
 
-        if not all([expire, price, currency, symbol, pay_type, lang, size]):
+        if not all([expire, price, currency, symbol, pay_type, size]):
             return response.json(444)
         pay_type = pay_type.split(',')
-        lang = lang.split(',')
         try:
             icloud_store_meal_data = {
                 'expire': expire,
@@ -143,17 +136,59 @@ class IcloudServeView(View):
                     return response.json(444)
                 ICloudStoreMeal.objects.filter(id=meal_id).update(**icloud_store_meal_data)
                 ICloudStoreMeal.objects.get(id=meal_id).pay_type.set(pay_type)
-                ICloudStoreMeal.objects.get(id=meal_id).lang.set(lang)
             else:
                 icloud_meal_qs = ICloudStoreMeal.objects.create(**icloud_store_meal_data)
                 icloud_meal_qs.pay_type.set(pay_type)
-                icloud_meal_qs.lang.set(lang)
             return response.json(0)
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
 
+    @staticmethod
+    def delete_meal(request_dict, response):
+        meal_id = request_dict.get('meal_id', None)
+        if not meal_id:
+            return response.json(444)
+        icloud_meal_qs = ICloudStoreMeal.objects.filter(id=meal_id).values('lang__id')
+        icloud_meal_qs.lang.remove(*icloud_meal_qs)
+        Lang.objects.filter(id=icloud_meal_qs[0]['lang__id']).delete()
+        icloud_meal_qs.delete()
+        return response.json(0)
+
     @staticmethod
     def get_meal_lang(request_dict, response):
-        lang = Lang.objects.filter(type=3).values('id', 'lang', 'title', 'content')
-        return response.json(0, list(lang))
+        is_select = request_dict.get('isSelect', None)
+        meal_id = request_dict.get('mealId', None)
+        page = request_dict.get('pageNo', None)
+        line = request_dict.get('pageSize', None)
+        if not all([page, line]):
+            return response.json(444)
+        icloud_meal_qs = ICloudStoreMeal.objects.all()
+
+        if is_select:
+            icloud_meal_qs = icloud_meal_qs.values('id', 'lang__title')
+        else:
+            if meal_id:
+                icloud_meal_qs = icloud_meal_qs.filter(id=meal_id).values('id', 'lang__id', 'lang__lang', 'lang__title',
+                                                                          'lang__content')
+            else:
+                icloud_meal_qs = icloud_meal_qs.values('id', 'lang__id', 'lang__lang', 'lang__title',
+                                                       'lang__content')[(page - 1) * line:page * line]
+        total = icloud_meal_qs.count()
+        return response.json(0, {'langList': list(icloud_meal_qs), 'total': total})
+
+    @staticmethod
+    def add_or_edit_lang(request_dict, response):
+        lang_id = request_dict.get('lang_id', None)
+        lang = request_dict.get('lang', 'en')
+        title = request_dict.get('title', None)
+        content = request_dict.get('content', None)
+        try:
+            if lang_id:
+                Lang.objects.filter(id=lang_id).update(lang=lang, title=title, content=content)
+            else:
+                Lang.objects.create(lang=lang, title=title, content=content, type=3)
+            return response.json(0)
+        except Exception as e:
+            return response.json(500)
+