123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- #!/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)
|