|
@@ -0,0 +1,109 @@
|
|
|
+#!/usr/bin/env python3
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+"""
|
|
|
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
|
|
|
+@AUTHOR: ASJRD018
|
|
|
+@NAME: AnsjerFormal
|
|
|
+@software: PyCharm
|
|
|
+@DATE: 2024年7月29日15:51:04
|
|
|
+@Version: python3.6
|
|
|
+@MODIFY DECORD:ansjer dev
|
|
|
+"""
|
|
|
+import time
|
|
|
+
|
|
|
+from django.views.generic.base import View
|
|
|
+from Model.models import FreeEvaluationActivity, ActivityTime, ActivityUser
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
+from Service.CommonService import CommonService
|
|
|
+
|
|
|
+
|
|
|
+class EvaluationActivityView(View):
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation')
|
|
|
+ return self.validation(request.GET, request, operation)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation')
|
|
|
+ return self.validation(request.POST, request, operation)
|
|
|
+
|
|
|
+ def validation(self, request_dict, request, operation):
|
|
|
+ language = request_dict.get('language', 'en')
|
|
|
+ response = ResponseObject(language, 'pc')
|
|
|
+ tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'), returntpye='pc')
|
|
|
+ if tko.code != 0:
|
|
|
+ return response.json(tko.code)
|
|
|
+ response.lang = tko.lang
|
|
|
+ user_id = tko.userID
|
|
|
+ if operation == 'getActivity':
|
|
|
+ return self.get_activity(user_id, request_dict, response)
|
|
|
+ elif operation == 'addActivityUser':
|
|
|
+ return self.add_activity_user(user_id, request_dict, response)
|
|
|
+ else:
|
|
|
+ return response.json(404)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def get_activity(user_id, request_dict, response):
|
|
|
+ try:
|
|
|
+ now_time = int(time.time())
|
|
|
+ activity_qs = FreeEvaluationActivity.objects.filter(is_show=1).values('activity_name', 'carousel_image_url',
|
|
|
+ 'details_image_url', 'issue', 'id',
|
|
|
+ 'product_number', 'original_price')
|
|
|
+ if activity_qs.exists():
|
|
|
+ activity = activity_qs[0]
|
|
|
+ time_qs = ActivityTime.objects.filter(activity_id=activity['id']).values('node_content', 'start_time',
|
|
|
+ 'end_time').order_by('sort')
|
|
|
+ activity['activity_start_time'] = time_qs.first()['start_time']
|
|
|
+ activity['activity_end_time'] = time_qs.last()['end_time']
|
|
|
+ activity['activity_process'] = list(time_qs)
|
|
|
+ user_qs = ActivityUser.objects.filter(activity_id=activity['id'])
|
|
|
+ if user_qs.exists():
|
|
|
+ user = user_qs.filter(user_id=user_id)
|
|
|
+ if user.exists():
|
|
|
+ activity['activity_status'] = 2 # 1:可报名;2:已报名;3:报名截止;4:活动结束
|
|
|
+ else:
|
|
|
+ activity['activity_status'] = 1
|
|
|
+ user_qs = user_qs.filter(is_selected=1).values('user_name', 'phone')
|
|
|
+ activity['activity_user'] = list(user_qs)
|
|
|
+ else:
|
|
|
+ activity['activity_status'] = 1
|
|
|
+ activity['activity_user'] = []
|
|
|
+ if now_time > time_qs.first()['end_time']:
|
|
|
+ activity['activity_status'] = 3
|
|
|
+ if now_time > time_qs.last()['end_time']:
|
|
|
+ activity['activity_status'] = 4
|
|
|
+ return response.json(0, activity)
|
|
|
+ else:
|
|
|
+ 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 add_activity_user(user_id, request_dict, response):
|
|
|
+ activity_id = request_dict.get('activity_id', None)
|
|
|
+ user_name = request_dict.get('user_name', None)
|
|
|
+ phone = request_dict.get('phone', None)
|
|
|
+ address = request_dict.get('address', None)
|
|
|
+ sex = request_dict.get('sex', None)
|
|
|
+ age = request_dict.get('age', None)
|
|
|
+ usage_environment = request_dict.get('usage_environment', None)
|
|
|
+ is_reports = request_dict.get('is_reports', None)
|
|
|
+
|
|
|
+ if not all([activity_id, user_name, phone, address, sex, age, usage_environment, is_reports]):
|
|
|
+ return response.json(404)
|
|
|
+ now_time = int(time.time())
|
|
|
+ try:
|
|
|
+ user = ActivityUser.objects.filter(user_id=user_id)
|
|
|
+ if user.exists():
|
|
|
+ user.update(activity_id=activity_id, phone=phone, address=address, sex=sex, user_name=user_name,
|
|
|
+ age=age, usage_environment=usage_environment, is_reports=is_reports,
|
|
|
+ update_time=now_time)
|
|
|
+ else:
|
|
|
+ ActivityUser.objects.create(activity_id=activity_id, user_id=user_id, phone=phone, address=address,
|
|
|
+ sex=sex, age=age, usage_environment=usage_environment, user_name=user_name,
|
|
|
+ is_reports=is_reports, created_time=now_time, update_time=now_time)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|