DeviceManagementController.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import json
  4. from Object.ResponseObject import ResponseObject
  5. from Object.TokenObject import TokenObject
  6. from django.views.generic.base import View
  7. from Service.ModelService import ModelService
  8. from Service.CommonService import CommonService
  9. from Model.models import Device_Info, UidSetModel
  10. import datetime
  11. from django.utils import timezone
  12. class DeviceManagement(View):
  13. def get(self, request, *args, **kwargs):
  14. request.encoding = 'utf-8'
  15. operation = kwargs.get('operation')
  16. return self.validation(request.GET, request, operation)
  17. def post(self, request, *args, **kwargs):
  18. request.encoding = 'utf-8'
  19. operation = kwargs.get('operation')
  20. return self.validation(request.POST, request, operation)
  21. def validation(self, request_dict, request, operation):
  22. language = request_dict.get('language', 'en')
  23. response = ResponseObject(language, 'pc')
  24. tko = TokenObject(
  25. request.META.get('HTTP_AUTHORIZATION'),
  26. returntpye='pc')
  27. if tko.code != 0:
  28. return response.json(tko.code)
  29. response.lang = tko.lang
  30. userID = tko.userID
  31. if userID is not None:
  32. if operation == 'query':
  33. return self.query(request_dict, userID, response)
  34. elif operation == 'findByUser':
  35. return self.findByUser(request_dict, userID, response)
  36. elif operation == 'delete':
  37. return self.delete(request_dict, userID, response)
  38. elif operation == 'uidSetQuery':
  39. return self.uidSetQuery(request_dict, userID, response)
  40. return response.json(444, 'operation')
  41. def query(self, request_dict, userID, response):
  42. own_perm = ModelService.check_perm(userID=userID, permID=30)
  43. if not own_perm :
  44. return response.json(404)
  45. pageNo = request_dict.get('pageNo', None)
  46. pageSize = request_dict.get('pageSize', None)
  47. UID = request_dict.get('UID', None)
  48. if not all([pageNo, pageSize]):
  49. return response.json(444)
  50. page = int(pageNo)
  51. line = int(pageSize)
  52. queryset = Device_Info.objects.all()
  53. if UID:
  54. queryset = queryset.filter(UID__contains=UID)
  55. if queryset.exists():
  56. count = queryset.count()
  57. res = queryset[(page - 1) * line:page * line]
  58. send_dict = CommonService.qs_to_dict(res)
  59. for k, v in enumerate(send_dict["datas"]):
  60. for val in res:
  61. if v['pk'] == val.id:
  62. if send_dict["datas"][k]['fields']['Online'] is True:
  63. dl_time = val.update_time+datetime.timedelta(minutes=60)
  64. now_time = timezone.localtime(timezone.now())
  65. if now_time > dl_time:
  66. pass
  67. # send_dict["datas"][k]['fields']['Online'] = False
  68. username= ModelService.get_user_name(send_dict["datas"][k]['fields']['userID'])
  69. send_dict["datas"][k]['fields']['username']=username
  70. primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
  71. send_dict["datas"][k]['fields']['primaryusername']=primary
  72. return response.json(
  73. 0, {'list': send_dict, 'total': count})
  74. return response.json(
  75. 0, {'list': {}, 'total': 0})
  76. # 管理员查询接口
  77. def uidSetQuery(self, request_dict, userID, response):
  78. pageNo = request_dict.get('pageNo', None)
  79. pageSize = request_dict.get('pageSize', None)
  80. UID = request_dict.get('UID', None)
  81. if not all([pageNo, pageSize]):
  82. return response.json(444)
  83. page = int(pageNo)
  84. line = int(pageSize)
  85. omqs = UidSetModel.objects.all().order_by('-id')
  86. if UID:
  87. omqs = omqs.filter(uid__contains=UID)
  88. count = omqs.count()
  89. order_ql = omqs[(page - 1) * line:page * line]
  90. uidset_json = CommonService.qs_to_dict(order_ql)
  91. uidset_json['count'] = count
  92. return response.json(
  93. 0, {'list': uidset_json, 'total': count})