소스 검색

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

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
 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 +57,8 @@ 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, request_dict, response)
         else:
         else:
             return response.json(404)
             return response.json(404)
 
 
@@ -320,3 +325,60 @@ 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, 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_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_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'

+ 3 - 0
Model/models.py

@@ -5262,6 +5262,9 @@ 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:入选
     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)