浏览代码

新增故事征集客户信息接口

locky 2 月之前
父节点
当前提交
ad57b1c864
共有 3 个文件被更改,包括 67 次插入1 次删除
  1. 63 1
      AdminController/EvaluationActivityController.py
  2. 1 0
      Ansjer/config.py
  3. 3 0
      Model/models.py

+ 63 - 1
AdminController/EvaluationActivityController.py

@@ -12,13 +12,16 @@
 import time
 
 from django.views.generic.base import View
+from obs import ObsClient
+
 from Model.models import FreeEvaluationActivity, ActivityTime, ActivityUser, Device_User
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Object.Enums.RedisKeyConstant import RedisKeyConstant
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 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 django.db import transaction
 
@@ -54,6 +57,8 @@ class EvaluationActivityView(View):
             return self.add_activity_user(user_id, request_dict, response)
         elif operation == 'editActivityUser':
             return self.edit_activity_user(request_dict, response)
+        elif operation == 'addStoryCollectionUser':     # 新增故事征集客户信息
+            return self.add_story_collection_user(user_id, request, request_dict, response)
         else:
             return response.json(404)
 
@@ -320,3 +325,60 @@ class EvaluationActivityView(View):
             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(user_id, request, 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_1 = request.FILES.get('file_1', None)
+        file_2 = request.FILES.get('file_2', None)
+
+        if not all([activity_id, user_name, phone, address, sex, age, usage_environment, story]):
+            return response.json(404)
+        now_time = int(time.time())
+        try:
+            file_1_name, file_2_name = '', ''
+            if file_2:
+                file_2_name = str(file_2)
+            # 上传文件到华为云OBS
+            obs_client = ObsClient(
+                access_key_id=HUAWEICLOUD_AK,
+                secret_access_key=HUAWEICLOUD_SK,
+                server=HUAWEICLOUD_OBS_SERVER
+            )
+            if file_1:
+                file_1_name = '{}/story-collection/{}'.format(user_id, str(file_1))
+                resp = obs_client.putObject(
+                    bucketName=HUAWEICLOUD_SERVER_BUKET,
+                    objectKey=file_1_name,
+                    content=file_1
+                )
+                assert resp.status < 300
+            if file_2:
+                file_2_name = '{}/story-collection/{}'.format(user_id, str(file_2))
+                resp = obs_client.putObject(
+                    bucketName=HUAWEICLOUD_SERVER_BUKET,
+                    objectKey=file_2_name,
+                    content=file_2
+                )
+                assert resp.status < 300
+
+            user = ActivityUser.objects.filter(user_id=user_id, activity_id=activity_id)
+            if user.exists():
+                user.update(phone=phone, address=address, sex=sex, user_name=user_name, story=story, age=age,
+                            usage_environment=usage_environment, file_1_name=file_1_name, file_2_name=file_2_name,
+                            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,
+                                            story=story, file_1_name=file_1_name, file_2_name=file_2_name,
+                                            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)))

+ 1 - 0
Ansjer/config.py

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

+ 3 - 0
Model/models.py

@@ -5262,6 +5262,9 @@ class ActivityUser(models.Model):
     age = models.SmallIntegerField(verbose_name='年龄', default=0)
     usage_environment = models.CharField(default='', max_length=50, verbose_name='使用环境')
     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:入选
     created_time = models.IntegerField(verbose_name='创建时间', default=0)
     update_time = models.IntegerField(verbose_name='更新时间', default=0)