locky 4 лет назад
Родитель
Сommit
811e1b9b3a
1 измененных файлов с 109 добавлено и 17 удалено
  1. 109 17
      AdminController/ServeManagementController.py

+ 109 - 17
AdminController/ServeManagementController.py

@@ -12,7 +12,7 @@ from boto3.session import Session
 from django.http import JsonResponse, HttpResponseRedirect, HttpResponse, StreamingHttpResponse
 from django.views.generic.base import View
 from Model.models import Device_Info, Role, MenuModel, VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
-    UID_Bucket, ExperienceContextModel
+    UID_Bucket, ExperienceContextModel, Lang
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.UidTokenObject import UidTokenObject
@@ -58,7 +58,14 @@ class serveManagement(View):
             elif operation == 'deleteStoreMeal':
                 return self.deleteStoreMeal(userID, request_dict, response)
             elif operation == 'getStoreMealLanguage':
-                return self.getStoreMealLanguage(userID, request_dict, response)
+                return self.getStoreMealLanguage(
+                    userID, request_dict, response)
+            elif operation == 'addOrEditStoreMealLanguage':
+                return self.addOrEditStoreMealLanguage(
+                    userID, request_dict, response)
+            elif operation == 'deleteStoreMealLanguage':
+                return self.deleteStoreMealLanguage(
+                    userID, request_dict, response)
             elif operation == 'getCdkList':
                 return self.getCdkList(userID, request_dict, response)
             elif operation == 'createCdk':
@@ -202,6 +209,14 @@ class serveManagement(View):
     def getStoreMealList(self, userID, request_dict, response):
         # 获取云存套餐信息数据
         print('request_dict: ', request_dict)
+
+        isSelect = request_dict.get('isSelect', None)
+        if isSelect:
+            # 获取套餐ID作为选项
+            store_meal_qs = Store_Meal.objects.all().values('id', 'bucket__bucket')
+            return response.json(
+                0, {'list': CommonService.qs_to_list(store_meal_qs)})
+
         bucket = request_dict.get('bucket', None)
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
@@ -213,10 +228,10 @@ class serveManagement(View):
         line = int(pageSize)
         try:
             if bucket:   # 条件查询
-                if bucket:
-                    bucket_id = VodBucketModel.objects.filter(
-                        bucket=bucket).values('id')[0]['id']
-                    store_meal_qs = Store_Meal.objects.filter(bucket_id=bucket_id)
+                bucket_id = VodBucketModel.objects.filter(
+                    bucket=bucket).values('id')[0]['id']
+                store_meal_qs = Store_Meal.objects.filter(
+                    bucket_id=bucket_id)
             else:   # 查询全部
                 store_meal_qs = Store_Meal.objects.filter()
             store_meal_val = store_meal_qs.values(
@@ -326,7 +341,7 @@ class serveManagement(View):
             return response.json(500, repr(e))
 
     def deleteStoreMeal(self, userID, request_dict, response):
-        # 删除存储桶
+        # 删除套餐信息
         print('request_dict: ', request_dict)
         storeMealID = request_dict.get('storeMealID', None)
         if not storeMealID:
@@ -341,7 +356,7 @@ class serveManagement(View):
     def getStoreMealLanguage(self, userID, request_dict, response):
         # 获取套餐语言
         print('request_dict: ', request_dict)
-        bucket = request_dict.get('bucket', None)
+        storeMealID = request_dict.get('storeMealID', None)
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
 
@@ -351,13 +366,11 @@ class serveManagement(View):
         page = int(pageNo)
         line = int(pageSize)
         try:
-            if bucket:   # 条件查询
-                if bucket:
-                    bucket_id = VodBucketModel.objects.filter(
-                        bucket=bucket).values('id')[0]['id']
-                    store_meal = Store_Meal.objects.filter(bucket_id=bucket_id)
+            if storeMealID:   # 条件查询
+                store_meal_lang_qs = Store_Meal.objects.filter(id=storeMealID)
             else:   # 查询全部
-                store_meal_lang_qs = Store_Meal.objects.filter(lang__isnull=False)
+                store_meal_lang_qs = Store_Meal.objects.filter(
+                    lang__isnull=False)
             store_meal_lang_val = store_meal_lang_qs.values(
                 'id',
                 'lang__id',
@@ -367,7 +380,8 @@ class serveManagement(View):
                 'lang__discount_content',
             )
             total = len(store_meal_lang_val)
-            store_meal_langs = store_meal_lang_val[(page - 1) * line:page * line]
+            store_meal_langs = store_meal_lang_val[(
+                page - 1) * line:page * line]
             store_meal_lang_list = []
             for store_meal_lang in store_meal_langs:
                 store_meal_lang_list.append({
@@ -385,6 +399,77 @@ class serveManagement(View):
             print(e)
             return response.json(500, repr(e))
 
+    def addOrEditStoreMealLanguage(self, userID, request_dict, response):
+        # 添加/编辑套餐语言
+        print('request_dict: ', request_dict)
+        storeMealID = request_dict.get('storeMealID', None)
+        lang = request_dict.get('lang', None)
+        title = request_dict.get('title', None)
+        content = request_dict.get('content', None)
+        discount_content = request_dict.get('discount_content', '')
+        isEdit = request_dict.get('isEdit', None)
+
+        if not all([storeMealID, lang, title, content]):
+            return response.json(444)
+
+        try:
+            # 查询套餐是否存在
+            store_meal_qs = Store_Meal.objects.get(id=storeMealID)
+            if not store_meal_qs:
+                return response.json(173)
+            if isEdit:  # 编辑
+                langID = request_dict.get('langID', None)
+                if not langID:
+                    return response.json(444)
+                Lang.objects.filter(
+                    id=langID).update(
+                    lang=lang,
+                    title=title,
+                    content=content,
+                    discount_content=discount_content)
+            else:   # 添加
+                lang_obj = Lang.objects.filter(
+                    lang=lang,
+                    title=title,
+                    content=content,
+                    discount_content=discount_content)
+                if not lang_obj.exists():
+                    # 数据不存在,lang表创建数据
+                    Lang.objects.create(
+                        lang=lang,
+                        title=title,
+                        content=content,
+                        discount_content=discount_content)
+                    lang_obj = Lang.objects.filter(
+                        lang=lang,
+                        title=title,
+                        content=content,
+                        discount_content=discount_content)
+                store_meal_qs.lang.add(*lang_obj)  # store_meal表添加语言数据
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def deleteStoreMealLanguage(self, userID, request_dict, response):
+        # 删除套餐语言
+        storeMealID = request_dict.get('storeMealID', None)
+        langID = request_dict.get('langID', None)
+
+        if not all([storeMealID, langID]):
+            return response.json(444)
+
+        try:
+            storeMeal_qs = Store_Meal.objects.get(id=storeMealID)
+            if not storeMeal_qs:
+                return response.json(173)
+            lang_qs = Lang.objects.filter(id=langID)
+            storeMeal_qs.lang.remove(*lang_qs)
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
     def getCdkList(self, userID, request_dict, response):
         # 获取激活码列表
         pageNo = request_dict.get('pageNo', None)
@@ -588,8 +673,15 @@ class serveManagement(View):
                 return response.json(0, [])
 
             count = ubqs.count()
-            ubqs = ubqs.values('id', 'uid', 'channel', 'status', 'endTime', 'bucket__bucket',
-                               'bucket__storeDay', 'bucket__area')
+            ubqs = ubqs.values(
+                'id',
+                'uid',
+                'channel',
+                'status',
+                'endTime',
+                'bucket__bucket',
+                'bucket__storeDay',
+                'bucket__area')
 
             ubqs = ubqs.order_by('-addTime')  # 根据CDK创建时间降序排序
             ubqs = ubqs[(page - 1) * line:page * line]