|
@@ -0,0 +1,135 @@
|
|
|
|
+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)))
|