|
@@ -108,13 +108,16 @@ class CampaignView(View):
|
|
|
|
|
|
s3_url, _, _ = self.s3_server()
|
|
|
|
|
|
- banner_campaign = campaign.banner_campaign
|
|
|
- for sort in banner_campaign:
|
|
|
- banner_campaign[sort]["image"] = s3_url + banner_campaign[sort]["image"]
|
|
|
+ # 轮播图处理
|
|
|
+ banner_campaign_list = campaign.banner_campaign
|
|
|
+ for banner_campaign in banner_campaign_list:
|
|
|
+ banner_campaign["image"] = s3_url + banner_campaign["image"]
|
|
|
+ banner_campaign_dict = {str(index): banner_campaign_list for index, banner_campaign_list in
|
|
|
+ enumerate(banner_campaign_list, start=1)}
|
|
|
campaign_data = {
|
|
|
'id': campaign.id,
|
|
|
'image_url': s3_url + campaign.image_url,
|
|
|
- 'banner_campaign': banner_campaign,
|
|
|
+ 'banner_campaign': banner_campaign_dict,
|
|
|
'campaign_name': campaign.campaign_name,
|
|
|
'campaign_url': campaign.campaign_url,
|
|
|
'campaign_type': campaign.campaign_type,
|
|
@@ -185,7 +188,6 @@ class CampaignView(View):
|
|
|
country_name_list.remove("未知地区")
|
|
|
|
|
|
# 上传文件到S3
|
|
|
-
|
|
|
banner_image_urls = self.upload_files_to_s3(banner_files,
|
|
|
"BannerAdvertise") if banner_files is not None else []
|
|
|
poster_image_url = self.upload_files_to_s3(poster_file,
|
|
@@ -196,13 +198,10 @@ class CampaignView(View):
|
|
|
|
|
|
if banner_image_urls:
|
|
|
campaign_type.append(2)
|
|
|
- banner_campaign = {
|
|
|
- str(index): {"image": image_url, "url": campaign_url}
|
|
|
- for index, (image_url, campaign_url) in
|
|
|
- enumerate(zip(banner_image_urls, banner_campaign_urls), start=1)
|
|
|
- }
|
|
|
+ banner_campaign = [{"image": image_url, "url": campaign_url}
|
|
|
+ for image_url, campaign_url in zip(banner_image_urls, banner_campaign_urls)]
|
|
|
else:
|
|
|
- banner_campaign = {}
|
|
|
+ banner_campaign = []
|
|
|
|
|
|
create_time = int(time.time())
|
|
|
update_time = int(time.time())
|
|
@@ -299,18 +298,18 @@ class CampaignView(View):
|
|
|
# 更改轮播广告图片
|
|
|
if banner_files:
|
|
|
for sort in sort_files:
|
|
|
- if str(sort) in campaign.banner_campaign:
|
|
|
- old_image = campaign.banner_campaign[str(sort)]["image"]
|
|
|
+ if sort <= len(campaign.banner_campaign):
|
|
|
+ old_image = campaign.banner_campaign[sort - 1]["image"]
|
|
|
self.del_file_to_s3(old_image)
|
|
|
else:
|
|
|
- campaign.banner_campaign[str(sort)] = {}
|
|
|
+ campaign.banner_campaign.append({})
|
|
|
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:
|
|
|
- campaign.banner_campaign[str(sort)]["image"] = banner_image_urls[image_num]
|
|
|
+ campaign.banner_campaign[sort - 1]["image"] = banner_image_urls[image_num]
|
|
|
image_num = image_num + 1
|
|
|
|
|
|
if 2 not in campaign.campaign_type:
|
|
@@ -320,18 +319,20 @@ 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 > len(campaign.banner_campaign):
|
|
|
+ campaign.banner_campaign.append({})
|
|
|
if sort not in sort_files:
|
|
|
return response.json(10, "图片需要和链接对应")
|
|
|
- campaign.banner_campaign[str(sort)]["url"] = banner_urls[url_num]
|
|
|
+ campaign.banner_campaign[sort - 1]["url"] = banner_urls[url_num]
|
|
|
url_num = url_num + 1
|
|
|
|
|
|
- # 添加删除列表
|
|
|
+ # 添加删除轮播图列表
|
|
|
if sort_banner_del:
|
|
|
+ sort_banner_del.sort(reverse=True)
|
|
|
for sort in sort_banner_del:
|
|
|
- if str(sort) in campaign.banner_campaign:
|
|
|
- del campaign.banner_campaign[str(sort)]
|
|
|
+ if sort <= len(campaign.banner_campaign):
|
|
|
+ self.del_file_to_s3(campaign.banner_campaign[sort - 1]["image"])
|
|
|
+ campaign.banner_campaign.pop(sort - 1)
|
|
|
if not campaign.banner_campaign:
|
|
|
campaign.campaign_type.remove(2)
|
|
|
|
|
@@ -394,12 +395,12 @@ class CampaignView(View):
|
|
|
campaign = AppAdvertiseCampaign.objects.get(pk=campaign_id)
|
|
|
if campaign.image_url != "":
|
|
|
self.del_file_to_s3(campaign.image_url)
|
|
|
- if campaign.banner_campaign is not {}:
|
|
|
- banner_campaign = []
|
|
|
- for sort in campaign.banner_campaign:
|
|
|
- banner = campaign.banner_campaign[sort]
|
|
|
- banner_campaign.append(banner)
|
|
|
- self.del_file_to_s3(banner_campaign)
|
|
|
+ if campaign.banner_campaign:
|
|
|
+ banner_campaign_list = []
|
|
|
+ for banner_campaign in campaign.banner_campaign:
|
|
|
+ banner = banner_campaign["image"]
|
|
|
+ banner_campaign_list.append(banner)
|
|
|
+ self.del_file_to_s3(banner_campaign_list)
|
|
|
# 清除多对多关系
|
|
|
campaign.device_type.clear()
|
|
|
campaign.country.clear()
|