#!/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)))