SerialManageController.py 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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
  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. return response.json(0)
  39. @classmethod
  40. def company_page(cls, request_dict, response):
  41. pageNo = request_dict.get('pageNo', None)
  42. pageSize = request_dict.get('pageSize', None)
  43. if not all([pageNo, pageSize]):
  44. return response.json(444)
  45. page = int(pageNo)
  46. line = int(pageSize)
  47. try:
  48. request_qs = CompanyModel.objects.all()
  49. if not request_qs.exists():
  50. return response.json(0, {'list': '', 'total': 0})
  51. total = request_qs.count()
  52. company_page = request_qs.order_by('-add_time')[(page - 1) * line:page * line].values()
  53. return response.json(0, {'list': list(company_page), 'total': total})
  54. except Exception as e:
  55. print(e)
  56. return response.json(500, repr(e))
  57. @classmethod
  58. def serial_page(cls, request_dict, response):
  59. pageNo = request_dict.get('pageNo', None)
  60. pageSize = request_dict.get('pageSize', None)
  61. serial_number = request_dict.get('serialNumber', None)
  62. status = request_dict.get('status', None)
  63. use = request_dict.get('useStatus', None)
  64. if not all([pageNo, pageSize]):
  65. return response.json(444)
  66. page = int(pageNo)
  67. line = int(pageSize)
  68. try:
  69. query = SerialNumberModel.objects.filter()
  70. if serial_number:
  71. query = query.filter(serial_number__contains=serial_number)
  72. if status:
  73. status = int(status)
  74. query = query.filter(status=status)
  75. if use:
  76. use_status = int(use)
  77. query = query.filter(use_status=use_status)
  78. if not query.exists():
  79. return response.json(0, {'list': '', 'total': 0})
  80. total = query.count()
  81. serial_number_page = query.order_by('-add_time')[(page - 1) * line:page * line].values()
  82. if serial_number_page.exists():
  83. return response.json(0, {'list': list(serial_number_page), 'total': total})
  84. return response.json(173)
  85. except Exception as e:
  86. print(e)
  87. return response.json(500, repr(e))