SerialManageController.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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 : SurveysManageController.py
  9. # @Software: PyCharm
  10. from django.utils.decorators import method_decorator
  11. from django.views.decorators.csrf import csrf_exempt
  12. from django.views.generic.base import View
  13. from Model.models import CompanyModel, SerialNumberModel, VPGModel
  14. from Object.ResponseObject import ResponseObject
  15. from Object.TokenObject import TokenObject
  16. class SerialView(View):
  17. @method_decorator(csrf_exempt)
  18. def dispatch(self, *args, **kwargs):
  19. return super(SerialView, self).dispatch(*args, **kwargs)
  20. def get(self, request, *args, **kwargs):
  21. request.encoding = 'utf-8'
  22. operation = kwargs.get('operation')
  23. return self.validation(request.GET, request, operation)
  24. def post(self, request, *args, **kwargs):
  25. request.encoding = 'utf-8'
  26. operation = kwargs.get('operation')
  27. return self.validation(request.POST, request, operation)
  28. def validation(self, request_dict, request, operation):
  29. token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
  30. response = ResponseObject()
  31. if token.code != 0:
  32. return response.json(token.code)
  33. response = ResponseObject(returntype='pc')
  34. if operation == 'company-page':
  35. return self.company_page(request_dict, response)
  36. if operation == 'number/page':
  37. return self.serial_page(request_dict, response)
  38. if operation == 'vpg_info/page':
  39. return self.vpg_page(request_dict, response)
  40. return response.json(0)
  41. @classmethod
  42. def company_page(cls, request_dict, response):
  43. pageNo = request_dict.get('pageNo', None)
  44. pageSize = request_dict.get('pageSize', None)
  45. if not all([pageNo, pageSize]):
  46. return response.json(444)
  47. page = int(pageNo)
  48. line = int(pageSize)
  49. try:
  50. request_qs = CompanyModel.objects.all()
  51. if not request_qs.exists():
  52. return response.json(0, {'list': '', 'total': 0})
  53. total = request_qs.count()
  54. company_page = request_qs.order_by('-add_time')[(page - 1) * line:page * line].values()
  55. return response.json(0, {'list': list(company_page), 'total': total})
  56. except Exception as e:
  57. print(e)
  58. return response.json(500, repr(e))
  59. @classmethod
  60. def serial_page(cls, request_dict, response):
  61. pageNo = request_dict.get('pageNo', None)
  62. pageSize = request_dict.get('pageSize', None)
  63. serial_number = request_dict.get('serialNumber', None)
  64. status = request_dict.get('status', None)
  65. use = request_dict.get('useStatus', None)
  66. if not all([pageNo, pageSize]):
  67. return response.json(444)
  68. page = int(pageNo)
  69. line = int(pageSize)
  70. try:
  71. query = SerialNumberModel.objects.filter()
  72. if serial_number:
  73. query = query.filter(serial_number__contains=serial_number)
  74. if status:
  75. status = int(status)
  76. query = query.filter(status=status)
  77. if use:
  78. use_status = int(use)
  79. query = query.filter(use_status=use_status)
  80. if not query.exists():
  81. return response.json(0, {'list': '', 'total': 0})
  82. total = query.count()
  83. serial_number_page = query.order_by('-add_time')[(page - 1) * line:page * line].values()
  84. if serial_number_page.exists():
  85. return response.json(0, {'list': list(serial_number_page), 'total': total})
  86. return response.json(173)
  87. except Exception as e:
  88. print(e)
  89. return response.json(500, repr(e))
  90. @classmethod
  91. def vpg_page(cls, request_dict, response):
  92. pageNo = request_dict.get('pageNo', None)
  93. pageSize = request_dict.get('pageSize', None)
  94. if not all([pageNo, pageSize]):
  95. return response.json(444)
  96. page = int(pageNo)
  97. line = int(pageSize)
  98. try:
  99. query = VPGModel.objects.filter()
  100. if not query.exists():
  101. return response.json(0, {'list': '', 'total': 0})
  102. total = query.count()
  103. vpg_page = query.order_by('-add_time')[(page - 1) * line:page * line] \
  104. .values('id', 'name',
  105. 'region__name',
  106. 'region_id',
  107. 'company__name',
  108. 'add_time',
  109. 'update_time',
  110. 'company__secret',
  111. 'uid_count')
  112. if vpg_page.exists():
  113. return response.json(0, {'list': list(vpg_page), 'total': total})
  114. return response.json(173)
  115. except Exception as e:
  116. print(e)
  117. return response.json(500, repr(e))