zhangdongming vor 2 Monaten
Ursprung
Commit
0d155b20ce
3 geänderte Dateien mit 98 neuen und 14 gelöschten Zeilen
  1. 92 14
      AdminController/EvaluationActivityController.py
  2. 2 0
      Ansjer/config.py
  3. 4 0
      Model/models.py

+ 92 - 14
AdminController/EvaluationActivityController.py

@@ -1,24 +1,17 @@
-#!/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 os
 import time
 import time
 
 
 from django.views.generic.base import View
 from django.views.generic.base import View
+from obs import ObsClient
+
 from Model.models import FreeEvaluationActivity, ActivityTime, ActivityUser, Device_User
 from Model.models import FreeEvaluationActivity, ActivityTime, ActivityUser, Device_User
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Object.Enums.RedisKeyConstant import RedisKeyConstant
 from Object.Enums.RedisKeyConstant import RedisKeyConstant
 from Object.RedisObject import RedisObject
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
-from Ansjer.config import SERVER_DOMAIN, LOGGER
+from Ansjer.config import SERVER_DOMAIN, LOGGER, HUAWEICLOUD_AK, HUAWEICLOUD_SK, HUAWEICLOUD_OBS_SERVER, \
+    HUAWEICLOUD_SERVER_BUKET
 from Ansjer.cn_config.config_formal import SECRET_ACCESS_KEY, ACCESS_KEY_ID, REGION_NAME
 from Ansjer.cn_config.config_formal import SECRET_ACCESS_KEY, ACCESS_KEY_ID, REGION_NAME
 from django.db import transaction
 from django.db import transaction
 
 
@@ -54,6 +47,10 @@ class EvaluationActivityView(View):
             return self.add_activity_user(user_id, request_dict, response)
             return self.add_activity_user(user_id, request_dict, response)
         elif operation == 'editActivityUser':
         elif operation == 'editActivityUser':
             return self.edit_activity_user(request_dict, response)
             return self.edit_activity_user(request_dict, response)
+        elif operation == 'addStoryCollectionUser':     # 新增故事征集客户信息
+            return self.add_story_collection_user(user_id, request_dict, response)
+        elif operation == 'addStoryCollectionUserSuccess':     # 新增故事征集客户信息成功回调
+            return self.add_story_collection_user_success(user_id, request_dict, response)
         else:
         else:
             return response.json(404)
             return response.json(404)
 
 
@@ -79,9 +76,12 @@ class EvaluationActivityView(View):
                 user_qs = ActivityUser.objects.filter(activity_id=activity['id'])
                 user_qs = ActivityUser.objects.filter(activity_id=activity['id'])
                 activity['user_count'] = user_qs.count()
                 activity['user_count'] = user_qs.count()
                 if user_qs.exists():
                 if user_qs.exists():
-                    user = user_qs.filter(user_id=user_id)
+                    user = user_qs.filter(user_id=user_id).values('registration_status')
                     if user.exists():
                     if user.exists():
-                        activity['activity_status'] = 2  # 1:可报名;2:已报名;3:报名截止;4:活动结束
+                        if user[0]['registration_status']:
+                            activity['activity_status'] = 2  # 1:可报名;2:已报名;3:报名截止;4:活动结束
+                        else:
+                            activity['activity_status'] = 1
                     else:
                     else:
                         activity['activity_status'] = 1
                         activity['activity_status'] = 1
                     user_qs = user_qs.filter(is_selected=1).values('user_name', 'phone', 'user_id')
                     user_qs = user_qs.filter(is_selected=1).values('user_name', 'phone', 'user_id')
@@ -320,3 +320,81 @@ class EvaluationActivityView(View):
             return response.json(0)
             return response.json(0)
         except Exception as e:
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
+    @staticmethod
+    def add_story_collection_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)
+        story = request_dict.get('story', None)
+        file_name_list = request_dict.get('file_name_list')
+
+        if not all([activity_id, user_name, phone, address, sex, age, usage_environment, story]):
+            return response.json(404)
+        now_time = int(time.time())
+        try:
+            data = {
+                'user_name': user_name,
+                'phone': phone,
+                'address': address,
+                'sex': sex,
+                'age': age,
+                'story': story,
+                'usage_environment': usage_environment,
+                'update_time': now_time
+            }
+
+            signed_url = []
+            # 如果上传文件,生成华为云OBS上传链接
+            if file_name_list:
+                # 报名状态暂时设置为不成功
+                data['registration_status'] = 0
+                obs_client = ObsClient(
+                    access_key_id=HUAWEICLOUD_AK,
+                    secret_access_key=HUAWEICLOUD_SK,
+                    server=HUAWEICLOUD_OBS_SERVER
+                )
+                file_name_list = eval(file_name_list)
+                for index, file_name in enumerate(file_name_list):
+                    file_name = str(index) + os.path.splitext(file_name)[1]
+                    file_name = 'story-collection/{}/{}'.format(user_id, file_name)
+                    if index == 0:
+                        data['file_1_name'] = file_name
+                    else:
+                        data['file_2_name'] = file_name
+
+                    res = obs_client.createSignedUrl(
+                        method='PUT', bucketName=HUAWEICLOUD_SERVER_BUKET, objectKey=file_name, expires=3600
+                    )
+                    signed_url.append(res.signedUrl)
+
+            user = ActivityUser.objects.filter(user_id=user_id, activity_id=activity_id)
+            if user.exists():
+                user.update(**data)
+            else:
+                data['activity_id'] = activity_id
+                data['user_id'] = user_id
+                data['created_time'] = now_time
+                ActivityUser.objects.create(**data)
+            if signed_url:
+                res = {
+                    'signed_url': signed_url
+                }
+                return response.json(0, res)
+            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_story_collection_user_success(user_id, request_dict, response):
+        activity_id = request_dict.get('activity_id', None)
+        try:
+            ActivityUser.objects.filter(user_id=user_id, activity_id=activity_id).update(registration_status=1)
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))

+ 2 - 0
Ansjer/config.py

@@ -50,6 +50,8 @@ HUAWEICLOUD_AK = 'TN9T7ZPN3QRBBQ9NQHNB'
 HUAWEICLOUD_SK = 'rIlTBJ85MUC1WNLyJBZM2077HTsQ0qJaJf4IpTjU'
 HUAWEICLOUD_SK = 'rIlTBJ85MUC1WNLyJBZM2077HTsQ0qJaJf4IpTjU'
 HUAWEICLOUD_OBS_SERVER = 'https://obs.cn-east-3.myhuaweicloud.com'
 HUAWEICLOUD_OBS_SERVER = 'https://obs.cn-east-3.myhuaweicloud.com'
 HUAWEICLOUD_PUSH_BUKET = 'asj-push'
 HUAWEICLOUD_PUSH_BUKET = 'asj-push'
+HUAWEICLOUD_BAIDU_BIG_MODEL_LICENSE_BUKET = 'baidu-big-model-license'
+HUAWEICLOUD_SERVER_BUKET = 'asj-server'
 
 
 # 阿里云AccessKey和AccessKeySecret
 # 阿里云AccessKey和AccessKeySecret
 ALI_ACCESS_KEY_ID = 'LTAI5t9BXQWTPfBEh2Qu8YNA'
 ALI_ACCESS_KEY_ID = 'LTAI5t9BXQWTPfBEh2Qu8YNA'

+ 4 - 0
Model/models.py

@@ -5088,7 +5088,11 @@ class ActivityUser(models.Model):
     age = models.SmallIntegerField(verbose_name='年龄', default=0)
     age = models.SmallIntegerField(verbose_name='年龄', default=0)
     usage_environment = models.CharField(default='', max_length=50, verbose_name='使用环境')
     usage_environment = models.CharField(default='', max_length=50, verbose_name='使用环境')
     is_reports = models.SmallIntegerField(verbose_name='是否输出过体验报告', default=0)  # 0:未输出;1:输出过
     is_reports = models.SmallIntegerField(verbose_name='是否输出过体验报告', default=0)  # 0:未输出;1:输出过
+    story = models.CharField(default='', max_length=800, verbose_name='故事')
+    file_1_name = models.CharField(default='', max_length=128, verbose_name='图片/视频文件名')
+    file_2_name = models.CharField(default='', max_length=128, verbose_name='图片/视频文件名')
     is_selected = models.SmallIntegerField(verbose_name='是否入选', default=0)  # 0:未入选;1:入选
     is_selected = models.SmallIntegerField(verbose_name='是否入选', default=0)  # 0:未入选;1:入选
+    registration_status = models.SmallIntegerField(verbose_name='报名状态', default=1)  # 0:报名失败;1:报名成功
     created_time = models.IntegerField(verbose_name='创建时间', default=0)
     created_time = models.IntegerField(verbose_name='创建时间', default=0)
     update_time = models.IntegerField(verbose_name='更新时间', default=0)
     update_time = models.IntegerField(verbose_name='更新时间', default=0)