VPGController.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import time
  4. from django.views import View
  5. from Model.models import RegionModel, CompanyModel, VPGModel, UIDModel
  6. from Object.uidManageResponseObject import uidManageResponseObject
  7. from Object.TokenObject import TokenObject
  8. from Service.ModelService import ModelService
  9. class VPGView(View):
  10. def get(self, request, *args, **kwargs):
  11. request.encoding = 'utf-8'
  12. operation = kwargs.get('operation', None)
  13. request_dict = request.GET
  14. return self.validate(request_dict, operation)
  15. def post(self, request, *args, **kwargs):
  16. request.encoding = 'utf-8'
  17. operation = kwargs.get('operation', None)
  18. request_dict = request.POST
  19. return self.validate(request_dict, operation)
  20. def validate(self, request_dict, operation):
  21. token = TokenObject(request_dict.get('token', None))
  22. response = uidManageResponseObject()
  23. if token.code != 0:
  24. return response.json(token.code)
  25. if operation == 'add':
  26. return self.do_add(token.userID, request_dict, response)
  27. elif operation == 'update':
  28. return self.do_update(token.userID, request_dict, response)
  29. elif operation == 'delete':
  30. return self.do_delete(token.userID, request_dict, response)
  31. elif operation == 'list':
  32. return self.do_list(token.userID, request_dict, response)
  33. else:
  34. return response.json(404)
  35. def do_add(self, userID, request_dict, response):
  36. perm = ModelService.check_perm_uid_manage(userID, 0)
  37. if not perm:
  38. return response.json(309)
  39. name = request_dict.get('vpg', None)
  40. region_id = request_dict.get('region_id', None)
  41. company_id = request_dict.get('company_id', None)
  42. if name and region_id and company_id:
  43. region_qs = RegionModel.objects.filter(id=region_id)
  44. if not region_qs.exists():
  45. return response.json(374)
  46. company_qs = CompanyModel.objects.filter(secret=company_id)
  47. if not company_qs.exists():
  48. return response.json(373)
  49. company = company_qs[0]
  50. now_time = int(time.time())
  51. vpgModel = VPGModel(name=name, region_id=region_id, company_id=company.id, add_time=now_time, update_time=now_time)
  52. vpgModel.save()
  53. return response.json(0)
  54. else:
  55. return response.json(444)
  56. def do_update(self, userID, request_dict, response):
  57. perm = ModelService.check_perm_uid_manage(userID, 0)
  58. if not perm:
  59. return response.json(309)
  60. id = request_dict.get('id', None)
  61. name = request_dict.get('vpg', None)
  62. region_id = request_dict.get('region_id', None)
  63. company_id = request_dict.get('company_id', None)
  64. if id:
  65. vpg_qs = VPGModel.objects.filter(id=id)
  66. if vpg_qs.exists():
  67. now_time = int(time.time())
  68. update = {
  69. 'update_time': now_time
  70. }
  71. if name:
  72. update['name'] = name
  73. if region_id:
  74. update['region_id'] = region_id
  75. if company_id:
  76. update['company_id'] = company_id
  77. vpg_qs.update(**update)
  78. return response.json(0)
  79. else:
  80. return response.json(173)
  81. else:
  82. return response.json(444)
  83. def do_delete(self, userID, request_dict, response):
  84. perm = ModelService.check_perm_uid_manage(userID, 0)
  85. if not perm:
  86. return response.json(309)
  87. id = request_dict.get('id', None)
  88. if id:
  89. vpg_qs = VPGModel.objects.filter(id=id)
  90. if vpg_qs.exists():
  91. vpg_qs.delete()
  92. return response.json(0)
  93. else:
  94. return response.json(173)
  95. else:
  96. return response.json(444)
  97. def do_list(self, userID, request_dict, response):
  98. perm = ModelService.check_perm_uid_manage(userID, 0)
  99. if not perm:
  100. return response.json(309)
  101. company_id = request_dict.get('company_id', None)
  102. region_id = request_dict.get('region_id', None)
  103. page = request_dict.get('page', None)
  104. line = request_dict.get('limit', None)
  105. if page and line:
  106. page = int(page)
  107. line = int(line)
  108. start = (page - 1) * line
  109. end = start + line
  110. vpg_qs = VPGModel.objects.filter()
  111. if company_id:
  112. vpg_qs.filter(company_id=company_id)
  113. if region_id:
  114. vpg_qs.filter(region_id=region_id)
  115. count = vpg_qs.count()
  116. vpg_qs = vpg_qs[start: end]
  117. vpg_qs = vpg_qs.values('id', 'name', 'region__name', 'region_id', 'company__name', 'add_time', 'update_time', 'company__secret')
  118. for vpg in vpg_qs:
  119. vpg['uid_count'] = UIDModel.objects.filter(vpg_id=vpg['id']).count()
  120. res = {
  121. 'count': count,
  122. 'data': list(vpg_qs)
  123. }
  124. return response.json(0, res)
  125. else:
  126. return response.json(444)