#!/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, Device_User, Order_Model, SurveysUserLog from django.db import connection class SurveysUserLogView(View): @method_decorator(csrf_exempt) def dispatch(self, *args, **kwargs): return super(SurveysUserLogView, 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): token = TokenObject(request.META.get('HTTP_AUTHORIZATION')) response = ResponseObject(returntype='pc') if token.code != 0: return response.json(token.code) if operation == 'page': return self.get_page(request_dict, response) return response.json(0) 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) try: page = int(pageNo) size = int(pageSize) cursor = connection.cursor() sql = 'SELECT o.orderID,o.userID_id,ca.id,ca.country_name as countryName ' sql += 'FROM orders o LEFT JOIN cloud_vod_surveys_answer ca ON o.userID_id = ca.user_id ' sql += ' WHERE o.status = %s AND o.order_type = %s GROUP BY o.userID_id ' cursor.execute(sql, [1, 0, ]) cloud_count = cursor.fetchall() total = len(cloud_count) sql += 'order by ca.created_time DESC,orderID DESC LIMIT %s,%s ' cursor.execute(sql, [1, 0, ((page - 1) * size), size, ]) data_obj = cursor.fetchall() cursor.close() # 执行完,关闭 connection.close() result_list = [] col_names = [desc[0] for desc in cursor.description] for item in data_obj: tMap = dict(zip(col_names, item)) user_id = tMap['userID_id'] d_user = Device_User.objects.filter(userID=user_id) tMap['uName'] = d_user[0].username tMap['nickName'] = d_user[0].NickName tMap.update({"type": 1}) survey_log_qs = SurveysUserLog.objects.filter(user_id=user_id) if survey_log_qs.exists(): survey_log = survey_log_qs[0] created_time = time.localtime(survey_log.created_time) tMap.update({"type": survey_log.type}) tMap.update({"isFilled": survey_log.is_filled}) tMap['createdTime'] = time.strftime("%Y-%m-%d %H:%M:%S", created_time), tMap.update({"isUpgrade": 1}) else: tMap.update({"isFilled": 0}) tMap.update({"createdTime": ''}) tMap.update({"isUpgrade": 0}) result_list.append(tMap) return response.json(0, {'list': result_list, 'total': total}) except Exception as e: print(e) return response.json(500, repr(e))