# #!/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, CloudVodSurveysAnswer, Device_User # from Service.CommonService import CommonService # import logging # # # 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): # logger = logging.getLogger('info') # token = TokenObject(request.META.get('HTTP_AUTHORIZATION')) # response = ResponseObject() # if token.code != 0: # return response.json(token.code) # userID = token.userID # # ''' API ''' # logger.info('this user id:{},dict{}'.format(userID, request_dict)) # if operation == 'get/info': # return self.check_stock_user(userID, request_dict, response) # if operation == 'cloud/answer/save': # ip = CommonService.get_ip_address(request) # return self.answer_save(userID, ip, request_dict, response) # # ''' 后台管理''' # response = ResponseObject(returntype='pc') # if operation == 'save': # return self.save(request_dict, response) # if operation == 'edit': # return self.edit(request_dict, response) # if operation == 'list': # return self.get_page(request_dict, response) # if operation == 'title/list': # return self.get_title_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) # if operation == 'cloud/vod/answer/page': # return self.cloud_surveys_answer_page(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: # no = '01' # surveys = Surveys.objects.filter(no=no, user_type=1) # if not all(surveys): # return response.json(173) # result = surveys[0] # surveys_title = SurveysTitle.objects.filter(surveys_id=result.id).order_by('-created_time') # submit = 0 # if surveys_title.exists(): # surveys_title = surveys_title[0] # cloud_vod = CloudVodSurveysAnswer.objects.filter(title_id=surveys_title.id, user_id=user_id) # if cloud_vod.exists(): # submit = 1 # data = { # 'no': result.no, # 'title': 'Zosi Cloud Storage', # 'img': '', # 'userType': result.user_type, # 'startTime': result.start_time, # 'endTime': result.end_time, # 'isShow': result.is_show, # 'isSubmit': submit, # 'page': '/surveys?token=' if result.is_show == 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): # try: # ipInfo = CommonService.getIpIpInfo(ip, "CN") # country_name = ipInfo['country_name'] # no = request_dict.get('no', None) # if not no: # return response.json(10, 'no is null') # survey = Surveys.objects.filter(no=no) # if survey.exists(): # survey = survey[0] # survey_title = SurveysTitle.objects.filter(surveys=survey.id) # if survey_title.exists(): # survey_title = survey_title[0] # cloud_vod = CloudVodSurveysAnswer.objects.filter(title_id=survey_title.id, user_id=userId) # if cloud_vod.exists(): # return response.json(10, "Do not submit twice") # 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) # createdTime = int(time.time()) # answer = CloudVodSurveysAnswer(title_id=survey_title.id, user_id=userId, ip=ip, answer1=int(score), # answer2=topicA, # answer3=topicB, answer4=topicC, answer5=topicD, answer6=topicF, # created_time=createdTime, country_name=country_name) # answer.save() # return response.json(0) # except Exception as e: # print(e) # return response.json(500, repr(e)) # # def get_page(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), # 'isShow': surveys.is_show, # '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) # isShow = request_dict.get('isShow', None) # isShow = 1 if isShow == 'true' else 0 # createdTime = int(time.time()) # try: # surveys = Surveys(no=no, user_type=userType, start_time=int(startTime), # end_time=endTime, is_show=isShow, 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('dateTime[0]', None) # endTime = request_dict.get('dateTime[1]', None) # isShow = request_dict.get('isShow', None) # isShow = 1 if isShow == 'true' else 0 # print(endTime) # Surveys.objects.filter(id=int(sur_id)).update(user_type=int(userType), start_time=int(startTime), # end_time=int(endTime), # is_show=int(isShow)) # 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, 'surveyId is null') # t_id = request_dict.get('id', None) # content = request_dict.get('content', None) # createdTime = int(time.time()) # try: # title = SurveysTitle.objects.filter(id=t_id) # if title.exists(): # title.update(title_content=content) # else: # surveys_title = SurveysTitle(surveys_id=surveyId, title_content=content # , created_time=createdTime) # surveys_title.save() # return response.json(0) # except Exception as e: # print(e) # return response.json(500, repr(e)) # # def get_title_list(self, request_dict, response): # surveyId = request_dict.get('surveyId', None) # info = request_dict.get('info', None) # if not surveyId: # return response.json(10, '问卷id不存在') # title_list = SurveysTitle.objects.filter(surveys_id=surveyId).order_by('-created_time') # if not title_list.exists(): # if info: # return response.json(0, {'id': None, 'content': None}) # return response.json(173) # content = title_list[0] # if info: # return response.json(0, {'id': content.id, 'content': content.title_content}) # data = json.loads(content.title_content) # return response.json(0, {'answers': data}) # # 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) # surveys_title = SurveysTitle.objects.filter(surveys_id=title_id) # surveys_title.update(title_content=content) # 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) # # def cloud_surveys_answer_page(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 = CloudVodSurveysAnswer.objects.all() # total = request_qs.count() # answer_page = request_qs.filter().order_by('-created_time')[(page - 1) * line:page * line] # result_list = [] # for answer in answer_page: # d_user = Device_User.objects.filter(userID=answer.user_id) # if not all(d_user): # return response.json(173) # d_user = d_user[0] # created_time = time.localtime(answer.created_time) # result_list.append({ # 'id': answer.id, # 'uId': d_user.userID, # 'uName': d_user.username, # 'nickName': d_user.NickName, # 'answer1': answer.answer_1, # 'answer2': answer.answer_2, # 'answer3': answer.answer_3, # 'answer4': answer.answer_4, # 'answer5': answer.answer_5, # 'answer6': answer.answer_6, # '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))