SurveysUserLogController.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/usr/bin/python3.6
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Copyright (C) 2022 #
  5. # @Time : 2022/3/9 9:20
  6. # @Author : ming
  7. # @Email : zhangdongming@asj6.wecom.work
  8. # @File : SurveysController.py
  9. # @Software: PyCharm
  10. import time
  11. import json
  12. from django.utils.decorators import method_decorator
  13. from django.views.decorators.csrf import csrf_exempt
  14. from django.views.generic.base import View
  15. from Object.TokenObject import TokenObject
  16. from Object.ResponseObject import ResponseObject
  17. from Model.models import Surveys, Device_User, Order_Model, SurveysUserLog
  18. from django.db import connection
  19. class SurveysUserLogView(View):
  20. @method_decorator(csrf_exempt)
  21. def dispatch(self, *args, **kwargs):
  22. return super(SurveysUserLogView, self).dispatch(*args, **kwargs)
  23. def get(self, request, *args, **kwargs):
  24. request.encoding = 'utf-8'
  25. operation = kwargs.get('operation')
  26. return self.validation(request.GET, request, operation)
  27. def post(self, request, *args, **kwargs):
  28. request.encoding = 'utf-8'
  29. operation = kwargs.get('operation')
  30. return self.validation(request.POST, request, operation)
  31. def validation(self, request_dict, request, operation):
  32. token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
  33. response = ResponseObject(returntype='pc')
  34. if token.code != 0:
  35. return response.json(token.code)
  36. if operation == 'page':
  37. return self.get_page(request_dict, response)
  38. return response.json(0)
  39. def get_page(self, request_dict, response):
  40. pageNo = request_dict.get('pageNo', None)
  41. pageSize = request_dict.get('pageSize', None)
  42. if not all([pageNo, pageSize]):
  43. return response.json(444)
  44. try:
  45. page = int(pageNo)
  46. size = int(pageSize)
  47. cursor = connection.cursor()
  48. sql = 'SELECT o.orderID,o.userID_id,ca.id,ca.country_name as countryName '
  49. sql += 'FROM orders o LEFT JOIN cloud_vod_surveys_answer ca ON o.userID_id = ca.user_id '
  50. sql += ' WHERE o.status = %s AND o.order_type = %s GROUP BY o.userID_id '
  51. cursor.execute(sql, [1, 0, ])
  52. cloud_count = cursor.fetchall()
  53. total = len(cloud_count)
  54. sql += 'order by ca.created_time DESC,orderID DESC LIMIT %s,%s '
  55. cursor.execute(sql, [1, 0, ((page - 1) * size), size, ])
  56. data_obj = cursor.fetchall()
  57. cursor.close() # 执行完,关闭
  58. connection.close()
  59. result_list = []
  60. col_names = [desc[0] for desc in cursor.description]
  61. for item in data_obj:
  62. tMap = dict(zip(col_names, item))
  63. user_id = tMap['userID_id']
  64. d_user = Device_User.objects.filter(userID=user_id)
  65. tMap['uName'] = d_user[0].username
  66. tMap['nickName'] = d_user[0].NickName
  67. tMap.update({"type": 1})
  68. survey_log_qs = SurveysUserLog.objects.filter(user_id=user_id)
  69. if survey_log_qs.exists():
  70. survey_log = survey_log_qs[0]
  71. created_time = time.localtime(survey_log.created_time)
  72. tMap.update({"type": survey_log.type})
  73. tMap.update({"isFilled": survey_log.is_filled})
  74. tMap['createdTime'] = time.strftime("%Y-%m-%d %H:%M:%S", created_time),
  75. tMap.update({"isUpgrade": 1})
  76. else:
  77. tMap.update({"isFilled": 0})
  78. tMap.update({"createdTime": ''})
  79. tMap.update({"isUpgrade": 0})
  80. result_list.append(tMap)
  81. return response.json(0, {'list': result_list, 'total': total})
  82. except Exception as e:
  83. print(e)
  84. return response.json(500, repr(e))