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