DeviceManagementController.py 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. if not all([pageNo, pageSize]):
  45. return response.json(444)
  46. page = int(pageNo)
  47. line = int(pageSize)
  48. queryset = Device_Info.objects.all()
  49. if queryset.exists():
  50. count = queryset.count()
  51. res = queryset[(page - 1) * line:page * line]
  52. send_dict = CommonService.qs_to_dict(res)
  53. for k, v in enumerate(send_dict["datas"]):
  54. for val in res:
  55. if v['pk'] == val.id:
  56. if send_dict["datas"][k]['fields']['Online'] is True:
  57. dl_time = val.update_time+datetime.timedelta(minutes=60)
  58. now_time = timezone.localtime(timezone.now())
  59. if now_time > dl_time:
  60. pass
  61. # send_dict["datas"][k]['fields']['Online'] = False
  62. username= ModelService.get_user_name(send_dict["datas"][k]['fields']['userID'])
  63. send_dict["datas"][k]['fields']['username']=username
  64. primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
  65. send_dict["datas"][k]['fields']['primaryusername']=primary
  66. return response.json(
  67. 0, {'list': send_dict, 'total': count})
  68. return response.json(0,{'count':0})
  69. def delete(self, request_dict, userID, response):
  70. own_perm = ModelService.check_perm(userID=userID, permID=10)
  71. # redisObj = RedisObject(db=8)
  72. # redisObj.del_data(key='uid_qs_' + userID)
  73. if own_perm is True:
  74. id = request_dict.get('id', None)
  75. if id:
  76. Device_Info.objects.filter(id=id).delete()
  77. return response.json(0)
  78. else:
  79. return response.json(444,'id must list')
  80. else:
  81. return response.json(404)
  82. def findByUser(self, request_dict, userID, response):
  83. own_perm = ModelService.check_perm(userID=userID, permID=30)
  84. if own_perm is True:
  85. page = int(request_dict.get('page', None))
  86. line = int(request_dict.get('line', None))
  87. username = request_dict.get('username', None)
  88. param_flag = CommonService.get_param_flag(data=[page, line, username])
  89. if param_flag is True:
  90. userID_id= ModelService.get_userID_byname(username=username)
  91. print(userID_id)
  92. queryset = Device_Info.objects.filter(userID_id=userID_id)
  93. if queryset.exists():
  94. count = queryset.count()
  95. res = queryset[(page - 1) * line:page * line]
  96. send_dict = CommonService.qs_to_dict(res)
  97. for k, v in enumerate(send_dict["datas"]):
  98. for val in res:
  99. if v['pk'] == val.id:
  100. if send_dict["datas"][k]['fields']['Online'] is True:
  101. dl_time = val.update_time + datetime.timedelta(minutes=1)
  102. now_time = timezone.localtime(timezone.now())
  103. if now_time > dl_time:
  104. send_dict["datas"][k]['fields']['Online'] = False
  105. send_dict["datas"][k]['fields']['username']=username
  106. primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
  107. send_dict["datas"][k]['fields']['primaryusername']=primary
  108. send_dict['count'] = count
  109. return response.json(0, send_dict)
  110. return response.json(0,{'count':0})
  111. else:
  112. return response.json(444)
  113. else:
  114. return response.json(404)