浏览代码

后台编辑广告接口 新增删除或添加-轮播和开屏图

linhaohong 1 年之前
父节点
当前提交
0295e119fb
共有 1 个文件被更改,包括 37 次插入4 次删除
  1. 37 4
      AdminController/CampaignController.py

+ 37 - 4
AdminController/CampaignController.py

@@ -268,6 +268,10 @@ class CampaignView(View):
             sort_urls = json.loads(request_dict.get('sort_url', "[]"))
             banner_urls = json.loads(request_dict.get('banner_urls', "[]"))
 
+            # 删除轮播图广告
+            sort_banner_del = json.loads(request_dict.get('sort_banner_del', "[]"))
+            poster_del = request_dict.get('poster_del', None)
+
             if not campaign_id:
                 return response.json(444)
 
@@ -292,14 +296,22 @@ class CampaignView(View):
                     campaign.campaign_type.append(1)
 
             # 更改轮播广告图片
-            if banner_files is not None:
-                image_num = 0
+            if banner_files:
+                for sort in sort_files:
+                    if str(sort) in campaign.banner_campaign:
+                        old_image = campaign.banner_campaign[str(sort)]["image"]
+                        self.del_file_to_s3(old_image)
+                    else:
+                        campaign.banner_campaign[str(sort)] = {}
+                        if sort not in sort_urls:
+                            return response.json(10, "图片需要和链接对应")
+
                 banner_image_urls = self.upload_files_to_s3(banner_files, "BannerAdvertise")
+                image_num = 0
                 for sort in sort_files:
-                    old_image = campaign.banner_campaign[str(sort)]["image"]
-                    self.del_file_to_s3(old_image)
                     campaign.banner_campaign[str(sort)]["image"] = banner_image_urls[image_num]
                     image_num = image_num + 1
+
                 if 2 not in campaign.campaign_type:
                     campaign.campaign_type.append(2)
 
@@ -307,9 +319,30 @@ class CampaignView(View):
             if banner_urls:
                 url_num = 0
                 for sort in sort_urls:
+                    if str(sort) not in campaign.banner_campaign:
+                        campaign.banner_campaign[str(sort)] = {}
+                        if sort not in sort_files:
+                            return response.json(10, "图片需要和链接对应")
                     campaign.banner_campaign[str(sort)]["url"] = banner_urls[url_num]
                     url_num = url_num + 1
 
+            # 添加删除列表
+            if sort_banner_del:
+                for sort in sort_banner_del:
+                    if str(sort) in campaign.banner_campaign:
+                        del campaign.banner_campaign[str(sort)]
+                if not campaign.banner_campaign:
+                    campaign.campaign_type.remove(2)
+
+            if poster_del is not None:
+                campaign.campaign_url = ""
+                self.del_file_to_s3(campaign.image_url)
+                campaign.image_url = ""
+                campaign.campaign_type.remove(1)
+
+            if not campaign.campaign_type:
+                campaign.status = 2
+
             # 常规字段
             if campaign_name is not None:
                 campaign.campaign_name = campaign_name