|
@@ -1,7 +1,8 @@
|
|
|
import time
|
|
|
import json
|
|
|
|
|
|
-from Model.models import AppAdvertiseCampaign, DeviceTypeModel, CountryModel, OpenScreenCampaign
|
|
|
+from Model.models import AppAdvertiseCampaign, DeviceTypeModel, CountryModel, OpenScreenCampaign, UserSetStatus, \
|
|
|
+ Device_User, RegionRestriction
|
|
|
from Ansjer.config import AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, SERVER_TYPE, LOGGER
|
|
|
|
|
|
from django.core.paginator import Paginator
|
|
@@ -32,6 +33,8 @@ class CampaignView(View):
|
|
|
response = ResponseObject(language, 'pc')
|
|
|
if operation == 'getCountryList':
|
|
|
return self.get_country_list(response)
|
|
|
+ elif operation == 'getUserSetStatusList': # 获取用户设置广告状态列表
|
|
|
+ return self.get_user_set_status_list(request_dict, response)
|
|
|
else:
|
|
|
tko = TokenObject(
|
|
|
request.META.get('HTTP_AUTHORIZATION'),
|
|
@@ -51,6 +54,8 @@ class CampaignView(View):
|
|
|
return self.switch_campaign(request_dict, response)
|
|
|
elif operation == 'getUserBehaviorLog': # 获取用户行为日志
|
|
|
return self.get_user_behavior_log(request_dict, response)
|
|
|
+ elif operation == 'setStatus':
|
|
|
+ return self.set_status(request_dict, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -606,37 +611,99 @@ class CampaignView(View):
|
|
|
AWS_SES_ACCESS_REGION = 'us-east-1'
|
|
|
return s3_url, regin, AWS_SES_ACCESS_REGION
|
|
|
|
|
|
-# ,#.
|
|
|
-# .[[[&[[; ,&&,
|
|
|
-# &# ,[;,&; [[[[[[:
|
|
|
-# [[ :[&,&[#;i[[,[,
|
|
|
-# ;#i [ L@$[&[#&[[ .[
|
|
|
-# i[[[[[[ @@$.#[#&$$$ [;
|
|
|
-# ,[,,,;;& i$$ [ @@$ &&
|
|
|
-# [i;,,,;[, [ $$# [[i:#[#
|
|
|
-# [,,,,,,#&. &[, &&[[&[[
|
|
|
-# [,,,,,,,&[[&i[[[#[ [&;,;[[&
|
|
|
-# [,,,,,,,,,&&[&;,,&[[&;[[[,,,,;[[
|
|
|
-# &;,,,,,,,,,,,,,,,;,#[[&,,,;,,;,[[#
|
|
|
-# i[,,,,,,,,,,,,,,,,,,,,,,;,;,,,,[[&:
|
|
|
-# [;,,,,,,,,,,,,,,,,,,,,,&,;,,,,#[[
|
|
|
-# [;,;,,,,,,,,,,,,,,,,,;[,;,,,,;[
|
|
|
-# ;[#;,,,,,,,,,,,,,,,,,i&,,,,,,i[
|
|
|
-# :&[i;,,,,,,,,,,,,,;,[&,;,,,,#[i
|
|
|
-# [[[[i,,,,,,,;,;&[&&&&,,,,,[[[
|
|
|
-# &;[[[[&[[&[&[&&&,,,&[,,,,[[[
|
|
|
-# :&i,;,ii##i;,,,;;,,;;,,;[[i
|
|
|
-# &[[&[[[,;,,,,,,,,,,,,,,,,[[&,
|
|
|
-# &[,,,;[[,,,,,,,,,,,,,,,,;[[&&[[
|
|
|
-# [,,,,[[,;,,,,,,,,,,,,,,,,,,,,;[[
|
|
|
-# [,,;;[;,,,,,,,,,,,,,,,,,,[[;,,,[
|
|
|
-# [i;#[[;,,,,,,,,,,,,,,,,;[[;,,,;[
|
|
|
-# &[,,&#,,,,,,,,,,,,,,,,,,[;;,,,[[
|
|
|
-# [[&&,;,,,,,,,,,,,,,,,,,[;;;[[[
|
|
|
-# [[,;,,,,,,,,,,,,,,,,,[#;#&
|
|
|
-# &[,,,,,,,,,,,,,,,,,,,,[[[&
|
|
|
-# [,,,,,,,,,,,,,,,,,,,,,,[[[
|
|
|
-# [,,,,,,,,,,,,,,,,,,;,,;[[:
|
|
|
-# &;,,,,,,,,,,,,,,,,,;,,,;[
|
|
|
-# 鳄鱼保佑
|
|
|
-# 代码无BUG!
|
|
|
+ @staticmethod
|
|
|
+ def set_status(request_dict, response):
|
|
|
+ """
|
|
|
+ 编辑状态
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ user_status_id = request_dict.get("userStatusId", None)
|
|
|
+ user_id = request_dict.get("userID", None)
|
|
|
+ email = request_dict.get("email", None)
|
|
|
+ phone = request_dict.get("phone", None)
|
|
|
+ username = request_dict.get("username", None)
|
|
|
+ status = request_dict.get("status", None)
|
|
|
+ now_time = int(time.time())
|
|
|
+ if user_status_id and status:
|
|
|
+ UserSetStatus.objects.filter(pk=user_status_id).update(status=status)
|
|
|
+ elif user_id or email or phone or username:
|
|
|
+ region_restriction = RegionRestriction.objects.filter(statusName="splashAdSwitchStatus").first()
|
|
|
+ status = region_restriction.default_status if region_restriction else None
|
|
|
+ user = Device_User.objects.filter(
|
|
|
+ Q(userID=user_id) | Q(userEmail=email) | Q(phone=phone) | Q(username=username)).first()
|
|
|
+ if user:
|
|
|
+ if UserSetStatus.objects.filter(user_id=user.userID).exists():
|
|
|
+ return response.json(174)
|
|
|
+ UserSetStatus.objects.create(user_id=user.userID, status=status,
|
|
|
+ region_restriction_id=region_restriction,
|
|
|
+ created_time=now_time, updated_time=now_time)
|
|
|
+ else:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def get_user_set_status_list(request_dict, response):
|
|
|
+ """
|
|
|
+ 获取状态列表
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ user_id = request_dict.get("userID", None)
|
|
|
+ email = request_dict.get("email", None)
|
|
|
+ phone = request_dict.get("phone", None)
|
|
|
+ username = request_dict.get("username", None)
|
|
|
+ page = int(request_dict.get("page", 1))
|
|
|
+ page_size = int(request_dict.get("pageSize", 10))
|
|
|
+
|
|
|
+ region_restriction = RegionRestriction.objects.filter(statusName="splashAdSwitchStatus").first()
|
|
|
+ user_set_qs = UserSetStatus.objects.filter(region_restriction_id=region_restriction)
|
|
|
+
|
|
|
+ if user_id:
|
|
|
+ user_set_qs = user_set_qs.filter(user_id=user_id)
|
|
|
+
|
|
|
+ if email:
|
|
|
+ user = Device_User.objects.filter(userEmail=email).first()
|
|
|
+ if user:
|
|
|
+ user_set_qs = user_set_qs.filter(user_id=user.userID)
|
|
|
+
|
|
|
+ if phone:
|
|
|
+ user = Device_User.objects.filter(phone=phone).first()
|
|
|
+ if user:
|
|
|
+ user_set_qs = user_set_qs.filter(user_id=user.userID)
|
|
|
+
|
|
|
+ if username:
|
|
|
+ user = Device_User.objects.filter(username=username).first()
|
|
|
+ if user:
|
|
|
+ user_set_qs = user_set_qs.filter(user_id=user.userID)
|
|
|
+
|
|
|
+ if not user_set_qs.exists():
|
|
|
+ return response.json(0, {'list': [], 'total': 0})
|
|
|
+
|
|
|
+ total_count = user_set_qs.count()
|
|
|
+ user_set_paginated = user_set_qs[(page - 1) * page_size:page * page_size]
|
|
|
+
|
|
|
+ user_set_list = []
|
|
|
+ for user_set in user_set_paginated:
|
|
|
+ status_name = user_set.region_restriction_id.statusName
|
|
|
+ user = Device_User.objects.filter(userID=user_set.user_id).first()
|
|
|
+ user_set_list.append({
|
|
|
+ 'userSetId': user_set.id,
|
|
|
+ 'userID': user_set.user_id,
|
|
|
+ 'statusName': status_name,
|
|
|
+ 'setStatus': user_set.status,
|
|
|
+ 'username': user.username,
|
|
|
+ 'phone': user.phone,
|
|
|
+ 'email': user.userEmail,
|
|
|
+ 'createdTime': user_set.created_time,
|
|
|
+ 'updatedTime': user_set.updated_time,
|
|
|
+ })
|
|
|
+
|
|
|
+ return response.json(0, {
|
|
|
+ 'list': user_set_list,
|
|
|
+ 'total': total_count,
|
|
|
+ })
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|