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