123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- import time
- from Model.models import Device_User, RegionRestriction, UserSetStatus
- from django.views import View
- from django.db.models import Q
- from Object.ResponseObject import ResponseObject
- from Object.TokenObject import TokenObject
- class CampaignView(View):
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation')
- request_dict = request.GET
- return self.validation(request_dict, request, operation)
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation')
- request_dict = request.POST
- return self.validation(request_dict, request, operation)
- def validation(self, request_dict, request, operation):
- language = request_dict.get('language', 'en')
- response = ResponseObject(language, 'pc')
- if operation == 'getUserSetStatusList': # 获取用户设置广告状态列表
- return self.get_user_set_status_list(request_dict, response)
- else:
- tko = TokenObject(
- request.META.get('HTTP_AUTHORIZATION'),
- returntpye='pc')
- if tko.code != 0:
- return response.json(tko.code)
- response.lang = tko.lang
- if operation == 'setStatus':
- return self.set_status(request_dict, response)
- else:
- return response.json(414)
- @staticmethod
- def set_status(request_dict, response):
- """
- 编辑状态
- """
- try:
- user_status_id = request_dict.get("userSetId", 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 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=username) | Q(userEmail=username) | Q(phone=username) | Q(username=username)).first()
- if user:
- if UserSetStatus.objects.filter(user_id=user.userID, region_restriction_id=region_restriction).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(173)
- 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)))
|