| 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)))
 
 
  |