DeviceManagementController.py 5.7 KB

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