peng 1 год назад
Родитель
Сommit
123c5cd864
3 измененных файлов с 114 добавлено и 2 удалено
  1. 109 0
      AdminController/EvaluationActivityController.py
  2. 4 1
      Ansjer/urls.py
  3. 1 1
      Model/models.py

+ 109 - 0
AdminController/EvaluationActivityController.py

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

+ 4 - 1
Ansjer/urls.py

@@ -5,7 +5,7 @@ from django.urls import re_path
 from AdminController import UserManageController, RoleController, MenuController, TestServeController, \
     ServeManagementController, LogManagementController, DeviceManagementController, VersionManagementController, \
     AiServeController, SurveysManageController, SerialManageController, IcloudManagementController, CampaignController, \
-    MessageMangementController
+    MessageMangementController, EvaluationActivityController
 from AdminController.CloudServiceManage import AgentDeviceController, AgentCustomerController, AgentOrderController
 from Controller import FeedBack, EquipmentOTA, EquipmentInfo, AdminManage, AppInfo, \
     Test, MealManage, DeviceManage, EquipmentStatus, SysManage, DeviceLog, LogAccess, \
@@ -63,6 +63,7 @@ urlpatterns = [
     re_path('accounts', AdminManage.search_user_by_content),  # 多条件搜索用户信息admin
     re_path(r'^account/shareUserEquipment$', shareUserPermission.shareUserEquipmentView.as_view()),
     re_path(r'^account/unsharedUserEquipment$', shareUserPermission.unsharedUserEquipmentView.as_view()),
+    re_path(r'^equipment/sharePermission/(?P<operation>.*)$', shareUserPermission.SharePermissionsView.as_view()),
     re_path(r'^response/success$', UserManger.success),
     re_path(r'^equipment/queryUserEquipment$', EquipmentManager.queryUserEquipmentInterface),
     re_path(r'^equipment/addNewUserEquipment$', EquipmentManager.addNewUserEquipmentInterface),
@@ -320,6 +321,8 @@ urlpatterns = [
     re_path('campaign/(?P<operation>.*)', CampaignController.CampaignView.as_view()),
     # 查询消息推送模块
     re_path('messageManagement/(?P<operation>.*)', MessageMangementController.MassageView.as_view()),
+    # 新品体验官
+    re_path('activityManagement/(?P<operation>.*)', EvaluationActivityController.EvaluationActivityView.as_view()),
     # 后台界面接口 -------------------------------------------------------------------------------------------------------
 
     # 定时任务接口

+ 1 - 1
Model/models.py

@@ -5184,7 +5184,7 @@ class ActivityUser(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     activity_id = models.IntegerField(default=0, verbose_name='关联活动id')
     user_id = models.CharField(default='', max_length=32, verbose_name='关联用户id')
-    user_name = models.CharField(default='', max_length=10, verbose_name='用户名')
+    user_name = models.CharField(default='', max_length=15, verbose_name='用户名')
     phone = models.CharField(default='', max_length=15, verbose_name='手机号')
     address = models.CharField(default='', max_length=50, verbose_name='用户地址')
     sex = models.SmallIntegerField(verbose_name='性别', default=0)  # 0:女;1:男