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