|
@@ -0,0 +1,222 @@
|
|
|
+#!/usr/bin/python3.6
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+#
|
|
|
+# Copyright (C) 2022 #
|
|
|
+# @Time : 2022/3/9 9:20
|
|
|
+# @Author : ming
|
|
|
+# @Email : zhangdongming@asj6.wecom.work
|
|
|
+# @File : SurveysController.py
|
|
|
+# @Software: PyCharm
|
|
|
+import time
|
|
|
+import json
|
|
|
+from django.utils.decorators import method_decorator
|
|
|
+from django.views.decorators.csrf import csrf_exempt
|
|
|
+from django.views.generic.base import View
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
+from Model.models import Surveys, SurveysTitle, Order_Model, SurveysAnswer
|
|
|
+from Service.CommonService import CommonService
|
|
|
+
|
|
|
+
|
|
|
+class SurveysView(View):
|
|
|
+ @method_decorator(csrf_exempt)
|
|
|
+ def dispatch(self, *args, **kwargs):
|
|
|
+ return super(SurveysView, self).dispatch(*args, **kwargs)
|
|
|
+
|
|
|
+ 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):
|
|
|
+ response = ResponseObject(request_dict.get('language', 'en'), 'pc')
|
|
|
+ tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'), returntpye='pc')
|
|
|
+ if not tko:
|
|
|
+ return response.json(309)
|
|
|
+ if operation == 'get/info':
|
|
|
+ token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
|
|
|
+ response = ResponseObject()
|
|
|
+ if token.code != 0:
|
|
|
+ return response.json(token.code)
|
|
|
+ userID = token.userID
|
|
|
+ return self.check_stock_user(userID, request_dict, response)
|
|
|
+ if operation == 'answer/save':
|
|
|
+ token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
|
|
|
+ response = ResponseObject()
|
|
|
+ if token.code != 0:
|
|
|
+ return response.json(token.code)
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
+ userID = token.userID
|
|
|
+ return self.answer_save(userID, ip, request_dict, response)
|
|
|
+ if operation == 'save':
|
|
|
+ return self.save(request_dict, response)
|
|
|
+ if operation == 'edit':
|
|
|
+ return self.edit(request_dict, response)
|
|
|
+ if operation == 'list':
|
|
|
+ return self.get_list(request_dict, response)
|
|
|
+ if operation == 'title/save':
|
|
|
+ return self.title_save(request_dict, response)
|
|
|
+ if operation == 'title/edit':
|
|
|
+ return self.title_edit(request_dict, response)
|
|
|
+ if operation == 'title/del':
|
|
|
+ return self.title_del(request_dict, response)
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+ def check_stock_user(self, user_id, request_dict, response):
|
|
|
+ order = Order_Model.objects.filter(userID=user_id, status=1, order_type=0)
|
|
|
+ if order.count() == 0:
|
|
|
+ return response.json(10030)
|
|
|
+ try:
|
|
|
+ surveys = Surveys.objects.filter(user_type=1)
|
|
|
+ if not all(surveys):
|
|
|
+ return response.json(173)
|
|
|
+ result = surveys[0]
|
|
|
+ startTime = time.localtime(result.start_time)
|
|
|
+ endTime = time.localtime(result.end_time)
|
|
|
+ data = {
|
|
|
+ 'no': result.no,
|
|
|
+ 'userType': result.user_type,
|
|
|
+ 'startTime': time.strftime("%Y-%m-%d %H:%M:%S", startTime),
|
|
|
+ 'endTime': time.strftime("%Y-%m-%d %H:%M:%S", endTime),
|
|
|
+ 'isHide': result.is_hide,
|
|
|
+ 'page': 'http://192.168.136.198/surveys?token=' if result.is_hide == 1 else ''
|
|
|
+ }
|
|
|
+ return response.json(0, data)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def answer_save(self, userId, ip, request_dict, response):
|
|
|
+ no = request_dict.get('no', None)
|
|
|
+ if not no:
|
|
|
+ return response.json(10, 'no is null')
|
|
|
+ survey = Surveys.objects.filter(id=1)
|
|
|
+ if survey.exists():
|
|
|
+ s_id = survey.id
|
|
|
+ survey_title = SurveysTitle.objects.filter(survey=s_id)
|
|
|
+ if survey_title.exists():
|
|
|
+ score = request_dict.get('score', None)
|
|
|
+ topicA = request_dict.get('topicA', None)
|
|
|
+ topicB = request_dict.get('topicB', None)
|
|
|
+ topicC = request_dict.get('topicC', None)
|
|
|
+ topicD = request_dict.get('topicD', None)
|
|
|
+ topicF = request_dict.get('topicF', None)
|
|
|
+ answer = SurveysAnswer(title=survey_title.id, user=userId, ip=ip, answer_1=score, answer_2=topicA,
|
|
|
+ answer_3=topicB, answer_4=topicC, answer_5=topicD, answer_6=topicF)
|
|
|
+ result = answer.save()
|
|
|
+ print(result)
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+ def get_list(self, request_dict, response):
|
|
|
+ pageNo = request_dict.get('pageNo', None)
|
|
|
+ pageSize = request_dict.get('pageSize', None)
|
|
|
+ if not all([pageNo, pageSize]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ page = int(pageNo)
|
|
|
+ line = int(pageSize)
|
|
|
+ try:
|
|
|
+ request_qs = Surveys.objects.all()
|
|
|
+ total = request_qs.count()
|
|
|
+ surveys_list = request_qs.filter().order_by('-created_time')[(page - 1) * line:page * line]
|
|
|
+ result_list = []
|
|
|
+ for surveys in surveys_list:
|
|
|
+ start_time = time.localtime(surveys.start_time)
|
|
|
+ endT_time = time.localtime(surveys.end_time)
|
|
|
+ created_time = time.localtime(surveys.created_time)
|
|
|
+ result_list.append({
|
|
|
+ 'id': surveys.id,
|
|
|
+ 'no': surveys.no,
|
|
|
+ 'userType': surveys.user_type,
|
|
|
+ 'startTime': time.strftime("%Y-%m-%d %H:%M:%S", start_time),
|
|
|
+ 'endTime': time.strftime("%Y-%m-%d %H:%M:%S", endT_time),
|
|
|
+ 'isHide': surveys.is_hide,
|
|
|
+ 'createdTime': time.strftime("%Y-%m-%d %H:%M:%S", created_time),
|
|
|
+ })
|
|
|
+ return response.json(0, {'list': result_list, 'total': total})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def save(self, request_dict, response):
|
|
|
+ no = request_dict.get('no', None)
|
|
|
+ if no:
|
|
|
+ if Surveys.objects.filter(no=no).exists():
|
|
|
+ return response.json(10, '已存在')
|
|
|
+ no = request_dict.get('no', None)
|
|
|
+ userType = request_dict.get('userType', None)
|
|
|
+ startTime = request_dict.get('dateTime[0]', None)
|
|
|
+ endTime = request_dict.get('dateTime[1]', None)
|
|
|
+ isHide = request_dict.get('isHide', None)
|
|
|
+ isHide = 1 if isHide == 'true' else 0
|
|
|
+ createdTime = int(time.time())
|
|
|
+ try:
|
|
|
+ surveys = Surveys(no=no, user_type=userType, start_time=int(startTime),
|
|
|
+ end_time=endTime, is_hide=isHide, created_time=int(createdTime))
|
|
|
+ surveys.save()
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+ def edit(self, request_dict, response):
|
|
|
+ sur_id = request_dict.get('id', None)
|
|
|
+ if not sur_id:
|
|
|
+ return response.json(10, 'id不存在')
|
|
|
+
|
|
|
+ userType = request_dict.get('userType', None)
|
|
|
+ startTime = request_dict.get('startTime', None)
|
|
|
+ endTime = request_dict.get('endTime', None)
|
|
|
+ isHide = request_dict.get('isHide', None)
|
|
|
+ surveys = Surveys.objects.filter(id=sur_id)
|
|
|
+ surveys.update(user_type=int(userType), start_time=int(startTime), end_time=int(endTime), is_hide=int(isHide))
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+ def delete(self, request_dict, response):
|
|
|
+ sId = request_dict.get('id', None)
|
|
|
+ if not sId:
|
|
|
+ return response.json(10, 'id不存在')
|
|
|
+ Surveys.objects.filter(id=sId).delete()
|
|
|
+ response.json(0)
|
|
|
+
|
|
|
+ def title_save(self, request_dict, response):
|
|
|
+ surveyId = request_dict.get('surveyId', None)
|
|
|
+ if not surveyId:
|
|
|
+ return response(10, 'id不存在')
|
|
|
+ content = request_dict.get('content', None)
|
|
|
+ titleType = request_dict.get('titleType', None)
|
|
|
+ isRequired = request_dict.get('isRequired', None)
|
|
|
+ createdTime = int(time.time())
|
|
|
+ try:
|
|
|
+ surveys_title = SurveysTitle(surveys_id=surveyId, title_content=content, title_type=titleType,
|
|
|
+ is_required=isRequired, created_time=createdTime)
|
|
|
+ surveys_title.save()
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def title_edit(self, request_dict, response):
|
|
|
+ title_id = request_dict.get('id', None)
|
|
|
+ if not title_id:
|
|
|
+ return response.json(10, 'id不存在')
|
|
|
+
|
|
|
+ content = request_dict.get('content', None)
|
|
|
+ titleType = request_dict.get('titleType', None)
|
|
|
+ isRequired = request_dict.get('isRequired', None)
|
|
|
+ surveys_title = SurveysTitle.objects.filter(id=title_id)
|
|
|
+ surveys_title.update(title_content=content, title_type=int(titleType), is_required=int(isRequired))
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+ def title_del(self, request_dict, response):
|
|
|
+ title_id = request_dict.get('id', None)
|
|
|
+ if not title_id:
|
|
|
+ return response.json(10, 'id不存在')
|
|
|
+ SurveysTitle.objects.filter(id=title_id).delete()
|
|
|
+ return response.json(0)
|